设为首页收藏本站

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

求助!!!改写pivot函数 [复制链接]

Rank: 2

精华
0
UID
251844
积分
115
帖子
39
主题
19
阅读权限
30
注册时间
2017-5-31
最后登录
2018-2-7
跳转到指定楼层
1#
发表于 2017-12-15 10:40:21 |只看该作者 |倒序浏览
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
您需要登录后才可以回帖 登录 | 注册

bottom

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

GMT+8, 2024-4-26 14:35

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部