python - 如何在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)
解决方案
这应该让你开始。
将你的 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]
推荐阅读
- python - TooManyRequestsException:超出速率。在调用 codnito-idp admin_get_user 函数时
- c++ - c++ sizeof - 需要帮助理解
- node.js - 从 NodeJS 向 REST API 发出请求
- r - 在循环R中标记箱线图的异常值
- istio - 我对 istio 速率限制和命名空间有疑问
- python - 如何使用“get_detail_data”的输出来运行批处理文件
- python - Kivy 从屏幕管理器访问类属性
- php - NGINX 使用 Slim API 框架从子目录重定向到根目录
- spring-boot - nginx google oauth2 的 Spring 安全性在 Nginx 上不起作用
- reactjs - 材料表查找。如何获得选定的值?