Гениально простая задача которую не смогли сделать Senior developer Python

Давайте рассмотрим задачу которую не смогли решить несколько 'Middle' и 'Senior' разработчиков Python которую работают менторами в школе программирования.

Тут используется библиотека: pip install tradingview-ta

Условная задача кода: мы задаем параметры что если даны рекомендации "BUY" или "STRONG_BUY" он должен купить эту валюту и когда значения рекомендации изменяться на "SELL" или "STRONG_SELL" то он купленную валюту должен продать. Изначальный код работает но там валюту которую мы проверяем на рекомендацию задается только один.

    # Import packages.
from tradingview_ta import TA_Handler, Interval, Exchange
 
 
# Store the last order.
last_order = "sell"
 
# Instantiate TA_Handler.
tesla = TA_Handler(
    symbol="ROSEUSDT",
    exchange="BYBIT",
    screener="CRYPTO",
    interval=Interval.INTERVAL_1_HOUR,
)
 
# Repeat forever.
while True:
    # Retrieve recommendation.
    rec = tesla.get_analysis().summary["RECOMMENDATION"]
 
    # Create a buy order if the recommendation is "BUY" or "STRONG_BUY" and the last order is "sell".
    # Create a sell order if the recommendation is "SELL" or "STRONG_SELL" and the last order is "buy".
    if "BUY" in rec and last_order == "sell":
        print(tesla.get_analysis().time)
        print(f'вы купили криптовалюту')
        print(tesla.get_analysis().symbol)
        print(f'индикатор открытия: {tesla.get_analysis().indicators["open"]}')
        print(f'импульс: {tesla.get_analysis().indicators["Mom"]}')
        print(f'индекс относительной силы: {tesla.get_analysis().indicators["RSI"]}')
 
        
        # REPLACE COMMENT: Create a buy order using your exchange's API.
 
        last_order = "buy"
    elif "SELL" in rec and last_order == "buy":
        print(f'Пора продавать криптовалюту')
        print(tesla.get_analysis().time)
        print(tesla.get_analysis().symbol)
        print(f'индикатор закрытия: {tesla.get_analysis().indicators["close"]}')
        print(f'импульс: {tesla.get_analysis().indicators["Mom"]}')
        print(f'индекс относительной силы: {tesla.get_analysis().indicators["RSI"]}')
        print('──────────────────')
 
        # REPLACE COMMENT: Create a sell order using your exchange's API.
 
        last_order = "sell"
 
    # Wait for x seconds before retrieving new analysis.
    # The time should be the same as the interval.
    # time.sleep(x)

но у нас есть некий массив и задача такая. что бы он автоматически подставлял валюты и если будет дана рекомендация на "BUY" или же на "STRONG_BUY" он должен купить и ждать пока рекомендация сменится на значения "SELL" или "STRONG SELL" и при этом не может снова покупать пока не продаст уже купленные валюту и если продал то может дальше покупать и так до бесконечности пока есть значения на покупку.

Вот эта конструкция не работает:

    bybit_coins = ['ATOM2LUSDT', 'KONUSDT', 'FAMEUSDT', 'DARUSDT', 'BNXUSDT', 'CELRUSDT',
'CTSIUSDT', 'LTCUSD', 'MANAUSD', 'FXSUSDT', 'ICXUSDT', 'XCNUSDT', 'AAVEUSDT', 'BELUSDT', 'LITUSDT',
'RENUSDT', 'SUSHIUSDT', 'XRPUSD ', 'DOTUSD', 'BLZUSDT', 'TRXUSDT', 'GLMRUSDT',
'STGUSDT', 'SPELLUSDT', 'CTCUSDT', 'APEUSDC', 'RSS3USDT', '1000XECUSDT', 'MANAUSDT', 'ADAUSD', 'ILVUSDT', 'MTLUSDT',
'HOTUSDT', 'FILUSDT', 'C98USDT', 'BOBAUSDT', 'NEOUSDT', 'SKLUSDT', 'FLMUSDT', '1000BTTUSDT', 'LDOUSDT', 'ZECUSDT',
'OGNUSDT', 'DOGEUSDT', 'ONTUSDT', 'SOLUSD', 'GMTUSDC', 'GALAUSDT', 'KAVAUSDT', '10000NFTUSDT', 'SLPUSDT', 'LRCUSDT',
'SANDUSDC', 'TRBUSDT', 'OCEANUSDT', 'CRVUSDT', 'KDAUSDT', 'BITUSD', 'BALUSDT', 'SCRTUSDT', 'API3USDT', 'NEARUSDT',
'BANDUSDT', 'GALUSDT', 'FITFIUSDT', 'MATICUSDC', 'KSMUSDT', 'CROUSDT', 'BTCUSDC', 'ETHUSDC', 'DGBUSDT', 'BAKEUSDT',
'XMRUSDT', 'WOOUSDT', 'SOLUSDC', 'BSWUSDT', 'MATICUSDT', 'SNXUSDT', 'ETHUSD1230', '1INCHUSDT', 'AUDIOUSDT', 'JSTUSDT',
'THETAUSDT', 'AXSUSDT', 'XRPUSDC', 'STORJUSDT', 'WAVESUSDT', 'YFIUSDT', 'LINKUSDT', 'KLAYUSDT', 'XLMUSDT', 'IOSTUSDT', 'OPUSDT', 'ARUSDT', 'ARPAUSDT', 'OMGUSDT', 'SXPUSDT', 'GTCUSDT', 'EOSUSDT', 'ALPHAUSDT', 'EGLDUSDT', 'HNTUSDT',
'ONEUSDT', 'RAYUSDT', 'MINAUSDT', 'ROSEUSDT', 'DOTUSDT', 'RUNEUSDT', 'AVAXUSDT', 'ALGOUSDT', 'LPTUSDT', 'LTCUSDT', 'CHRUSDT', 'TLMUSDT', 'DASHUSDT', 'BCHUSDT', 'ASTRUSDT', 'DODOUSDT', 'UNIUSDT', 'RVNUSDT', 'MASKUSDT', 'CEEKUSDT', 'FTMUSDT', 'OPUSDC', 'ZRXUSDT', 'LINAUSDT',
'CREAMUSDT', 'USDCUSDT', 'CELOUSDT', 'UNFIUSDT', 'ADAUSDC', 'ZENUSDT', 'VETUSDT', 'XEMUSDT', 'GMTUSDT', 'SHIB1000USDT', 'LUNA2USDT', 'AKROUSDT', 'ALICEUSDT', 'ETHUSD',
'BICOUSDT', 'SFPUSDT', 'DYDXUSDT', 'JASMYUSDT', 'REQUSDT', 'LOOKSUSDT', 'CHZUSDT', 'INJUSDT', 'CTKUSDT', 'CKBUSDT', 'COTIUSDT', 'XTZUSDT', 'ETCUSDT', 'COMPUSDT', 'RSRUSDT', 'SOLUSDT', 'ENJUSDT', 'DENTUSDT', 'BTCUSDT', 'STMXUSDT', 'EOSUSD', 'GRTUSDT',
'ANKRUSDT', 'CVXUSDT', 'ACHUSDT', 'RNDRUSDT', 'YGGUSDT', 'SCUSDT', 'MKRUSDT', 'ENSUSDT', 'ICPUSDT', 'PEOPLEUSDT', 'ATOMUSDT', 'FLOWUSDT', 'BNBUSDT', 'AGLDUSDT', 'IOTXUSDT', 'ADAUSDT', 'KNCUSDT', 'ZILUSDT', 'CVCUSDT', 'BITUSDT', 'QTUMUSDT', 'IOTAUSDT', 'XRPUSDT',
'APEUSDT', 'SRMUSDT', 'IMXUSDT', 'FTTUSDT', 'PAXGUSDT', 'SANDUSDT', 'BSVUSDT', 'STXUSDT', 'HBARUSDT', 'TOMOUSDT', 'REEFUSDT', 'BATUSDT', 'DUSKUSDT', 'ANTUSDT']
 
 
 
 
# Import packages.
from tradingview_ta import TA_Handler, Interval, Exchange
 
 
# Store the last order.
last_order = "sell"
 
# Instantiate TA_Handler.
for i in bybit_coins:
    tesla = TA_Handler(
        symbol=i,
        exchange="BYBIT",
        screener="CRYPTO",
        interval=Interval.INTERVAL_1_HOUR,
    )
 
# Repeat forever.
while True:
    # Retrieve recommendation.
    rec = tesla.get_analysis().summary["RECOMMENDATION"]
 
    # Create a buy order if the recommendation is "BUY" or "STRONG_BUY" and the last order is "sell".
    # Create a sell order if the recommendation is "SELL" or "STRONG_SELL" and the last order is "buy".
    if "BUY" in rec and last_order == "sell":
        print(tesla.get_analysis().time)
        print(f'вы купили криптовалюту')
        print(tesla.get_analysis().symbol)
        print(f'индикатор открытия: {tesla.get_analysis().indicators["open"]}')
        print(f'импульс: {tesla.get_analysis().indicators["Mom"]}')
        print(f'индекс относительной силы: {tesla.get_analysis().indicators["RSI"]}')
 
        
        # REPLACE COMMENT: Create a buy order using your exchange's API.
 
        last_order = "buy"
    elif "SELL" in rec and last_order == "buy":
        print(f'Пора продавать криптовалюту')
        print(tesla.get_analysis().time)
        print(tesla.get_analysis().symbol)
        print(f'индикатор закрытия: {tesla.get_analysis().indicators["close"]}')
        print(f'импульс: {tesla.get_analysis().indicators["Mom"]}')
        print(f'индекс относительной силы: {tesla.get_analysis().indicators["RSI"]}')
        print('──────────────────')
 
        # REPLACE COMMENT: Create a sell order using your exchange's API.
 
        last_order = "sell"
 
    # Wait for x seconds before retrieving new analysis.
    # The time should be the same as the interval.
    # time.sleep(x)

Ответы (0 шт):