测试二【下降三法改变k线数量测试】
【测试逻辑】
A. 测试的买入条件:出现下降三法形态,以收盘价买入;
B. 测试的卖出条件:买入后第二天,以收盘价卖出;
【测试代码】【N2=0.5】【k线数量为4】
//定义仓位
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的简单移动平均
//定义k线实体、影线长度
k线ST:=ABS(O-C);
YXCD:=HIGH-LOW;//影线长度
k线ST>N2*YXCD;
YXCD>N2*ATR;
//定义下降三法形态
//1.定义第一根大k线
XJSFREF_YIN_N5:=REF(k线ST,3)>REF(YXCD,3)*N2 && REF(YXCD,3)>N2*REF(ATR,3);
//2. 定义当前大k线
XJSFYIN:=k线ST>YXCD*N2 && YXCD>N2*ATR;
//3. 定义下降三法的5根k线的排列形态
XJSFk线IAN:= REF(ISDOWN,3) && REF(C,3)<REF(C,2) && REF(C,3)<REF(C,1) && ISDOWN && C<REF(C,3) && O<REF(C,1);
//4. 定义下降三法形态
XJSF:=XJSFREF_YIN_N5 && XJSFYIN && XJSFk线IAN;
//执行交易
XJSF,BK(LOTS);//满足k线形态,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓
【测试代码】【N2=0.5】【k线数量为6】
//定义仓位
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的简单移动平均
//定义k线实体、影线长度
k线ST:=ABS(O-C);
YXCD:=HIGH-LOW;//影线长度
k线ST>N2*YXCD;
YXCD>N2*ATR;
//定义下降三法形态
//1.定义第一根大k线
XJSFREF_YIN_N5:=REF(k线ST,5)>REF(YXCD,5)*N2 && REF(YXCD,5)>N2*REF(ATR,5);
//2. 定义当前大k线
XJSFYIN:=k线ST>YXCD*N2 && YXCD>N2*ATR;
//3. 定义下降三法的5根k线的排列形态
XJSFk线IAN:= REF(ISDOWN,5) && REF(C,5)<REF(C,4) && REF(C,5)<REF(C,3) && REF(C,5)<REF(C,2) && REF(C,5)<REF(C,1) && ISDOWN && C<REF(C,5) && O<REF(C,1);
//4. 定义下降三法形态
XJSF:=XJSFREF_YIN_N5 && XJSFYIN && XJSFk线IAN;
//执行交易
XJSF,BK(LOTS);//满足k线形态,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓
【测试代码】【N2=0.5】【N5=4,k线数量为7】
//定义仓位
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的简单移动平均
//定义k线实体、影线长度
k线ST:=ABS(O-C);
YXCD:=HIGH-LOW;//影线长度
k线ST>N2*YXCD;
YXCD>N2*ATR;
//定义下降三法形态
//1.定义第一根大k线
XJSFREF_YIN_N5:=REF(k线ST,6)>REF(YXCD,6)*N2 && REF(YXCD,6)>N2*REF(ATR,6);
//2. 定义当前大k线
XJSFYIN:=k线ST>YXCD*N2 && YXCD>N2*ATR;
//3. 定义下降三法的5根k线的排列形态
XJSFk线IAN:= REF(ISDOWN,6) && REF(C,6)<REF(C,5) && REF(C,6)<REF(C,4) && REF(C,6)<REF(C,3) && REF(C,6)<REF(C,2) && REF(C,6)<REF(C,1) && ISDOWN && C<REF(C,6) && O<REF(C,1);
//4. 定义下降三法形态
XJSF:=XJSFREF_YIN_N5 && XJSFYIN && XJSFk线IAN;
//执行交易
XJSF,BK(LOTS);//满足k线形态,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓
【测试代码】【N2=0.5】【N5=4,k线数量为8】
//定义仓位
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的简单移动平均
//定义k线实体、影线长度
k线ST:=ABS(O-C);
YXCD:=HIGH-LOW;//影线长度
k线ST>N2*YXCD;
YXCD>N2*ATR;
//定义下降三法形态
//1.定义第一根大k线
XJSFREF_YIN_N5:=REF(k线ST,7)>REF(YXCD,7)*N2 && REF(YXCD,7)>N2*REF(ATR,7);
//2. 定义当前大k线
XJSFYIN:=k线ST>YXCD*N2 && YXCD>N2*ATR;
//3. 定义下降三法的5根k线的排列形态
XJSFk线IAN:= REF(ISDOWN,7) && REF(C,7)<REF(C,6) && REF(C,7)<REF(C,5) && REF(C,7)<REF(C,4) && REF(C,7)<REF(C,3) && REF(C,7)<REF(C,2) && REF(C,7)<REF(C,1) && ISDOWN && C<REF(C,7) && O<REF(C,1);
//4. 定义下降三法形态
XJSF:=XJSFREF_YIN_N5 && XJSFYIN && XJSFk线IAN;
//执行交易
XJSF,BK(LOTS);//满足k线形态,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓
|