跨周期情况下的均线计算。

使用环境:

基本数据源为1分钟,通过DataConvert可以转化为对应的5分钟数据,有些朋友希望能够在1分钟图里面取道5分钟的数据的均线,效果要和单独使用5分钟的均线一样。为此,提供以下函数。

  1. 新建一个用户函数,TransMinsData,返回值为数值型。

参数1:要计算的数据源。

参数2:想按N分钟来处理,本例是5分钟,不能大于60。

参数3:希望取多少个N分钟前的数据。

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
  1. 新建一个技术指标,用来举例说明如何使用该函数。

本例是取5分钟的均值((O+H+L+C)/4)的10周期移动平均。

Params

        Numeric Length(10);

Vars

        Numeric MyOpen;

        Numeric MyHigh;

        Numeric MyLow;

        Numeric MyClose;

        NumericSeries MyAvgPrice;

        

        Numeric SumValue(0);

        Numeric Value1;

        Numeric i;

Begin

        MyOpen = DataConvert(Open,"min",5,"Open");

        MyHigh = DataConvert(High,"min",5,"High");

        MyLow = DataConvert(Low,"min",5,"Low");

        MyClose = DataConvert(Close,"min",5,"Close");

        MyAvgPrice = (MyOpen+MyHigh+MyLow+MyClose)*0.25;

        

        For i = Length-1 DownTo 0

        {

                Value1 = TransMinsData(MyAvgPrice,5,i);

                SumValue = SumValue + Value1;

        }

        PlotNumeric("AvgPrice",SumValue/Length);

End

关键字:程序化交易, TradeBlazer, 跨周期



                                                    风险提示及免责条款

市场有风险,投资需谨慎。本文不构成个人投资建议,也未考虑到个别用户特殊的投资目标、财务状况或需要。用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部