以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  Python,难以解释的bug。请重视。  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=168722)

--  作者:bingying
--  发布时间:2019/3/11 16:12:41
--  Python,难以解释的bug。请重视。

测试环境:阿里云服务器,金字塔Python,登陆simnow模拟账户

 

设置:走完k线模式,基础周期1分钟,基准合约:SQRB00.

 

运行逻辑:一旦触发handle_bar,立即发单。

 

orderlog:

2019-03-11 13:29:59.827    【Python】 策略:<2_for_test> 触发handle_bar
2019-03-11 13:29:59.850    【Python】sell_open 策略:<2_for_test> 出现信号 book_id:ZQCF00,voloram=8, Type=0, Price=14500.000000, Account=
2019-03-11 13:29:59.858    【下单】CF05 价14500.000000 量8 买卖1 类型0 开平0 账户132532 Formula 1
2019-03-11 13:29:59.866    【下单】确认报单已发送 ID=-870471630 RefID = 40
2019-03-11 13:29:59.882    【指令】收到回报指令 ID = -870471630 RefID = 40
2019-03-11 13:29:59.897    【指令】收到回报指令 ID = -870471630 RefID = 40
2019-03-11 13:29:59.921    【回报】132532 : CF905 - 已报单 8 价格:14500 开 卖
2019-03-11 13:29:59.921    【回报】132532 : CF905 - 已撤单报单被拒绝CZCE:当前状态禁止此项操作 量:8

 

分析:

我理解,只有交易开始后才会触发handle_bar,金字塔的行情数据肯定晚于交易所的撮合时间。如果出现问题,就是上期技术的simnow出现时间错误。

然而,登陆金字塔自己的模拟交易服务器,出现同样的问题“2019-03-11 10:30:01.202    【回报】628830 : J05 焦炭1905 - 已撤单 量:4

simnow和金字塔自己的模拟交易服务器,同时出现时间错误的可能性比较低。如果是这样的话,handle_bar的触发时间逻辑可能存在bug。

 


--  作者:bingying
--  发布时间:2019/3/11 16:17:55
--  

刚才写的设置有误,把基准合约ZQCF00误写成了SQRB00。

 

测试环境:阿里云服务器,金字塔Python,登陆simnow模拟账户

 

设置:走完k线模式,基础周期1分钟,基准合约:ZQCF00.

 

运行逻辑:一旦触发handle_bar,立即发单。

 

orderlog:

2019-03-11 13:29:59.827    【Python】 策略:<2_for_test> 触发handle_bar
2019-03-11 13:29:59.850    【Python】sell_open 策略:<2_for_test> 出现信号 book_id:ZQCF00,voloram=8, Type=0, Price=14500.000000, Account=
2019-03-11 13:29:59.858    【下单】CF05 价14500.000000 量8 买卖1 类型0 开平0 账户132532 Formula 1
2019-03-11 13:29:59.866    【下单】确认报单已发送 ID=-870471630 RefID = 40
2019-03-11 13:29:59.882    【指令】收到回报指令 ID = -870471630 RefID = 40
2019-03-11 13:29:59.897    【指令】收到回报指令 ID = -870471630 RefID = 40
2019-03-11 13:29:59.921    【回报】132532 : CF905 - 已报单 8 价格:14500 开 卖
2019-03-11 13:29:59.921    【回报】132532 : CF905 - 已撤单报单被拒绝CZCE:当前状态禁止此项操作 量:8

 

分析:

我理解,只有交易开始后才会触发handle_bar,金字塔的行情数据肯定晚于交易所的撮合时间。如果出现问题,就是上期技术的simnow出现时间错误。

然而,登陆金字塔自己的模拟交易服务器,出现同样的问题“2019-03-11 10:30:01.202    【回报】628830 : J05 焦炭1905 - 已撤单 量:4

simnow和金字塔自己的模拟交易服务器,同时出现时间错误的可能性比较低。如果是这样的话,handle_bar的触发时间逻辑可能存在bug。


--  作者:bingying
--  发布时间:2019/3/11 16:21:44
--  
或许存在的bug:handle_bar,每一时段开始的第一分钟,触发时间早于开盘时间。
--  作者:yukizzc
--  发布时间:2019/3/11 16:53:15
--  
2019-03-11 13:29:59.850这个记录是本地电脑时间不是行情时间,你在handle_bar里去输出下行情时间以及电脑的time时间,然后就能发现问题
--  作者:bingying
--  发布时间:2019/3/11 16:57:59
--  

但,问题是,“2019-03-11 13:29:59.921    【回报】132532 : CF905 - 已撤单报单被拒绝CZCE:当前状态禁止此项操作 量:8”是中期技术返回给我的拒绝信息啊,并不是我本地电脑的时间啊?


--  作者:bingying
--  发布时间:2019/3/11 17:00:38
--  

请问:如何在handle_bar里取到行情的毫秒时间?我用get_dynainf(order_book_id=context.s1,type=207)取到的时间,只精确到秒,没有毫秒。


--  作者:bingying
--  发布时间:2019/3/11 17:31:57
--  

但,问题是,“2019-03-11 13:29:59.921    【回报】132532 : CF905 - 已撤单报单被拒绝CZCE:当前状态禁止此项操作 量:8”是中期技术返回给我的拒绝信息啊,并不是我本地电脑的时间啊?


--  作者:无为剑
--  发布时间:2019/3/11 18:24:31
--  
行情是真实交易触发的,模拟交易柜台的时间通常都没那么精准的,如果你较真这个事情,请使用实盘账号测试就行了。
--  作者:bingying
--  发布时间:2019/3/11 18:30:14
--  

谢谢。我用实盘账号测试一下。如果有问题再反馈。