您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

请问 大师能否把这个代码做一个注释啊? [金字塔]

  • 咨询内容:

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

     

  • 网友回复: 谢谢

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 1145508240  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容