- 精华
- 0
- 在线时间
- 169 小时
- UID
- 231361
- 积分
- 90
- 帖子
- 64
- 阅读权限
- 30
- 注册时间
- 2016-4-1
- 最后登录
- 2017-11-11
- 精华
- 0
- UID
- 231361
- 积分
- 90
- 帖子
- 64
- 主题
- 17
- 阅读权限
- 30
- 注册时间
- 2016-4-1
- 最后登录
- 2017-11-11
|
本帖最后由 noego345 于 2017-9-19 14:25 编辑
写了一个Cmo指标,测试基本正确,供参考:
//------------------------------------------------------------------------
// 简称: MtCMO
// 名称: MtCMO
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//------------------------------------------------------------------------
Params
Numeric TimeFrame(5); // 目标时间周期参数,参数说明参见MtBar
Numeric BarsBack(1); // 目标时间周期BAR偏移参数,说明见MtBar函数
Numeric Length(20); // 均线周期
NumericRef oCMO; // 以目标时间周期下的K线数据计算出的移动平均线
Vars
NumericSeries mtBarCnt;
NumericSeries mtClose;
NumericSeries CloseUp;
NumericSeries CloseDown;
Numeric refCurBar;
Numeric refOpen;
Numeric refHigh;
Numeric refLow;
Numeric refClose;
Numeric refVol;
Numeric refOpenInt;
Numeric SumValue(0);
Numeric i;
Numeric j(0);
Numeric SumCloseUp;
Numeric SumCloseDown;
Begin
If(CurrentBar == 0)
{
oCMO= 0;
}
Else
{
mtBarCnt = MtBar(TimeFrame,BarsBack,refCurBar,refOpen,refHigh,refLow,refClose,refVol,refOpenInt);
mtClose = refClose;
If(mtClose > mtClose[mtBarCnt])
{
CloseUp=mtClose - mtClose[mtBarCnt];
CloseDown=0;
}
If(mtClose < mtClose[mtBarCnt])
{
CloseUp=0;
CloseDown=mtClose[mtBarCnt] - mtClose;
}
If(mtClose == mtClose[mtBarCnt])
{
CloseUp=0;
CloseDown=0;
}
SumCloseUp = MtSummation(CloseUp,mtBarCnt,Length);
SumCloseDown = MtSummation(CloseDown,mtBarCnt,Length);
If(SumCloseUp + SumCloseDown <> 0)
oCMO =( SumCloseUp - SumCloseDown)/(SumCloseUp + SumCloseDown)*100;
}
Return mtBarCnt;
End
//------------------------------------------------------------------------
// 编译版本 GS2015.12.25
// 用户版本 2017/09/19 09:40:58
// 版权所有 noego345
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------ |
|