欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [求助] vba 开平仓指令 的 bug

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3968人关注过本帖树形打印复制链接

主题:[求助] vba 开平仓指令 的 bug

帅哥哟,离线,有人找我吗?
lwp00751206
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2016/8/5 10:55:16
[求助] vba 开平仓指令 的 bug  发帖心情 Post By:2016/10/24 11:54:45 [显示全部帖子]

用vba 发送1条开/平仓指令后,在没有任何成交的情况下有时会出现多条未成交纪录

     举个例子: 发送1条开多仓指令,开7手多仓,开仓价低于市场卖出价50个点,在没有任何成交的情况下,察看未成交单,

此时的未成交单数量是2,一个是3手的开多,一个是4手的开多,委托价一致,订单id不同,委托时间相同。

     这种情况不是每次执行委托指令都会出现。但这样会给整个程序带来很多麻烦,在处理和校验成交或未成交的时候都会造成计算量加倍,而且如果没有注意到这个bug会导致整个计算出错


 回到顶部
帅哥哟,离线,有人找我吗?
lwp00751206
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2016/8/5 10:55:16
  发帖心情 Post By:2016/10/24 13:12:44 [显示全部帖子]

怎么可能不存在,我这每条指令每个未成交单都有记录,每次都是循环历遍所有未成交单,同时记录,你们还是好好查一下,不要说的那么绝对,等我截图上来时你们就难堪了

 回到顶部
帅哥哟,离线,有人找我吗?
lwp00751206
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2016/8/5 10:55:16
  发帖心情 Post By:2016/10/24 13:15:38 [显示全部帖子]

而且当出现多个未成交单时,出现的未成交单的id和开平指令中返回的id会不一致,

 回到顶部
帅哥哟,离线,有人找我吗?
lwp00751206
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2016/8/5 10:55:16
  发帖心情 Post By:2016/10/24 13:29:13 [显示全部帖子]

我没有开启记录日志,这样会影响整个程序的速度,你们只要自己搞个简单的多手数下单,然后循环读取未成交进行比对,不管是实盘还是模拟的都可以,测半天的时间一定会看到

 


 回到顶部
帅哥哟,离线,有人找我吗?
lwp00751206
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2016/8/5 10:55:16
  发帖心情 Post By:2016/10/24 13:31:00 [显示全部帖子]

我获取未成交用的是orderinfo2,从0开始循环

 


 回到顶部
帅哥哟,离线,有人找我吗?
lwp00751206
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2016/8/5 10:55:16
  发帖心情 Post By:2016/10/24 16:05:01 [显示全部帖子]

不是只是循环读取未成交,看来是我没表达清楚。

正确的循环体是:

 

循环开始:

   1:确认无未成交单存在

   2:发出一条开平指令

   3:历遍未成交

   4:撤掉开平,或确认成交,最终确认无未成交单存在

循环结束

 

在这个循环过程中有时就会出现只发出了一次开平指令,但在历遍未成交的过程中出现2个未成交单

 


 回到顶部
帅哥哟,离线,有人找我吗?
lwp00751206
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2016/8/5 10:55:16
  发帖心情 Post By:2016/10/24 16:25:53 [显示全部帖子]

在我运行的程序里,每次开平后都有msgout输出调试,能100%确认一次只有一条指令,每次进入循环体也都有msgout输出调试证明,我可以100%的确认2次的保单是在同一时刻发出的,但我只发出了条指令,如果一次只委托1手的话就很少出现,如果委托多手,比如一次7手,有时就会出现两条委托,一条3手一条4手,我察看委托明细里也是出现同样的记录

 回到顶部
帅哥哟,离线,有人找我吗?
lwp00751206
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2016/8/5 10:55:16
  发帖心情 Post By:2016/10/24 16:27:56 [显示全部帖子]

我的msgout调试输出都是紧跟开平指令语句的,只要开平语句有执行,就一定会看到

 


 回到顶部
帅哥哟,离线,有人找我吗?
lwp00751206
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2016/8/5 10:55:16
  发帖心情 Post By:2016/10/24 16:29:23 [显示全部帖子]

未成交单一旦出现数量或是id与开平指令的id不符,马上msgout目前所有的未成交

 回到顶部
帅哥哟,离线,有人找我吗?
lwp00751206
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2016/8/5 10:55:16
  发帖心情 Post By:2016/10/24 16:32:26 [显示全部帖子]

而且出现异常问题后我有去比对软件上的委托明细,能确认异常出现时是出现了2比委托记录。我就搞不懂了,我明明只发出了1次7手的委托,为什么通过软件后,却执行成了3+4

 回到顶部
总数 12 1 2 下一页