以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  未成交单,隔几秒自动撤单的VBA代码  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=31631)

--  作者:guotx2010
--  发布时间:2012/12/18 21:04:34
--  未成交单,隔几秒自动撤单的VBA代码

Sub OrderCheDan(iCheTime)  \'获取未成交单,指定秒数后撤单
 dim Orderid   \'订单ID
 dim Filled   \'提交手数
 dim Remaining  \'剩余手数
 dim Action   \'买卖
 dim OrderType  \'订单类型
 dim LmtPrice  \'委托价
 dim Account   \'账户
 dim Kaiping   \'开平
 
 PendingCount=Order.OrderNum2
 For i=0 to PendingCount-1
  Call Order.OrderInfo2(i,OrderID,ConSign,Filled,Remaining,Action,OrderType,LmtPrice,Account,Kaiping,Code,Market)
  \'application.MsgOut "PendingCount:" & PendingCount & ",OrderID:" & OrderID & ",Code:" & Code & ",lmtPrice:" & lmtPrice & ",Action:" & Action & ",Kaiping:" & Kaiping & ",Filled:" & Filled & ",Remaining:" & Remaining 
 \'application.MsgOut Cdate(time) & ",sAction:" & sAction & ",sKaiping:" & sKaiping & ",LmtPrice:" & LmtPrice & ",OrderID:" & OrderID
   OrdTime=right(Order.OrderInfoTime2(i),8)    \'订单的委托时间

   application.MsgOut "OrdTime:"&OrdTime
   if Datediff("s",OrdTime,Cdate(time))>iCheTime then    \'超过间隔指定的秒数,就撤单
      Call Order.CancelOrder(OrderID)

   end if 
 Next
End Sub

 

调用以上代码的方式:OrderCheDan 5               \'间隔5秒不成交就撤单

可以把这个过程放到计时器中,定时检测有没有未成交的单,有,而且超过时间就撤单。

 

[此贴子已经被作者于2012-12-19 20:01:49编辑过]

--  作者:admin
--  发布时间:2012/12/18 21:34:55
--  
不错