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

计算平均振幅,数据起始的数天计算不对,该如何处理 - TradeBlazer公式 [开拓者 TB]

  • 咨询内容: 本帖最后由 xiaoye51888 于 2012-4-16 11:59 编辑

    例如在5min的图上,计算HighD(1)-LowD(1)到HighD(5)-LowD(5)的均值,那么需要图表上现在有前5天的数据,否则会出错。这个可以理解,TB的操作都是基于图表的。那就想跳过开头那几天,等所有要计算的数据齐了,再开始运算,再进行信号运算开平仓。

    加上了过滤,直到所有要计算的数据齐了,再开始运算。
    Numeric RANGE_LENGTH(5);

    if(highD(RANGE_LENGTH+2)==InvalidNumeric())
    {
          return;
    }

    sumRange = 0;
          For i=1 To RANGE_LENGTH
              {
                    sumRange = sumRange+(HighD(i)-LowD(i));
                   
              }
      PlotString("sumRange",Text(sumRange),upperband,Red);
    PlotString("HighD1",Text(HighD(1)-LowD(1)),upperband,Red);
    PlotString("HighD2",Text(HighD(2)-LowD(2)),upperband,Red);
    PlotString("HighD3",Text(HighD(3)-LowD(3)),upperband,Red);
    PlotString("HighD4",Text(HighD(4)-LowD(4)),upperband,Red);
    PlotString("HighD5",Text(HighD(5)-LowD(5)),upperband,Red);


    进行检测的时候发现,所有计算需要的HIGHD LOWD的确已有数据,而且对比日线数据HIGHD()-LOWD()都是正确的,但开始几天的sumRange计算结果不对,从数据齐全开始计算起,第一天sumRange为0,第二天sumRange只计算了前一天的振幅,第三天只计算了前2天的振幅,以此类推,直到过了5天才计算正确,可是我已经试了好几种方法,终于能够跳过前面数据不齐又可能导致计算错误的RANGE_LENGTH+2天。为何还会出错???

     

  • TB技术人员: 我也发现了这个问题,用openD,closeD,highD,lowD计算出来的数据都是前三天的,不知道为什么不能返回当天的值,用openD[1]也是返回三天前的数据,感觉很莫名其妙,用openD[5]

     

  • TB客服: 我也发现了这个问题,用openD,closeD,highD,lowD计算出来的数据都是前三天的,不知道为什么不能返回当天的值,用openD[1]也是返回三天前的数据,感觉很莫名其妙,用openD[5]返回的数据也是3天前的,

    在openD的F1帮助里面是这样说的:
    OpenD
    说明 求N天前的开盘价
    语法 Numeric OpenD(Numeric daysAgo)
    参数 daysAgo 最近N天,0为当天,1为昨天,依次类推。
    备注 该函数计算N天前的开盘价,返回值为浮点数。
    示例 OpenD(3);计算3天前的开盘价。

    我怀疑是不是软件出差错了,示例里面的openD返回值让整个值都默认返回3天前的数据。

     

  • 网友回复: openD,closeD,highD,lowD等应该使用圆括号(),如: OpenD(3)

     

  • 网友回复: help

 

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

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

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

 


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

相关文章

    没有相关内容