如何在15分钟周期取前1小时的收盘价?

同其他跨周期的一样,先需要建立一个用户函数,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((Hour*60+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

再建一个指标,假设命名为preHourClose

Vars

        Numeric preHC;

Begin

        preHC = TransMinsData(Close,60,1);

        PlotNumeric("PHC",preHC);

End

中午11点到11点半半小时 但是在一小时图上是一根K线  还有1点30到2点也是有2根15分钟线  也算1根一小时线

比如现在是13点45分,那么此时想取到的1小时图上上一根K线的收盘价 实际上是11点30分的收盘价,这个时候把函数改一下:

Params

        NumericSeries Price(1);

        Numeric nMinSet(5);

        Numeric MinsAgo(2);

Vars

        NumericSeries MinsOfDay;

        NumericSeries barCnt;

        NumericSeries MinData;

        Numeric i;

        Numeric j;

        Numeric nIndex(0);

Begin

        MinsOfDay = (Hour*60+Minute);                

        If(IntPart(MinsOfDay/nMinSet)!=IntPart(MinsOfDay[1]/nMinSet))

        {

                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

求最后一个值和第一个值算法又不一样了

TransMinsData_Open

Params

        NumericSeries Price(1);

        Numeric nMinSet(5);

        Numeric MinsAgo(2);

Vars

        NumericSeries MinsOfDay;

        NumericSeries barCnt;

        NumericSeries MinData;

        Numeric i;

        Numeric j;

        Numeric nIndex(0);

Begin

        MinsOfDay = (Hour*60+Minute);               

        If(IntPart(MinsOfDay/nMinSet)!=IntPart(MinsOfDay[1]/nMinSet))

        {

                barCnt = 1;

                MinData = Price;

        }Else

        {

                barCnt = barCnt[1] + 1;

                MinData = MinData [1];

        }

               

        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

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

风险提示及免责条款

市场有风险,投资需谨慎。本文不构成个人投资建议,也未考虑到个别用户特殊的投资目标、财务状况或需要。用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部