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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 未成交单,隔几秒自动撤单的VBA代码

   

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


  共有3280人关注过本帖平板打印复制链接

主题:未成交单,隔几秒自动撤单的VBA代码

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


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
未成交单,隔几秒自动撤单的VBA代码  发帖心情 Post By:2012/12/18 21:04:34 [只看该作者]

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编辑过]

 回到顶部