MACD指标在没有传入数据时可用以下二种方式初始化:
Indicator HKU_API MACD(int n1, int n2, int n3) {
IndicatorImpPtr p = make_shared();
p->setParam("n1", n1);
p->setParam("n2", n2);
p->setParam("n3", n3);
return Indicator(p);
}
Indicator HKU_API MACD(const IndParam& n1, const IndParam& n2, const IndParam& n3) {
IndicatorImpPtr p = make_shared();
p->setIndParam("n1", n1);
p->setIndParam("n2", n2);
p->setIndParam("n3", n3);
return Indicator(p);
}
但这二种方式的传入的参数保存的位置是不一样的。使用第一种方式初始化,用setContext传入数据计算就会出错,请问是bug还是应用其它方式传入数据?
第二种方式,是用 Indicator 做为 n 参数,不一样的,用着 n 不是固定值的情况
MACD不直接接收 KData 输入,setContext 没用,要 MACD(CLOSE(), ...)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
我是用C++调用的,如果在程序中经常动态调整close()数据,如何将数据传入到macd中好?setcontext是用于什么目的?还请指教。
ind = MACD(CLOSE())
ind.setContext(k)
setContext 是给 CLOSE/OPEN 等使用的,告知使用的 KData,不依赖于 context 的指标其输入都是其他指标。只有少量的CLOSE等需要用 KData 作为输入
谢谢,可以使用了。指标计算的设计原理有没参考说明?我在使用Singal时又遇到了计算问题。
没有,直接描述你的问题就好了
比如,我要回测使用信号SG_CrossGold,如何才能将macd.dea和macd.diff传入,必须要重写一个信号器内部实现计算macd的二条线才行吗?或者像python中示例一样,实现crtSG,传入自定义函数实现macd二条线的计算,我的理解对吗?
抱歉,前几天回头才发现,之前确实需要自定义一个SG。2.0.2版本加了 RESULT 指标,后面可以直接是使用 SG_CrossGold,直接 RESULT(MACD(), 1) 即可
登录 后才可以发表评论