测试四【和MACD指标组合】
【测试逻辑】
A. 测试的买入条件:出现阳包阴形态时,且MACD指标金叉,以收盘价买入; B. 测试的卖出条件:买入后第二天,以收盘价卖出;
【测试代码】【N1,N2】=【1,0.5】
//一、定义仓位
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.8/(C*MARGIN*UNIT+FEE));//INTPART(FUND*0.8/(OPEN*UNIT*0.1));//计算开仓手数
//定义ATR TR:MAX(MAX((H-L),ABS(REF(C,1)-HIGH)),ABS(REF(C,1)-L));//算出(当日最高-当日最低)、(当日最高-昨日收盘)的绝对值、(昨日收盘-当日最低)的绝对值,再求这3个值中的最大值 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倍画柱状线
//定义k线长度
k线CD := ABS(H - L);
//定义十字星 K 线
k线ST : ABS(O - C);//k线实体长度
收益XCD := H - MAX(O, C);//上影线长度
XYXCD := MIN(O, C) - L;//下影线长度
上证XST := k线ST < ATR*0.1;//十字星的实体
上证X := 上证XST AND 收益XCD>0 AND XYXCD>0;//十字星定义
//定义阳包阴形态
//1.定义前一根中k线
REF_YIN := REF(k线CD, 1) > N2*REF(ATR, 1) AND REF(NOT(上证X), 1)=1;
//2. 定义当前大k线
YANG := k线CD > N1*ATR;
//3. 定义当前大k线包住前一根中k线
YANG_BAO_YIN := REF(ISDOWN, 1) && ISUP && C>REF(O, 1) && O<REF(C, 1);
//4. 定义阳包阴形态
YBYIN := REF_YIN && YANG && YANG_BAO_YIN;
//执行交易
YBYIN && DIFF>DEA,BK(LOTS);//阳包阴形态+MACD指标金叉状态,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓
|