- 精华
- 0
- 在线时间
- 133 小时
- UID
- 115197
- 积分
- 307
- 帖子
- 23
- 阅读权限
- 50
- 注册时间
- 2013-1-28
- 最后登录
- 2018-8-6
- 精华
- 0
- UID
- 115197
- 积分
- 307
- 帖子
- 23
- 主题
- 9
- 阅读权限
- 50
- 注册时间
- 2013-1-28
- 最后登录
- 2018-8-6
|
CMI跨周期函数
Params
Numeric TimeFrame(1440); // 目标时间周期参数,参数说明参见MtBar
Numeric BarsBack(1); // 目标时间周期BAR偏移参数,说明见MtBar函数
Numeric Length(30); // 均线周期
NumericRef oCMI; // 以目标时间周期下的K线数据计算出的移动平均线
Vars
NumericSeries mtBarCnt;
NumericSeries mtClose;
NumericSeries mtHigh;
NumericSeries mtLow;
NumericSeries HighestValue;
NumericSeries LowestValue;
Numeric refCurBar;
Numeric refOpen;
Numeric refHigh;
Numeric refLow;
Numeric refClose;
Numeric refVol;
Numeric refOpenInt;
Numeric Num(0);
Numeric Denom(1);
Numeric i;
Numeric j(0);
Begin
mtBarCnt = MtBar(TimeFrame,BarsBack,refCurBar,refOpen,refHigh,refLow,refClose,refVol,refOpenInt);
mtClose = refClose;
mtHigh = refHigh;
mtLow = refLow;
HighestValue = mtHigh;
LowestValue = mtLow;
For i = 1 to Length - 1
{
j = j + mtBarCnt[j];
If (mtHigh[j] == InvalidNumeric) HighestValue = InvalidNumeric;
Else If ( mtHigh[j] > HighestValue) HighestValue = mtHigh[j];
If (mtLow[j] == InvalidNumeric) LowestValue = InvalidNumeric;
Else If ( mtLow[j] < LowestValue) LowestValue = mtLow[j];
}
Denom = HighestValue - LowestValue;
Num = mtClose[Length-1] - mtClose;
Num = Abs(Num);
oCMI = 0.0;
If(Denom <> 0)
{
oCMI = (Num / Denom) * 100;
}
Return mtBarCnt;
End |
|