首页 > 解决方案 > 如何在python中使用循环打印字符串列表中的每个硬币

问题描述

嗨,我是学习 python 的新手,现在我正在尝试一个代码,我尝试了很多方法,但我无法解决这里是我的代码,此代码仅获取 BTCUSDT VALUES 但我想从字符串列表中获取更多硬币列表,它总是最后打印字符串列表上的值我怎么能一一打印

这是我的画面

BTCUSDT ---开始

最后一个变量:45555.487064533176 最后一个 pmax 45486.47701675686

BTCUSDT ---开始

最后一个变量:45555.487064533176 最后一个 pmax 45486.47701675686

BTCUSDT ---开始

最后一个变量:45555.487064533176 最后一个 pmax 45486.47701675686

我想这样打印

XRPUSDT ——————开始————————</p>

最后一个变量:0.07643779778265652 最后一个 pmax 0.07576949200637356

ETHUSDT ——————开始————————</p>

最后一个变量:0.020887977208516414 最后一个 pmax 0.02071535207020709

BTCUSDT ——————开始————————</p>

最后一个变量:0.0613029012374088 最后一个 pmax 0.06095001184562004

if __name__ == '__main__':
# python binance client objemizi olusturuyoruz.
client = Client(config.API_KEY, config.API_SECRET)

coinlist = ['XRPUSDT', 'ETHUSDT', 'BTCUSDT']
for x in coinlist:
     pair = x



# ikilimizi seciyoruz

# istediğimiz mum sayısını belirliyoruz
limit = 500

# zaman araligi, 5 dakikalik grafige bakiyorum
interval = '5m'

# ortalama tipi olarak VAR seciyorum.
ortalama_tipi = 'VAR'

# ortalama tipi: EMA almak icin asagidaki commenti kaldirip, yukarıdaki var satırını
# commente alin
# ortalama_tipi = 'EMA'

while 1:
    # binance'in limitlerine takilmamak icin, biraz bekliyoruz. 10 saniye kadar.
    time.sleep(10)

    try:
        klines = client.get_klines(symbol=pair, interval=interval, limit=limit)
    except Exception as exp:
        # baglanti hatasi olursa, biraz bekleyip, tekrar yeni client olusturuyor,
        # donguye kaldigim yerden devam ediyorum
        msg = f'exception in get_klines {str(exp)}'
        print(msg, flush=True)
        time.sleep(10)
        client = Client(config.API_KEY, config.API_SECRET)
        continue

    open_time = [int(entry[0]) for entry in klines]
    open_klines = [float(entry[1]) for entry in klines]
    high = [float(entry[2]) for entry in klines]
    low = [float(entry[3]) for entry in klines]
    close = [float(entry[4]) for entry in klines]

    close_array1 = np.asarray(close)
    close_array = close_array1[:-1]

    high_array1 = np.asarray(high)
    high_array = high_array1[:-1]

    low_array1 = np.asarray(low)
    low_array = low_array1[:-1]

    open_array1 = np.asarray(open_klines)
    open_array = open_array1[:-1]

    if ortalama_tipi == 'VAR':

        # Vidya (VAR) hesaplamasini yapiyorum
        var_arr = generateVar(high_array, low_array, moving_average_length=10)

        # Profit maximizer (pmax) hesaplamak icin, bir onceki satirda hesaplamis oldugum
        # var arrayini parametre olarak gonderiyorum
        pmax = generatePMax(var_arr, close_array, high_array, low_array, 10, 3)

        last_var = var_arr[-1]
        previous_var = var_arr[-2]

        last_pmax = pmax[-1]
        previous_pmax = pmax[-2]
        print(pair, '---START')
        print('last var:', last_var, 'last pmax', last_pmax, flush=True)

        if (last_var > last_pmax and previous_var < previous_pmax):
            msg = f'buy signal for {pair}'
            print(msg, flush=True)

        if last_var < last_pmax and previous_var > previous_pmax:
            msg = f'sell signal for {pair}'
            print(msg, flush=True)


    elif ortalama_tipi == 'EMA':

        # EMA (EMA) hesaplamasini yapiyorum
        ema_arr = generateEma(high_array, low_array, moving_average_length=10)

        # Profit maximizer (pmax) hesaplamak icin, bir onceki satirda hesaplamis oldugum
        # var arrayini parametre olarak gonderiyorum
        pmax = generatePMax(ema_arr, close_array, high_array, low_array, 10, 3)

        last_ema = ema_arr[-1]
        previous_ema = ema_arr[-2]

        last_pmax = pmax[-1]
        previous_pmax = pmax[-2]

        print('last ema:', last_ema, 'last pmax', last_pmax, flush=True)

        if (last_ema > last_pmax and previous_ema < previous_pmax):
            msg = f'buy signal for {pair}'
            print(msg, flush=True)

        if last_ema < last_pmax and previous_ema > previous_pmax:
            msg = f'sell signal for {pair}'
            print(msg, flush=True)

标签: python

解决方案


这应该让你开始。

将你的 for 循环移到 while true 循环内

coinlist = ['XRPUSDT', 'ETHUSDT', 'BTCUSDT']
while True:
    for x in coinlist:
        pair = x 
        time.sleep(10)

        try:
            klines = client.get_klines(symbol=pair, interval=interval, limit=limit)
        except Exception as exp:
             msg = f'exception in get_klines {str(exp)}'
             print(msg, flush=True)
             time.sleep(10)
             client = Client(config.API_KEY, config.API_SECRET) 
             continue

        open_time = [int(entry[0]) for entry in klines]
        open_klines = [float(entry[1]) for entry in klines]
        high = [float(entry[2]) for entry in klines]
        low = [float(entry[3]) for entry in klines]
        close = [float(entry[4]) for entry in klines]

推荐阅读