- 精华
- 0
- 在线时间
- 14 小时
- UID
- 3193
- 积分
- 82
- 帖子
- 12
- 阅读权限
- 30
- 注册时间
- 2008-12-30
- 最后登录
- 2019-3-30
- 精华
- 0
- UID
- 3193
- 积分
- 82
- 帖子
- 12
- 主题
- 6
- 阅读权限
- 30
- 注册时间
- 2008-12-30
- 最后登录
- 2019-3-30
|
回复 #1 alper 的帖子
拿一位老兄的ATR函数修改了一下,解决了我的问题
//------------------------------------------------------------------------
// 简称: MyAvgTrueRange
// 名称: 求ATR
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//------------------------------------------------------------------------
Params
Numeric Length(0);
Vars
Numeric A_;
Numeric B_;
Numeric C_;
NumericSeries TR;
NumericSeries ATR;
Numeric TEM;
Begin
A_=H[1]-L[1];
B_=ABS(C[2]-H[1]);
C_=ABS(C[2]-L[1]);
TEM=MAX(A_,B_);
TR=MAX(TEM,C_);
ATR=AVERAGE(TR,Length);
Return ATR;
End
//------------------------------------------------------------------------
// 编译版本 GS2004.06.12
// 用户版本 2009/06/09 13:38
// 版权所有 dreamsart
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
在交易指令中直接调用MyAvgTrueRange函数,获得的就是当前BAR的前一根BAR的ATR
另外,发现开拓者里自带的AvgTrueRange函数求的值不是标准的ATR啊 ,没有把缺口宽度计算进去哦 |
|