ema20 = EMA(klines, 20) a = ema20.iloc[-2]['ema'] b = ema20.iloc[-3]['ema'] print(a,b)
为什么每次循环输出的a,b都是不一样的呢
正常不应该是本次输出的 b 和上一次的 a 值是一样的吗
其他都不变,测试替换成使用ma指标是正常的
laot1999 未选择答案 2025年5月26日
ema20 = EMA(klines, 20) a = ema20.iloc[-2]['ema'] b = ema20.iloc[-3]['ema'] print(a,b)
为什么每次循环输出的a,b都是不一样的呢
正常不应该是本次输出的 b 和上一次的 a 值是一样的吗
其他都不变,测试替换成使用ma指标是正常的
SYMBOL = “KQ.m@SHFE.rb” # 合约代码
klines = api.get_kline_serial(SYMBOL, 24*60*60, data_length=40)
quote = api.get_quote(SYMBOL)
while True:
api.wait_update()
if api.is_changing(klines.iloc[-1], “datetime”):
short_avg = ema(klines[“close”], 20)
print(quote.datetime, round(short_avg.iloc[-1]),round(short_avg.iloc[-2]))
输出结果
2024-01-03 18:00:00.000000 3992 3985
2024-01-04 18:00:00.000000 3996 3991
2024-01-05 18:00:00.000000 3989 3990
我理解的正确的输出不应该是今天的short_avg.iloc[-2] 和上一次输出的short_avg.iloc[-1] 是相同的值吗