236 浏览
0

大神请问一下,如何在15分钟K 快完成的最后20秒开单呢,谢谢啦

我看了一下实例,都是满足条件 立马委托,可是我想在这根K线马上走完的时候再委托。谢谢啦

eric2019 已回答的问题 2024年3月27日
1
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日
您正在查看1个答案中的1个,单击此处查看所有答案。