金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 556|回复: 1

关于撤单追单

[复制链接]

7

主题

16

帖子

16

积分

Rank: 1

等级: 新手上路

注册:
2024-12-12
曾用名:
发表于 2025-3-10 08:58 | 显示全部楼层 |阅读模式
  代码如下,请帮忙修改下,如何去掉图中的同一时间撤单

  order_list = get_orders("all", 0)
    current_time = datetime.datetime.now()

    if order_list:
        for order in order_list:
            seconds_difference = (current_time - order.datetime ).total_seconds()
            #30秒未成交,追撤单
            if seconds_difference >= 30:
                cancel_undeal_order(context, order)   

def cancel_undeal_order(context, order):

    vol = order.unfilled_quantity
    order_id = order.order_id
    book_id  = order.order_book_id
    side = order.side  # 订单方向 "buy"买:"sell"卖

    position_effect = order.position_effect  # 开平标志 "open"开仓 "close"平仓

    #撤单语句
    cancel_order(order_id)    #拼接函数名称
    function_name = side+"_"+position_effect
    # 从全局环境中直接获取到 具体的函数,这样就可以避免写四条不同的追单语句
    function_object = getattr(sys.modules[__name__], function_name)

    try:
        function_object(book_id,"Market",volume = vol)
    except Exception as ex:
        raise  




截图202503100857239987.png
回复

使用道具 举报

37

主题

9998

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-3-10 10:34 | 显示全部楼层
回测模拟不了30秒未成交的状态变化。(都是基于k线时间的静态过程)。

你可以考虑根据k线判断是否为当根k线,若是当根k线则不撤单。
或者
调用5秒周期数据,使用这种小周期的时间作为判断挂断未成交的时间判定。


金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-7-3 04:16 , Processed in 0.114032 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表