龙听期货论坛's Archiver

龙听 发表于 2025-1-16 10:51

鼎元C++量化程式码指标与函数模块系列之【动量指标(Momentum Index,MTM)计算方法及调用方法】

指标使用说明:[url=http://www.qhlt.cn/thread-161632-1-1.html]http://www.qhlt.cn/thread-161632-1-1.html[/url];

C++平台公式程式码:

第一部分:头文件声明变量:[code]
        double Momentum(string period, string inst, int num); //动量指标(Momentum Index,MTM)计算与指标调用
[/code]第二部分:源文件公式区域MTM核心计算公式程式 码[code]
//动量指标(Momentum Index,MTM)计算与指标调用
double test::Momentum(string period, string inst, int num)
{
        double d = 0;
        int r = 0;
        int n = 0;
        map<string, TKVALUE>::reverse_iterator it;
        for (it = mapK[period][inst].rbegin(); it != mapK[period][inst].rend(); it++)
        {
                if (r == 0) n = it->second.dClose;
                r++;
                if (r < num)continue; //跳过NUM个bar
                d = it->second.dClose; //将ref个bar前一个bar的收盘价赋值给d ;
                break;
        }
        return n - d;
}
[/code]第三部分:源文件区域调用方法:[code]
        RsqBar(sPeriod, sInst); //申请数据
        Momentum(sPeriod, sInst, length);

        InsertLog("LENGTH周期前bar收盘价为: " + to_string(Momentum(sPeriod,sInst,length)));
[/code]

页: [1]