金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 148|回复: 3

python报单撤单

[复制链接]

221

主题

857

帖子

857

积分

等级: 免费版

注册:
2022-4-2
曾用名:
发表于 2024-11-5 13:59 | 显示全部楼层 |阅读模式
老师好,python能帮忙写个报单十秒后没有成交然后撤单的代码示例吗
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-11-5 15:37 | 显示全部楼层
[Python] 复制代码
# 本Python代码主要用于策略交易
# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
from PythonApi import *
import datetime
import sys


def init(context):
    pass
    

def handle_bar(context):
    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()
            #5秒未成交,追撤单
            if seconds_difference>=10:
                Chase_withdraw(context,order)
                            
def order_status(context, order):
    pass   
    
def Chase_withdraw(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
    
        
        
        
        
        

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

使用道具 举报

221

主题

857

帖子

857

积分

等级: 免费版

注册:
2022-4-2
曾用名:
 楼主| 发表于 2024-11-7 10:48 | 显示全部楼层
技术009 发表于 2024-11-5 15:37
[mw_shl_code=python,true]# 本Python代码主要用于策略交易
# 可以自己import我们平台支持的第三方python ...

谢谢老师,get_orders("all", 0);这个all是代表所有品种的报单吗?Chase_withdraw函数代表是撤单后重新追单是吧

补充内容 (2024-11-7 10:51):
比如我是账户持仓同步的模式下进行的报单,每3秒同步一次,策略理论持仓是10手,目前账户持仓3手,报单了7手,10秒还未成交,在这十秒内就不报单了。能否获取到该品种未成交的手数,进行报单前的过滤
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-11-7 11:11 | 显示全部楼层
1.是全品种。你可以自己指定品种
2.

vol = order.unfilled_quantity

这句不就得获取手数的。你最好还是先理清这个代码的逻辑,然后再使用比较好。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 22:24 , Processed in 0.194504 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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