order对象中有一个方法,返回委托单的下单时间,你把它转换为hh:mm:ss的格式,然后与系统时间进行比较,格式是Datediff("s",T1,Time) 如果超过3秒就撤单。
Sub OrderCheDan()
'获取未成交单,指定秒数后撤单
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 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))>10 then '大于10秒撤单
Call Order.CancelOrder(
OrderID)
end if
Next
End Sub