offset=3
count = order.ordernum2
for i = 0 to count-1
call order.orderinfo2(index, orderid, consign, filled, remaining, action, ordertype, lmtprice,auxprice, account, code, market)
if ordertype=0 then
order.contract code,market,multiplier,mintick,shortpercent,longpercent
set report1 = marketdata.getreportdata(code,market)
if abs(report1.newprice-lmtprice)>=offset*mintick then
call order.cancelorder(orderid)
if action=0 and kaiping=0 then
order.buy 0,remaining,report1.newprice,0,code,market,account,0
end if
if action=0 and kaiping=1 then
order.sell 0,remaining,report1.newprice,0,code,market,account,0
end if
if action=1 and kaiping=0 then
order.buyshort 0,remaining,report1.newprice,0,code,market,account,0
end if
if action=1 and kaiping=1 then
order.sellshort 0,remaining,report1.newprice,0,code,market,account,0
end if
end if
end if
next
这些参数貌似都没有地方查。或者给一个可以查的链接。非常感谢
Public ExcelApp, iRowNo, iStartPingDuo, iStartPingKong, AccountCount
Public iMultipliter
Sub ORDER_OrderStatusEx2(OrderID, Status, Filled, Remaining, Price, Code, Market, OrderType, Aspect, Kaiping, Account, AccountType)
'账户类型 0 IB 1 CTP 2 金仕达
Dim sStatus '成交状态
If AccountType = 0 Then
sAccType = "0.IB"
ElseIf AccountType = 1 Then
sAccType = "1.CTP"
ElseIf AccountType = 2 Then
sAccType = "2.金士达"
End If
If AccountType = 0 Then
sStatus = "FILLED"
ElseIf AccountType = 1 Then
sStatus = "TRADEING"
ElseIf AccountType = 2 Then
sStatus = "FILLED"
End If
If UCase(Status) = sStatus Then '只跟踪成交的单
WriteTradeLog OrderID, Status, Filled, Remaining, Price, Code, Market, OrderType, Aspect, Kaiping, Account
End If
End Sub
''''''''''''''''''''''''''''''''''''''''''
Sub WriteTradeLog(OrderID, Status, Filled, Remaining, Price, Code, Market, OrderType, Aspect, Kaiping, AccountCode)
Dim i, j
Dim sSheetName, TradeSxf
On Error Resume Next
If iStartPingDuo = 0 Then
iStartPingDuo = 1
End If
If iStartPingKong = 0 Then
iStartPingKong = 1
End If
If Kaiping = 0 Then '开仓
TBUY(1,Filled,Code)
Else '平仓
If Aspect = 1 And Kaiping >= 1 Then '平多
End If
If Aspect = 0 And Kaiping >= 1 Then '平空
End If
End If
End Sub
TBUY(1,Filled,Code) 我想开仓,截获的品种和数量,但是系统提示,这样是不行。请问大神,这个代码要怎么写?
[此贴子已经被作者于2014/10/31 11:43:37编辑过]
TBUY(1,Filled,Code) 是perl后台语句,不能用在vba代码段中,在vba代码中得用Order对象的buy方法
建议学习一下我发布的vba代码范例中的order对象
http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=11642
[此贴子已经被作者于2014/11/1 18:03:36编辑过]