一、测试内容说明
1) 测试一条件:MACD金叉,买入;死叉卖出;开平仓的手数直接使用LOTS;
【测试代码】
DIFF : EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);// 短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA : EMA(DIFF,M);// DIFF的M个周期指数平滑移动平均
2*(DIFF-DEA),COLORSTICK;// DIFF减DEA的2倍画柱状线
//仓位计算
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.4/(C*MARGIN*UNIT+FEE));// 计算开仓手数
CROSSUP(DIFF,DEA),BPK(LOTS);//做多信号
CROSSDOWN(DIFF,DEA),SPK(LOTS);//做空信号
【交易明细说明】
2) 测试二条件:MACD金叉,买入;死叉卖出;开平仓的手数使用LOTS、BKVOL、SKVOL去定义的中间变量;
【测试代码】
DIFF : EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);// 短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA : EMA(DIFF,M);// DIFF的M个周期指数平滑移动平均
2*(DIFF-DEA),COLORSTICK;// DIFF减DEA的2倍画柱状线
//仓位计算
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.4/(C*MARGIN*UNIT+FEE));// 计算开仓手数
//手数计算
// 1、设置一个头寸值,头寸是LOTS和BKVOL之间取最大值,或者在LOTS和SKVOL取最大值;
// BKTC:在LOTS和SKVOL之间取最大值;
BKTC : MAX(LOTS, SKVOL);//反手做多的手数
// SKTC:在LOTS和BKVOL之间取最大值;
SKTC : MAX(LOTS, BKVOL);//反手做空的手数
CROSSUP(DIFF,DEA),BPK(BKTC);//做多信号
CROSSDOWN(DIFF,DEA),SPK(SKTC);//做空信号
【交易明细说明】
【测试一、测试二对比】
二、测试小结 1、从测试一的测试报告中可以看出来,指令个数和信号格式是350次,但是交易次数只有59次,很明显是不正常的;从交易明细中可以看出来,平仓手数是和开仓手数是不相等的; 2、我们改变手数计算方法后,测试二报告中的交易次数有175次,同时交易明细中开仓手数和平仓手数都是相等的;因此在后面的模型研究中均可以使用测试二中的手数计算方法。
|