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

如何在1分钟周期上取日线40日ATR值? - TradeBlazer公式 [开拓者 TB]

  • 咨询内容: 如何在1分钟K线上取日K线40日ATR值呢?
    请高手赐教!!!

     

  • TB技术人员: 如果要实现这个系统,首先需要至少41天的分钟数据,大概10000多一点。

    然后通过HighD(),LowD,CloseD等函数计算ATR,不能直接用Average进行计算,需要自行计算平均值。
    理论上是可以实现的,但是还是比较复杂的,我觉得比较简单的方法就是每天开盘前,把ATR作为参数输入。

    感谢NOPAIN先生回复.

     

  • TB客服:   感谢NOPAIN先生回复.
      我整理一下我的思路,您看看对不对.
      首先从大的思路来讲,
      一、先求昨ATR的函数,用到HighD\LowD\CloseD,
      二、求平均ATR的函数,与跨周期情况下的均线计算这个案例类似,用FOR i=Lentgh to 0来顺序抽取对应ATR值求出平均数!!
      不知道是不是以上这样!!

         求1分钟K线上取日K线40日ATR值主要是用来做历史测试,实盘不需要这样,直接算出值代入就行,不用如此复杂!!

    [ 本帖最后由 samwjwj 于 2008-10-28 20:46 编辑 ]

    编了一个,好象有点问题,NOPAIN先生帮助看看!!

     

  • 网友回复: 一、        先求昨ATR
    //------------------------------------------------------------------------
    // 简称: MyATR
    // 名称:
    // 类别: 用户函数
    // 类型: 用户函数
    // 输出: 数值型
    //------------------------------------------------------------------------
    Params
      Numeric Lentgh(1);
    Vars
      Numeric HH;
      Numeric LL;
      Numeric CC;
      Numeric MyATR
    Begin
    HH=HighD(Lentgh);
    LL=LowD(Lentgh);
    CC=CloseD(Lentgh+1);
    MyATR= Max(Max(HH-LL,ABS(CC-LL)),ABS(HH-CC));
            If(Day<>Day[1])
                    {       
            Return HH - LL;
             }
              Else
             {
                     Return MyATR
              }
    End

    二、        再求平均ATR
    //------------------------------------------------------------------------
    // 简称: AvgMyTrueRange
    // 名称: 平均真实幅度用于一分钟
    // 类别: 用户函数
    // 类型: 用户函数
    // 输出: 数值型
    //------------------------------------------------------------------------

    Params
            Numeric Length(22);
    Vars
        Numeric i;
            Numeric Value1;
            Numeric SumValue(0);
            Numeric AvgATR;
    Begin
        //以下求昨ATR的移动平均   
            For i = Length  DownTo 1//循环,从现循环到前,length的长度
            {
                    Value1 =MyATR(i);
                    SumValue = SumValue + Value1;
            }
           return AvgATR=SumValue/Length;

    End

    [ 本帖最后由 samwjwj 于 2008-10-28 22:17 编辑 ]

     

  • 网友回复: 我估计也应该是有问题, For循环里面的跨周期调用应该是不行的。

    用笨办法看看行不行。先求5日的平均ATR,直接写5个试试,不用For语句。

 

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

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

 


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

相关文章

    指定的模型还没有相关内容!