以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  全部成交 消息应该是 filled"  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=183263)

--  作者:qq代人发帖
--  发布时间:2020/11/30 13:04:19
--  全部成交 消息应该是 filled"
请教:PYTHON 策略,我使用 上期所CTP仿真系统,开仓订单 全部成交后,但是 查询订单的 order.status依然是 "submitted"
按文档,订单状态 "submitted"已报单未成交 "tradeing"已成交 "filled"全部成交 "cancelled"已撤单 已报单未成交
在 order_status 处理模块中, 成交的 消息反映是 "tradeing"
全部成交 消息应该是  filled"
具体 品种 IC2012
但是 商品期货 测试时候,订单回报是 正确的
另外,无论 上期所CTP的SIMINOW仿真系统。还是实盘系统中,get_orders  得到的 IC2012 合约的 order_id为0
但是金字塔交易软件的 委托里面,看订单的状态是正确的,为 全部成交
不对,委托里面,全部成交 也是2个状态 ’全部成交‘ 和 ‘全部成交报单已提交’
再看了下 商品期货的 成交,全部成交 的状态 也是 有问题的,也是2个状态 ’全部成交‘ 和 ‘全部成交报单已提交’


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看

--  作者:yukizzc
--  发布时间:2020/11/30 13:34:17
--  

软件是最新版吗,官网下载最新版升级后看下

本地这边测试情况没有问题


图片点击可在新窗口打开查看此主题相关图片如下:s%$mkbm3u(6jjbk@qau`i}0.png
图片点击可在新窗口打开查看

--  作者:webzhang
--  发布时间:2020/11/30 14:07:09
--  
64位,2020 V 5.31
--  作者:yukizzc
--  发布时间:2020/11/30 14:07:53
--  
更新后再试,本地上面的测试结果你也试着看看呢
--  作者:webzhang
--  发布时间:2020/11/30 14:17:40
--  
        orders=get_orders (order_book_id=code, type=1) #取该品种订单数据      
        if not(orders is None):#无订单
            for order in orders:
                #开仓订单管理###########################################################################################
                if order.order_id in context.order_open[code]: 
                    if order.status in [\'submitted\',\'tradeing\']: #
                        ss=(context.now-order.datetime).seconds
                        if (ss>=56): #1 分钟不成交开仓撤单
                            print((\'查询订单:\',\'id\',order.order_id,\'status:\',order.status,\'quantity:\',order.quantity,\'filled_quantity\',order.filled_quantity))    
                            if   order.quantity> order.filled_quantity:             
                                if cancel_order (order.order_id) is None:
                                    myprint((\' 订单管理 1m时间开仓未成交,开仓订单取消,但取消订单失败\',order.order_id))
                                else:
                                    myprint((\' 订单管理 1m时间开仓未成交,订单取消\',order.order_id))
                #平仓订单管理###########################################################################

--  作者:yukizzc
--  发布时间:2020/11/30 14:23:37
--  

按照我上面说的,更新到6。0最新的测试版

然后按照我上面范例就那样输出不要去看你自己的代码,如果对上面范例有疑问请电话

021-20339087


--  作者:webzhang
--  发布时间:2020/11/30 14:27:15
--  
我要查询 开仓订单,1分钟是否成交,不成交撤单,用 order.status in [\'submitted\',\'tradeing\'] 判断,
  但是 已经明明 全部成交的订单,还是 是 \'submitted\',\'tradeing\'

print((\'查询订单:\',\'id\',order.order_id,\'status:\',order.status,\'quantity:\',order.quantity,\'filled_quantity\',order.filled_quantity))   
和 软件本身的 委托记录 对比, 同一 订单号,委托记录已经 全部成交,但 我查询出来 还是  \'submitted\',数量也是 未成交

--  作者:yukizzc
--  发布时间:2020/11/30 14:27:44
--  

021-20339087


--  作者:yukizzc
--  发布时间:2020/11/30 14:54:02
--  
这样测试也没问题
图片点击可在新窗口打开查看此主题相关图片如下:r%l3@)i%w5(8q8e(v9n1be.png
图片点击可在新窗口打开查看

--  作者:yukizzc
--  发布时间:2020/11/30 14:55:23
--  

from PythonApi import *
    #!/usr/bin/env python

def init(context):
    #before_trading(context)
    context.a = buy_open("SQRB00","Market",0,2,serial_id = 1)
   

# before_trading此函数会在每天基准合约的策略交易开始前被调用,当天只会被调用一次。--(选择实现)
def before_trading(context):
   
    print(55)
    print(context.now)
#    v_bar = history_bars_date(\'SZ300142\',\'20200506\',\'20201103\',\'1h\',\'close\')
#    s_bar = history_bars(\'SZ300142\',200,\'1h\',\'close\')
#    print(len(v_bar))
#    print(\'----\')
#    print(len(s_bar))

 

# 你选择的品种的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新。--(必须实现)
def handle_bar(context):
    print((\'全局\',context.a))
    id_last=get_orders_id(context.a)
    print((\'函数id\',id_last.order_id))
    print((\'函数订单状态\',id_last.status))