以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  请问 大师能否把这个代码做一个注释啊?  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=71571)

--  作者:lszxy
--  发布时间:2014/10/31 11:20:34
--  请问 大师能否把这个代码做一个注释啊?

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




这些参数貌似都没有地方查。或者给一个可以查的链接。非常感谢


--  作者:lszxy
--  发布时间:2014/10/31 11:42:08
--  
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编辑过]

--  作者:guotx2010
--  发布时间:2014/11/1 18:02:25
--  

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

--  作者:lszxy
--  发布时间:2014/11/3 9:52:09
--  
谢谢