499 浏览
0

问题如下:

1.使用协程实现策略,在产生1小时k线的时候判断相关指标;

async with api.register_update_notify() as update_chan:
async for _ in update_chan:
if api.is_changing(klines.iloc[-1], “datetime”):
ktime = time_to_datetime(klines.iloc[-1].datetime)
logger.info(symbol + ‘ 新的k线, 时间:’ + ktime)

2.主函数使用调用wait_update:

while True:
time_now = datetime.datetime.now()
if ((time_now.hour == 15 or time_now.hour == 3) and time_now.minute >= 0):
t1 = time.time()
api.wait_update(deadline=t1 + 60)
t2 = time.time()
if (t2 – t1 > 50):
logger.info(“策略运行结束”)
break
else:
deadline = time.time() + 5
api.wait_update(deadline)
3.盘前20:30和8点30启用程序,此时没有新的k线,但会触发api.is_changing(klines.iloc[-1], “datetime”)条件,并打印前个k线,时间标签为22:00:00:
2023-11-29 08:30:09,560 logger INFO DCE.i2401 新的k线
2023-11-29 08:30:09,560 logger INFO 2023-11-28 22:00:00
4.开盘时候,新的k线生产,并触发api.is_changing(klines.iloc[-1], “datetime”)条件:
2023-11-29 08:59:01,215 logger INFO DCE.i2401 新的k线
2023-11-29 08:59:01,217 logger INFO 2023-11-29 09:00:00
5.请教技术专家,前述第3点,盘前为什么会触发api.is_changing(klines.iloc[-1], “datetime”)条件呢?如何避免?

gameofloser 未选择答案 2023年12月11日
0

估计是因为

日盘集合竞价与开盘集合竞价逻辑一致,前4分钟即08:55-08:59为期货、期权合约买、卖指令申报时间,后1分钟即08:59-09:00为集合竞价撮合时间。

gameofloser 未选择答案 2023年12月11日
您正在查看1个答案中的1个,单击此处查看所有答案。