开拓者期货期权程序化系统交易论坛

标题: 求助!!!改写pivot函数 [打印本页]

作者: marialeng    时间: 2017-12-15 10:40:21     标题: 求助!!!改写pivot函数

pivot函数有点看不懂,我想把pivot这个函数的pivotBar(转折点出现的Bar到当前Bar的回溯周期索引)改成50,应该怎么改呢?

Params
        NumericSeries Price(1);
        Numeric Length(10);
        Numeric LeftStrength(1);
        Numeric RightStrength(1);
        Numeric Instance(1);
        Numeric HiLo(1);
        NumericRef PivotPrice;
        NumericRef PivotBar;
Vars
        Numeric CandidatePrice( 0 );
        Numeric LengthCntr( 0 );
        Numeric StrengthCntr( 0 );
        Numeric InstanceCntr( 0 );
        Bool PivotTest( False);
        Bool InstanceTest( False ) ;
Begin
        InstanceCntr = 0 ;
        InstanceTest = False ;
        LengthCntr = RightStrength ;
        While (LengthCntr < Length && (!InstanceTest ))
        {
                CandidatePrice = Price[LengthCntr] ;
                PivotTest = True ;       
                StrengthCntr = LengthCntr + 1 ;
               
                While (PivotTest && StrengthCntr - LengthCntr <= LeftStrength )
                {
                        If (( HiLo == 1 And CandidatePrice < Price[StrengthCntr] ) or ( HiLo == -1 And CandidatePrice > Price[StrengthCntr] ))
                                PivotTest = False;
                        Else
                                StrengthCntr = StrengthCntr + 1 ;
                }
               
                StrengthCntr = LengthCntr - 1 ;
                While (PivotTest && (LengthCntr - StrengthCntr) <= RightStrength )
                {
                        If (( HiLo == 1 And CandidatePrice <= Price[StrengthCntr] ) or ( HiLo == -1 And CandidatePrice >= Price[StrengthCntr] ))
                                PivotTest = False;
                        Else
                                StrengthCntr = StrengthCntr - 1 ;
                }
               
                If (PivotTest)               
                        InstanceCntr = InstanceCntr + 1 ;

                If (InstanceCntr == Instance)
                        InstanceTest = True;
                Else
                        LengthCntr = LengthCntr + 1 ;
        }       
       
        If (InstanceTest )
        {
                PivotPrice = CandidatePrice ;
                PivotBar = LengthCntr ;
                Return True;
        }Else
        {
                PivotPrice = -1 ;
                PivotBar = -1 ;
                Return False;               
        }       
End




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2