大神请问一下,如何在15分钟K 快完成的最后20秒开单呢,谢谢啦
我看了一下实例,都是满足条件 立马委托,可是我想在这根K线马上走完的时候再委托。谢谢啦
eric2019 已回答的问题 2024年3月27日
from datetime import datetime, timedelta from tqsdk import ..... # 初始化API api = TqApi(....) # 订阅15分钟K线数据 klines = api.get_kline_serial("SHFE.rb2405", 15*60) while True: api.wait_update() if api.is_changing(klines.iloc[-1], "datetime"): # 当K线更新时,获取最新K线的时间 last_kline_time = datetime.fromtimestamp(klines.iloc[-1]["datetime"] / 1e9) # 计算下一根K线开始时间 next_kline_start_time = last_kline_time + timedelta(minutes=15) # 计算在下一根K线开始前20秒的时间点 order_time = next_kline_start_time - timedelta(seconds=20) # 获取当前时间 current_time = datetime.now() # 如果当前时间在下单时间之后 if current_time >= order_time: print(f"当前时间:{current_time},在K线的最后20秒内,开始执行下单") # 执行下单操作 order = api.insert_order(...) print("下单成功:", order) # 下单后跳出循环或执行后续逻辑 break # 关闭API api.close()
eric2019 编辑答案 2024年3月27日