- 精华
- 0
- 在线时间
- 347 小时
- UID
- 81930
- 积分
- 151
- 帖子
- 72
- 阅读权限
- 40
- 注册时间
- 2011-11-24
- 最后登录
- 2018-12-5
- 精华
- 0
- UID
- 81930
- 积分
- 151
- 帖子
- 72
- 主题
- 8
- 阅读权限
- 40
- 注册时间
- 2011-11-24
- 最后登录
- 2018-12-5
|
本帖最后由 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天。为何还会出错??? |
|