|
测试目标:
验证使用MACD指标过滤之后,结果是否是盈利的。
测试逻辑:
进多仓信号:当出现单阳不破形态,同时MACD指标出现DIFF线在DEA线之上时,收盘价进仓;
出仓信号:第二天收盘前平仓; 测试结果: 测试标的:上证指数 测试初始资金:1000w 开仓资金:800w 测试周期:2000-02-01 到 2020-01-31 盈利率:6.27% 胜率:54.69% 盈亏比:1.08 交易次数:64
测试结论:
基于此测试的结论是:出现单阳不破形态之后,即使在我们的测试结果中显示盈利率是正的,但是过去的权益曲线显然是较为不平滑的。所以如果遇到此形态,可以轻仓或者空仓观望。而且需要注意的是,回测是基于历史数据进行的,并不一定代表未来会出现相同的结果。
测试代码:
//一、定义仓位
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.8/(C*MARGIN*UNIT+FEE));//INTPART(FUND*0.8/(OPEN*UNIT*0.1));//计算开仓手数
//LOTS:=8000000/(C*MARGIN*UNIT+FEE);//计算手数,使每次开仓金额都是800W
//LOTS:=MONEYREAL*0.8/(C*MARGIN*UNIT+FEE);//计算手数,使持仓占权益80%
//二、定义ATR
TR:MAX(MAX((H-L),ABS(REF(C,1)-HIGH)),ABS(REF(C,1)-L));//求最高价减去最低价,一个周期前的收盘价减去最高价的绝对值,一个周期前的收盘价减去最低价的绝对值,这三个值中的最大值
ATR:MA(TR,N);//求N个周期内的TR的简单移动平均
//定义MACD金叉死叉
DIFF : EMA(CLOSE,12) - EMA(CLOSE,26);//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA : EMA(DIFF,9);//DIFF的M个周期指数平滑移动平均
2*(DIFF-DEA),COLORSTICK;//DIFF减DEA的2倍画柱状线
//CROSSUP(DIFF,DEA), BPK(LOTS);//金叉
//CROSSDOWN(DIFF,DEA),SPK(LOTS);//死叉
//三、定义k线实体
k线ST:=ABS(O-C);
//四、定义单阳不破形态
//1.定义前一根k线
DYBP_REFk线IAN:=REF(k线ST,N3)>N1*REF(ATR,N3);// 单阳不破形态的第一根k线的实体,用ATR去描述
DYBP_k线IAN:=k线ST>N2*ATR;
//2.定义后面k线排列的形态
DYBPk线IAN:=REF(ISUP,N3) && LLV(L,N3)<LLV(L,(N3-1)) && LLV(L,N3)<LLV(L,(N3-2)) && LLV(L,N3)<LLV(L,(N3-3))
&& LLV(L,N3)<LLV(L,(N3-4)) && LLV(L,N3)<LLV(L,(N3-5)) && LLV(L,N3)<LLV(L,(N3-6)) && LLV(L,N3)<L;//DYBP_REFk线IAN && DYBP_k线IAN &&
//3.定义单阳不破形态
DYBP:=DYBP_REFk线IAN>DYBP_k线IAN && DYBPk线IAN;//单阳不破形态
DYBP && DIFF>DEA,BK(LOTS);//满足k线形态+MACD金叉,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓
|