计算平均振幅,数据起始的数天计算不对,该如何处理 - 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
如果以上指标公式不适用于您常用的行情软件
或者您想改编成选股公式,以便快速选出某种形态个股的话,
- 上一篇:[转贴]漫谈交易模型
- 下一篇:没有了!
相关文章
-
没有相关内容