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
OrdTime=right(Order.OrderInfoTime2(i),8)是订单的委托时间
另外,楼主需要了解一下自定义函数的格式,返回值都是以函数的名字作为变量返回的,比如
function aaa(var1,var2)
'你的代码
aaa=XXX '这一行就是返回值,注意前面的aaa,就是函数的名称
end function
OrdTime=right(Order.OrderInfoTime2(i),8)这个语句里面有这个right( ,8)是不是因为是因为某些品种的交易时间因为在金字塔上经过修改,与实际时间不一致,所以会将时间前移8个小时,请问是不是这样?、 |
OrdTime=right(Order.OrderInfoTime2(i),8)这个语句里面有这个right( ,8)是不是因为是因为某些品种的交易时间因为在金字塔上经过修改,与实际时间不一致,所以会将时间前移8个小时,请问是不是这样?、 |
这里的主要意思应该是只取交易时间,因为这个返回的格式是 日期+时间 格式的
用户要学会基本的调试,例如OrdTime=right(Order.OrderInfoTime2(i),8)//你不知道为什么要用8这个参数
那么你可以直接输出相爱Order.OrderInfoTime2(i)的值,看看与ordtime的差别在那,相信你就明白了。学习就是多动手,别人讲透了就缺少了学习的乐趣