大神请问一下,如何在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日