金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 622|回复: 3

包括 已报单未成交, 完全没有成交的。这个撤回后order id 也没了吗?

[复制链接]

3976

主题

4045

帖子

4070

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-4-3 08:57 | 显示全部楼层 |阅读模式
请教:cancel_order 是否撤回已经下的单,包括 已报单未成交, 完全没有成交的。这个撤回后order id 也没了吗?
是否 再发送买卖单之前都要前cancel_order
现在有不少小票成交量很小。在订单处理上要更注意细节。 还是建议公司能专门写个模板解释。或者出个视频

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

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-4-3 09:17 | 显示全部楼层
本帖最后由 技术009 于 2024-4-3 09:37 编辑

orderid 是一个标识,即使撤单 你也能根据订单id查询到订单状态。

“是否 再发送买卖单之前都要前cancel_order” 如果未成交或者仅部分成交,需要撤单追单,那当然要进行撤单后再报单的。

如果你嫌py代码麻烦,完全可以使用系统自带的功能。  

另外在代码里实现,也不是什么麻烦事情。你下单时候能获取订单id,用列表记录下来,写个循环根据订单id查询状态,未成交的单子再看下未成交的数量和时间,把数量记录下来后直接撤单,再买入,买入按照未成交数量去处理就行了。
或者就直接查全局的未成交订单,也不用管订单id了。 查到了挨个计算下 未成交的时间或者其他你需要进行撤单的条件。满足了就撤单,撤单前把未成交数量读取下来就行了。

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

使用道具 举报

2

主题

544

帖子

585

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-10
曾用名:
发表于 2024-4-3 09:21 | 显示全部楼层
是否撤单取决于你的交易思想。订单管理可以通过

get_orders 和get_orders_id查询得到一个order对象。对象中的status可以得到指定订单的状态。
status        str        订单状态 "submitted"已报单未成交 "tradeing"已成交 "filled"全部成交 "cancelled"已撤单 "inactive"无效单 "connected"已连接 "disconnected"连接断开
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-4-3 10:12 | 显示全部楼层
# 模板

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>=5:
                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
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 06:26 , Processed in 0.299706 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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