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

跨周期问题 - TradeBlazer公式 [开拓者 TB]

  • 咨询内容: 能不能写一个15分钟跨周期取30分钟和60分钟MA的例子?老大写的几个我都看了,实在是不知道要怎么写

     

  • TB技术人员: 老大?????

    这个是TransMinsData30

     

  • TB客服: 本帖最后由 01011012 于 2011-10-19 14:20 编辑

    Params
            NumericSeries Price(1);
            Numeric nMinSet(30);
            Numeric MinsAgo(0);
    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

     

  • 网友回复: //------------------------------------------------------------------------
    // 简称: TransMinsData
    // 名称: 1小时内跨周期
    // 类别: 用户函数
    // 类型: 用户函数
    // 输出: 数值型
    //参数1:要计算的数据源。参数2:想按N分钟来处理,本例是5分钟,不能大于60。参数3:希望取多少个N分钟前的数据
    //------------------------------------------------------------------------
    Params
            NumericSeries Price(1);
            Numeric nMinSet(60);
            Numeric MinsAgo(0);
    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

    //------------------------------------------------------------------------
    // 编译版本

     

  • 网友回复: Params
            Numeric Length(55);
    Vars
            NumericSeries MyClose30;
            NumericSeries MyClose60;
                    NumericSeries MA15;
                    NumericSeries MA30;
                    NumericSeries MA60;
            Numeric SumValue30(0);
                    Numeric SumValue60(0);
            Numeric Value30;
                    Numeric Value60;
            Numeric i;
    Begin
            MyClose30 = DataConvert(Close,"min",30,"Close");
                    MyClose60 = DataConvert(Close,"min",60,"Close");                      
            For i = Length-1 DownTo 0
            {
                    Value30 = TransMinsData30(MyClose30,30,i);
                                    Value60 = TransMinsData(MyClose60,60,i);
                    SumValue30 = SumValue30 + Value30;
                                    SumValue60 = SumValue60 + Value60;
            }
                    ma60=SumValue60/Length;
                    ma30=SumValue30/Length;
                    ma15=AverageFC(Close,Length);
            PlotNumeric("my30",ma30);        
                    PlotNumeric("ma15",ma15);
                    PlotNumeric("MA60",MA60);
                   
                   

    End

 

如果以上指标公式不适用于您常用的行情软件

或者您想改编成选股公式,以便快速选出某种形态个股的话,

可以联系我们相关技术人员 QQ: 262069696  点击在线交流进行 有偿 改编!

 


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

相关文章

    没有相关内容