不要拿后台策略的信号和图表中的信号对比,没有对比意义。两者本身就是两种不同的机制。涉及到数量量,运行机制,以及函数等方面的影响,尤其是策略中存在ema这类对数据敏感的函数。你对后台策略的信号有怀疑的地方,直接使用debugfile跟踪输出自己的信号。
DIFF:EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:EMA(DIFF,9);
MACD1:2*(DIFF-DEA);
macd00:stkindi('','macd.macd1',0,6);
macd01:stkindi('','macd.macd1',0,6,-1);
macd02:stkindi('','macd.macd1',0,6,-2);
diff00y:stkindi('','macd.diff',0,8);
diff01y:stkindi('','macd.diff',0,8,-1);
tj1:macd00>macd01 and last(macd01<macd02,5,0);
if tj1 and DIFF00y>diff01y and tbuyholding(0)=0 THEN begin
tbuy(1,10000/close,mkt);
end
if MACD1<ref(macd1,1) and tbuyholding(1)>0 then BEGIN
tsell(1,0,mkt);
end
以上公式分别在60分钟线,2小时线,日线周期上进行回测,得到的数据完全一致,有点不理解,买入条件一样(引用的日线),但卖出条件macd1是随公式运行周期变化的,怎么能一样的呢?
怎么可能一样,没办法。
你macd1公式在不同周期的值的计算不能一样。你自己看下参与计算的因子也能理解。
另外ema数据递归算法,机制同周期上,k线数量不同其结果也会不同。