设为首页收藏本站

 找回密码
 注册
查看: 1480|回复: 1
打印 上一主题 下一主题

这个程序一直出现信号消失,能怎么改吗? [复制链接]

Rank: 1

精华
0
UID
232261
积分
25
帖子
18
主题
7
阅读权限
10
注册时间
2016-4-15
最后登录
2016-11-10
跳转到指定楼层
1#
发表于 2016-5-19 20:52:47 |只看该作者 |倒序浏览
Params
    Numeric Num(1);
        Numeric SL(20);
        Numeric Length(1);
        Numeric N(1);
        Numeric Rate(0.64);
        Numeric Lots(1);
Vars
    //C
    Numeric HBarLength1;
    Numeric LBarLength1;
        /*
        Numeric HBarLength2;
    Numeric LBarLength2;
    Numeric EXHigh1;
    Numeric EXHigh2;
    Numeric EXLow1;
        Numeric EXLow2;
    Numeric HMDSUM1;
    Numeric HMDSUM2;
    Numeric LMDSUM1;
    Numeric LMDSUM2;
        */
    /*/RSI
        NumericSeries NetChgAvg1( 0 );
        NumericSeries TotChgAvg1( 0 );
        Numeric SF1( 0 );
        Numeric Change1( 0 );       
        Numeric ChgRatio1( 0 ) ;
        NumericSeries RSI1;
        NumericSeries NetChgAvg2( 0 );
        NumericSeries TotChgAvg2( 0 );
        Numeric SF2( 0 );
        Numeric Change2( 0 );       
        Numeric ChgRatio2( 0 ) ;
        NumericSeries RSI2;*/
        //MA
        NumericSeries MA1;
        NumericSeries MA2;
        //MACD
        NumericSeries MACDValue;
        NumericSeries AvgMACD;
        NumericSeries MACDDiff;
        /*/CCI
        NumericSeries TmpValue;
        Numeric Mean( 0 );  
        Numeric AvgDev( 0 );
        Numeric Counter( 0 ) ;
        NumericSeries CCIValue(0);  
        Numeric CCIAvg;*/
        //主程序
        Numeric CBNthCon;
        Numeric CSNthCon;
        Numeric RSINthCon;
        Numeric MABNthCon;
        Numeric MASNthCon;
        Numeric MACDBNthCon;
        Numeric MACDSNthCon;
        Numeric CCINthCon;
        Numeric SumBCon(0);
        Numeric SumSCon(0);

Rank: 1

精华
0
UID
232261
积分
25
帖子
18
主题
7
阅读权限
10
注册时间
2016-4-15
最后登录
2016-11-10
2#
发表于 2016-5-19 20:53:14 |只看该作者
Begin
    //C
        HBarLength1 = SwingHighBar(1,C,N,SL);
    LBarLength1 = SwingLowBar(1,C,N,SL);
        /*
        HBarLength2 = SwingHighBar(2,C,N,SL);
    LBarLength1 = SwingLowBar(2,C,N,SL);
    EXHigh1 = SwingHigh(1,C,N,SL);
    EXHigh2 = SwingHigh(2,C,N,SL);
    EXLow1 = SwingLow(1,C,N,SL);
    EXLow2 = SwingLow(2,C,N,SL);
        */
    /*/RSI.....................................................
    If(CurrentBar <= 7 - 1)
        {
                NetChgAvg1 = ( Close - Close[7] ) /7 ;
                TotChgAvg1 = Average( Abs( Close - Close[1] ), 7 ) ;
        }Else
        {
                SF1 = 1/7;
                Change1 = Close - Close[1] ;
                NetChgAvg1 = NetChgAvg1[1] + SF1 * ( Change1 - NetChgAvg1[1] ) ;
                TotChgAvg1 = TotChgAvg1[1] + SF1 * ( Abs( Change1 ) - TotChgAvg1[1] ) ;       
        }
       
        If( TotChgAvg1 <> 0 )
        {
                ChgRatio1 = NetChgAvg1 / TotChgAvg1;
        }else
        {
                ChgRatio1 = 0 ;
        }
       
    If(CurrentBar <= 14 - 1)
        {
                NetChgAvg2 = ( Close - Close[14] ) /14 ;
                TotChgAvg2 = Average( Abs( Close - Close[1] ), 14 ) ;
        }Else
        {
                SF2 = 1/14;
                Change2 = Close - Close[1] ;
                NetChgAvg2 = NetChgAvg2[1] + SF2 * ( Change2 - NetChgAvg2[1] ) ;
                TotChgAvg2 = TotChgAvg2[1] + SF2 * ( Abs( Change2 ) - TotChgAvg2[1] ) ;       
        }
       
        If( TotChgAvg2 <> 0 )
        {
                ChgRatio2 = NetChgAvg2 / TotChgAvg2;
        }else
        {
                ChgRatio2 = 0 ;
        }               
        RSI1 = 50 * ( ChgRatio1 + 1 );
        RSI2 = 50 * ( ChgRatio2 + 1 );
        */
        //MA.....................................................
        MA1 = AverageFC(Close,2);
        MA2 = AverageFC(Close,7);
       
        //MACD...................................................
        MACDValue = XAverage( Close, 12 ) - XAverage( Close, 26 ) ;       
        AvgMACD = XAverage(MACDValue,9);
        MACDDiff = MACDValue - AvgMACD;
       
        /*/CCI.......................................................
        TmpValue = High + Low + Close;
        Mean = AverageFC( TmpValue, 14 ) ;
        AvgDev = 0 ;
        for Counter = 0 to 14 - 1
        {
                AvgDev = AvgDev + Abs( TmpValue[Counter] - Mean ) ;
        }
        AvgDev = AvgDev / 14 ;
       
        if( AvgDev == 0)
                CCIValue = 0;
        Else
                CCIValue = ( TmpValue - Mean ) / ( 0.015 * AvgDev ) ;               
        CCIAvg = AverageFC(CCIValue, 9 );
        */
        //主程序
        //多
        if(MarketPosition<>1)
        {
        MABNthCon = NthCon(CrossOver(MA1,MA2),1);
        MACDBNthCon = NthCon(MACDDiff<0&&MACDDiff[1]>MACDDiff[2]&&MACDDiff[2]>MACDDiff[3],1);
        //MACDNthCon = NthCon(CrossOver(MACDValue,AvgMACD),1);

        If(LBarLength1 <= Length)
        {
         SumBCon = SumBCon + 1;
         If(MABNthCon <= Length)
         {
          SumBCon = SumBCon + 1;
          If(MACDBNthCon <= Length)
          {
          SumBCon = SumBCon + 1;
          }
          }
          }
       

        if(SumBCon>=Num)
        {
         BuyToCover(0,open);
         Buy(Lots,open);
         SumBCon = 0;
        }
        }
        //空
        if(MarketPosition<>-1)
        {
    MASNthCon = NthCon(CrossUnder(MA1,MA2),1);
        MACDSNthCon = NthCon(MACDDiff>0&&MACDDiff[1]<MACDDiff[2]&&MACDDiff[2]<MACDDiff[3],1);
        //MACDNthCon = NthCon(CrossUnder(MACDValue,AvgMACD),1);
       
        If(HBarLength1 <= Length)
    {
         SumSCon = SumSCon + 1;
         If(MASNthCon <= Length)
         {
         SumSCon = SumSCon + 1;
         If(MACDSNthCon <= Length)
         {
         SumSCon = SumSCon + 1;
         }
         }
         }

        if(SumSCon>=Num)
        {
         Sell(0,open);
         SellShort(Lots,open);
         SumSCon = 0;
        }
        }
       
        if (MarketPosition==1 and low<AvgEntryPrice*(1-Rate*0.01))
        {
        Sell(0,Min(open,AvgEntryPrice*(1-Rate*0.01)));
        }
        if (MarketPosition==-1 and high>avgentryprice*(1+Rate*0.01))
        {
        BuyToCover(0,Max(open,avgentryprice*(1+Rate*0.01)));
        }
       
        If((Date[-1]!=InvalidInteger && Date!=Date[-1])||(Date[-1]==InvalidInteger && Date < CurrentDate))
    {
        Sell(0,Close);
        BuyToCover(0,Close);
    }Else If(Date==CurrentDate && Time==0.1510 && CurrentTime>=0.1513)
    {
        Sell(0,Close);
        BuyToCover(0,Close);
    }

End

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-23 13:58

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部