您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者公式>>正文内容

新写开拓者 TB 1分钟图形下计算60分钟WR的程序[开拓者公式]

  • 因为编写的策略需要用到跨周期,最近研究了论坛里面的跨周期内容集中贴里面的内容,编写了这个WR的跨周期程序。可是刚刚接触TB没多久,不知道编写有无纰漏,所以贴出来请大家指正,谢了。

    1、首先使用了管理员nopain大虾提供的用户函数TransMinsData

    Params
            NumericSeries Price(1);
            Numeric nMinSet(5);
            Numeric MinsAgo(2);
    Vars
            NumericSeries barCnt;
            NumericSeries MinData;
            Numeric i;
            Numeric j;
            Numeric nIndex(0);
    Begin
            If(IntPart(Minute%nMinSet)==0)
            {
                    barCnt = 1;
            }Else
            {
                    barCnt = barCnt[1] + 1;
            }
            MinData = Price;
                   
            If(MinsAgo == 0)
            {
                    return MinData;
            }Else
            {
                    For i = 1 To MinsAgo
                    {
                            If( i == 1)
                            {        
                                    j = 0;
                            }Else
                            {
                                    j = j + BarCnt[j];                                
                            }
                            If (j > CurrentBar ) Return InvalidNumeric;
                            nIndex = nIndex + BarCnt[j];
                    }
                    Return MinData[nIndex];
            }
    End


    2、1分钟图形下计算60分钟WR的程序
    新建技术指标,命名为My60minsWR,代码如下:


    Params
            Numeric Length(5);
    Vars
            Numeric Divisor;
            Numeric PRValue;
            Numeric HighestValue;
            Numeric i;
            Numeric LowestValue;
            NumericSeries MyHigh;
                    NumericSeries MyLow;
            NumericSeries MyClose;
    Begin
            MyHigh = DataConvert(High,"min",60,"High");
                    MyLow = DataConvert(Low,"min",60,"Low");
            MyClose = DataConvert(Close,"min",60,"Close");
            HighestValue = MyHigh;
            LowestValue = MyLow;       

            For i = Length-1 DownTo 0
            {
                    If(TransMinsData(MyHigh,60,i) > HighestValue)
                            HighestValue = TransMinsData(MyHigh,60,i);
            }

            For i = Length-1 DownTo 0
            {
                    If(TransMinsData(MyLow,60,i) < LowestValue)
                            LowestValue = TransMinsData(MyLow,60,i);
             }

            Divisor =HighestValue - LowestValue;
            If (Divisor <> 0 )
            PRValue = (MyClose - HighestValue)/Divisor * 100;
            else
                    PRValue = Divisor;
            PlotNumeric("WR",PRValue);

    End

     

 

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

可联系技术人员 QQ: 262069696  点击在线交流进行 有偿 编写!不贵!点击查看价格!

 


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

相关文章

    没有相关内容