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

我的这个程序怎么编译通不过 [金字塔]

  • 咨询内容:

    dim shanchushanchu = 0 ;
    dim dangtianshuju ;
    dim bili bili = 0.001 ; 
    dim xinheyuexinheyue = "IF88" ;
    dim xinmingchengxinmingcheng = "IF等价K线";
    dim xinshichangxinshichang = "ZJ" ;
    dim laoheyuelaoheyue = "IF00" ;
    dim laoshichanglaoshichang = "ZJ";
    dim laozhishulaozhishu = "IF13" ;
    Sub lishishuju() ;
    cunzai = marketdata.IsExistStock(xinheyue,xinshichang)    ;
    if cunzai = 0 then      
    call
    marketdata.AddStock(xinheyue,xinshichang,xinmingcheng)  ;    
     application.MsgOut ; 
    else     
     application.MsgOut;
    end if
              
    set
    Report1 = marketdata.GetReportData(laoheyue,laoshichang) ;      
    qj = Report1.Open*bili   ;       
    if shanchu = 1
    then           
    Set
    History1 = marketdata.GetHistoryData(xinheyue,xinshichang,0);           
    for j = 0 to History1.Count-1      
    History1.RemoveAt(j) ;     
    next          
    call
    History1.InsertAt(0)      ;
     History1.open(0) = Report1.Open    ;  
    History1.close(0) = Report1.Open       ;
    History1.high(0) = Report1.Open       ;
    History1.low(0) = Report1.Open      ;
    History1.Date(0) = Report1.Date       ;
    History1.Volume(0) = Report1.Volume      ;
    History1.OpenInt(0) = Report1.OpenInt      ;
    Call
     History1.SaveData(xinheyue,xinshichang,1)  ;            
    application.MsgOut ;"等价K线【历史数据初始化】成功!"   
    end if                 
    set
    minutedata = marketdata.GetMinuteData(laoheyue,laoshichang) ;  
    Count =  minutedata.Count    ;       
    for i = 1 to count-1            
    Set
    History2 = marketdata.GetHistoryData(xinheyue,xinshichang,0) ;            
    mxopen = History2.open(History2.Count-1);       
    mxclose = History2.close(History2.Count-1);       
    mxhigh = History2.high(History2.Count-1);       
    mxlow = History2.low(History2.Count-1);       
    mxDate = History2.Date(History2.Count-1);       
    mxVolume = History2.Volume(History2.Count-1);       
    mxOpenInt = History2.OpenInt(History2.Count-1);       
    close = minutedata.newprice(i);       
    fbDate = minutedata.Date(i);             
    Volume = minutedata.Volume(i);       
    mxVolume = minutedata.Volume(i-1);       
    OpenInt = minutedata.OpenInt(i);       
    if close > mxhigh
    then
    mxhigh = close;
    end if      
    if close < mxlow 
    then
    mxlow = close;
    end if       
    mxdate = fbDate;       
    mxxVolume = (Volume-mxVolume)+mxxVolume;       
    mxOpenInt = OpenInt ;              
    History2.close(History2.Count-1) = close;       
    History2.high(History2.Count-1) = mxhigh;       
    History2.low(History2.Count-1) = mxlow ;      
    History2.Date(History2.Count-1) = mxdate;         
    History2.Volume(History2.Count-1) = mxxVolume;         
    History2.OpenInt(History2.Count-1) = mxOpenInt;        
    call
    History2.SaveData(xinheyue,xinshichang,1);              
    if abs(close-mxopen) > qj
    then                    
    call
    History2.InsertAt(History2.Count) ;      
    History2.open(History2.Count-1) = close;       
    History2.close(History2.Count-1) = close;       
    History2.high(History2.Count-1) = close ;      
    History2.low(History2.Count-1) = close  ;     
    History2.Date(History2.Count-1) = mxdate;         
    History2.Volume(History2.Count-1) = 0;          
    History2.OpenInt(History2.Count-1) = OpenInt;         
    call
    History2.SaveData(xinheyue,xinshichang,1);          
    mxxVolume = 0  ;     
     end if            
    next
    End Sub
    sub dengjiaK();   
    call
    lishishuju();
    end sub
    Sub APPLICATION_VBAStart();   
    call
    Application.SetTimer(0,1000);

    Sub APPLICATION_Timer(ID);      
    if ID = 0
    then   
     if (cdate(time)<=cdate("11:30:00") and cdate(time)>cdate("9:15:00")) or (cdate(time)<=cdate("15:15:00") and cdate(time)>cdate("13:00:00")) then           '等价区间处理         
    set
    Report1 = marketdata.GetReportData(laoheyue,laoshichang);        
    qj = Report1.Open*bili;              
    set
    Report2; = marketdata.GetReportData(laozhishu,laoshichang);                        
    Set
    History2 = marketdata.GetHistoryData(xinheyue,xinshichang,0);             
    mxopen = History2.open(History2.Count-1);       
    mxclose = History2.close(History2.Count-1);       
    mxhigh = History2.high(History2.Count-1);       
    mxlow = History2.low(History2.Count-1);       
    mxDate = History2.Date(History2.Count-1);       
    mxxVolume = History2.Volume(History2.Count-1);       
    mxOpenInt = History2.OpenInt(History2.Count-1);               
    set
    minutedata = marketdata.GetMinuteData(laoheyue,laoshichang);       
    Count =  minutedata.Count ;                       
    close = minutedata.newprice(Count-1);       
    fbDate = minutedata.Date(Count-1);        
    mxVolume = minutedata.Volume(Count-2);       
    Volume = minutedata.Volume(Count-1);       
    OpenInt = minutedata.OpenInt(Count-1);       
    if close > mxhigh
    then
    mxhigh = close ;
    end if       
    if close < mxlow
    then
    mxlow = close ;
    end if       
    mxdate = fbDate ;      
    mxxVolume = mxxVolume+(Volume-mxVolume);       
    mxOpenInt =OpenInt' ;     
     application.MsgOut mxxVolume&" "&Volume&" "&Volume-mxVolume       
     History2.close(History2.Count-1) = close;       
    History2.high(History2.Count-1) = mxhigh ;      
    History2.low(History2.Count-1) = mxlow ;      
    History2.Date(History2.Count-1) = mxdate;         
    History2.Volume(History2.Count-1) = mxxVolume;         
    History2.OpenInt(History2.Count-1) = mxOpenInt ;        
    call
    History2.SaveData(xinheyue,xinshichang,1) ;             
    if abs(close-mxopen) > qj
    then                 
    call
    History2.InsertAt(History2.Count) ;      
    History2.open(History2.Count-1) = close;       
    History2.close(History2.Count-1) = close ;      
    History2.high(History2.Count-1) = close  ;     
    History2.low(History2.Count-1) = close   ;    
    History2.Date(History2.Count-1) = mxdate   ;      
    History2.Volume(History2.Count-1) = 0    ;     
    History2.OpenInt(History2.Count-1) = OpenInt ;      
    call
    History2.SaveData(xinheyue,xinshichang,1);
    mxxVolume = 0  ;     
    end if           
     call Application.ActivateFrameWithCode("Technic",xinheyue,xinshichang,0);    
    call
    Technic.Refresh;         
    end if               
    end if  
    end sub
    Sub to_0()

    Set History = marketdata.GetHistoryData("IF88","ZJ",0);
    for i=0 to History.Count-1History
    Volume(i) = 0;
    next
    call
    History.SaveData("IF88","ZJ",1);

     

    End Sub

     

     

  • 金字塔客服:

    编译的时候不是说句末没分号,就是说有函数没有定义。搞不懂,求助。

     

  • 用户回复: 请各位帮忙找原因.

     

  • 网友回复: 你连pel跟vba代码都分不清了吗

     

  • 网友回复:

    这个不是PEL代码,直接放进公式系统自然无效

    这个是VBA代码,不再这里做讨论,请去高级区发帖咨询

 

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

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


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

相关文章

    没有相关内容