38 浏览
0

如果使用最后一行当做最新的bar值,那么进入下一个三分钟(K线周期)时,上一个bar[-1]并不等于这一个bar[-2]。

是不是说,在:

if api.is_changing(klines.iloc[-1], "datetime"):

之后执行的

macd = MACD(klines, 12, 26, 9)

实际上bar[-1]包含了klines.iloc[-1]的数据、即使klines.iloc[-1]数据还未走完。

以下是打印的部分数据:

2025-08-29 21:30:00.000000
diff dea bar
0 0.000000 0.000000 0.000000
1 0.000000 0.000000 0.000000
2 0.000000 0.000000 0.000000
3 -0.159544 -0.031909 -0.255271
4 -0.123181 -0.050163 -0.146035
.. … … …
195 -2.457023 -0.452636 -4.008775
196 -3.248074 -1.011723 -4.472702
197 -3.830829 -1.575544 -4.510568
198 -4.403290 -2.141094 -4.524394
199 -4.801620 -2.673199 -4.256843

[200 rows x 3 columns]
2025-08-29 21:33:00.000000
diff dea bar
0 0.000000 0.000000 0.000000
1 0.000000 0.000000 0.000000
2 -0.159544 -0.031909 -0.255271
3 -0.123181 -0.050163 -0.146035
4 -0.013515 -0.042834 0.058637
.. … … …
195 -3.248074 -1.011723 -4.472702
196 -3.830829 -1.575544 -4.510568
197 -4.403290 -2.141094 -4.524394
198 -4.721848 -2.657245 -4.129208
199 -4.917621 -3.109320 -3.616602

[200 rows x 3 columns]
2025-08-29 21:36:00.000000
diff dea bar
0 0.000000 0.000000 0.000000
1 -0.159544 -0.031909 -0.255271
2 -0.123181 -0.050163 -0.146035
3 -0.013515 -0.042834 0.058637
4 -0.086985 -0.051664 -0.070642
.. … … …
195 -3.830829 -1.575544 -4.510568
196 -4.403290 -2.141094 -4.524394
197 -4.721848 -2.657245 -4.129208
198 -5.077165 -3.141229 -3.871872
199 -5.297687 -3.572520 -3.450334

wangzilin2 未选择答案 13小时 前
1

是的,因为最新的K线也在一直更新,所以算出来macd可能会有变化

wangzilin2 未选择答案 13小时 前

有其他问题欢迎加入官方Q群611806823一起交流

您正在查看1个答案中的1个,单击此处查看所有答案。