因为图表交易系统中不能使用Tcancel函数,所以我自定义了一个函数,这个函数调用VBS代码来取消停损单,不知道行不行?
调用的代码:
t:=CancelAllOrders(2,1); //调用自定义函数撤销停损单
函数是这样的:
Function CancelAllOrders(Formula,OrderType,Kaiping)
CancelOrders 2,1
CancelAllOrders=1
End Function
调用的取消订单的过程如下:
'订单撤单(根据指定的要撤销的订单类型撤单,传入参数如果是0,0则全部撤单)
Sub CancelOrders(OrdType,Kp)
'取到所有未成交持仓,并进行撤单
dim OrderID
dim ConSign
dim Filled
dim Remaining
dim Action
dim OrderType
dim LmtPrice
dim Account
dim Code
dim Market
'取未成交记录数量
Count = Order.OrderNum2
'循环读出记录,然后根据订单ID进行撤单操作
for i = 0 to Count-1
call Order.OrderInfo2(i,OrderID, ConSign, Filled, Remaining, Action, OrderType, LmtPrice, Account, Kaiping, Code, Market)
If OrdType=0 And Kaiping=0 Then
Call Order.CancelOrder(OrderID)
ElseIf OrderType=OrdType And Kaiping=Kp then
Call Order.CancelOrder(OrderID)
End if
next
End Sub
公式系统测试没有出错,只有等交易时间来测试一下是否可行了。