- 精华
- 20
- 在线时间
- 2981 小时
- UID
- 4
- 积分
- 22709
- 帖子
- 4802
- 阅读权限
- 255
- 注册时间
- 2007-7-20
- 最后登录
- 2024-1-15
- 精华
- 20
- UID
- 4
- 积分
- 22709
- 帖子
- 4802
- 主题
- 64
- 阅读权限
- 255
- 注册时间
- 2007-7-20
- 最后登录
- 2024-1-15
|
你这个问题是因为第一个Bar的MyClose有问题啦,Summation(Abs(close-close[1]),10);这个值是0,然后除0就导致后面都错了
修改后代码:- Vars
- NumericSeries EMA;
- NumericSeries Xaveragetest;
- NumericSeries myclose;
- NumericSeries averagetest;
- Begin
- EMA=XAverage(close,10);
- Commentary("EMA="+Text(EMA)); // 跑出来正常,表明Xaverage()函数在序列变量较为简单时正常
- If(CurrentBar==0)
- MyClose = Close;
- else
- myclose=max(Highest(close,10)-Lowest(close,10),Abs(close-close[10]))/Summation(Abs(close-close[1]),10);
- Commentary("myclose="+Text(myclose)); // 跑出来正常,表明Xaverage()函数在序列变量较为简单时正常
- Xaveragetest=XAverage(myclose,10);
- Commentary("Xaveragetest="+Text(Xaveragetest)); // 跑出来无值,表明Xaverage()在序列变量算法较为复杂时出现BUG
- averagetest=Average(myclose,10);
- Commentary("averagetest="+Text(averagetest)); // 跑出来正常,说明即便序列变量算法复杂,但Average()函数正常
- end
复制代码 |
|