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

这个程序编译的时候通不过,不知道怎么转换,请教了 [金字塔]

  • 咨询内容:

    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

     


    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

     

  • 金字塔客服: http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=69458 5楼

     

  • 用户回复: 主要看哪一部分,我昨天都打印出来了

     

  • 网友回复: 这几天都在看,还是不知道怎么转换

 

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

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


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

相关文章

    没有相关内容