以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  请问撤单后追单时为何会重复报单  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=172099)

--  作者:zw_zac
--  发布时间:2019/9/19 11:16:18
--  请问撤单后追单时为何会重复报单

今天使用如下代码进行追单时,出现了一次异常情况:撤单以后,追单时重复报单了一次,请问是代码的问题还是金字塔系统的bug呢?

 

 

dim i
 dim orderid
 dim consign
 dim filled
 dim remaining
 dim action
 dim ordertype
 dim lmtprice
 dim kaiping
 dim account
 dim code
 dim market
 dim multiplier
 dim mintick
 dim shortpercent
 dim longpercent
 dim offset
 
 offset=0

 

 for i = 0 to order.ordernum2-1
  call order.orderinfo2(i, orderid, consign, filled, remaining, action, ordertype, lmtprice, account,kaiping, code, market)
  if ordertype=0 then
   order.contract code,market,multiplier,mintick,shortpercent,longpercent
   set report1 = marketdata.getreportdata(code,market)
  
   if abs(report1.newprice-lmtprice)>offset*mintick then
    call order.cancelorder(orderid)
       
   if action=0 and kaiping=0 then
     order.buy 0,remaining,report1.sellprice1,0,code,market,account,0
    end if
   
    if action=0 and kaiping=1 then
     order.sellshort 0,remaining,report1.sellprice1,0,code,market,account,0
    end if
   
    if action=1 and kaiping=0 then
     order.buyshort 0,remaining,report1.buyprice1,0,code,market,account,0
    end if
   
    if action=1 and kaiping=1 then
     order.sell 0,remaining,report1.buyprice1,0,code,market,account,0
    end if   
   end if
  end if
 set code = nothing
 set market = nothing
 set account = nothing
 next

 

 

交易日志如下:
2019-09-19 10:15:04
632716 : IC09 500股指1909 - 已撤单 量:1

2019-09-19 10:15:04
632716 : IC09 - 已报单 1 价格:5135.0 开 买

2019-09-19 10:15:05
632716 : IC09 - 已报单 1 价格:5135.0 开 买

2019-09-19 10:15:05
632716 : IC1909 - 已成交 1 价格:5134.8 开 买

2019-09-19 10:15:05
632716 : IC1909 - 全部成交 1

2019-09-19 10:15:05
632716 : IC1909 - 已成交 1 价格:5134.8 开 买

2019-09-19 10:15:05
632716 : IC1909 - 全部成交 1


--  作者:yukizzc
--  发布时间:2019/9/20 11:09:26
--  
撤单是需要时间的,你撤单后马上下单这种是不可以的。

一般把下单动作放到一个OrderStatusEx2事件里面去, 当判断事件是已撤单后,再去做追单

--  作者:zw_zac
--  发布时间:2019/9/20 12:31:50
--  

感谢指导