
等级: 新手上路
- 注册:
- 2022-6-15
- 曾用名:
|

楼主 |
发表于 2022-6-28 14:06
|
显示全部楼层
老师,我按照范例修改过了,回测的结果仍旧不理想,请问是多仓和空仓的问题吗?
//变量
INPUT:S(12,5,30,3);
INPUT:P(26,20,40,2);
INPUT:M1(9,2,20,2);
DIFF:=EMA(CLOSE,S) - EMA(CLOSE,P);//离差值
DEA:=EMA(DIFF,M1);//离差平均值
MACD:=2*(DIFF-DEA);//指数平滑异同移动平均线
INPUT:N(9,1,100,10);
INPUT:P1(3,2,10,1);
INPUT:P2(3,2,10,1);
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;//未成熟随机值
K:=SMA(RSV,P1,1);//K值
D:=SMA(K,P2,1);//D值
J:=3*K-2*D;//J值
INPUT:M(26,5,100,10);
INPUT:T(2,0.4,10,1);
MID:=MA(CLOSE,M);//布林中轨
UPPER:=MID + T*STD(CLOSE,M);//布林上轨
LOWER:=MID - T*STD(CLOSE,M);//布林下轨
手数:=SS;
INPUT:SS(1,1,10000,1);
//交易条件
平多:=CROSS(0,MACD);//平多条件
平空:=CROSS(MACD,0);//平空条件
开多:=CROSS(MACD,0);//开多条件
开空:=CROSS(0,MACD);//开空条件
多头安全区:=D<K<90;//KDJ多头安全区
空头安全区:=K<D;//KDJ空头安全区
多头状态:=MID<CLOSE<UPPER;//BOLL多头状态
空头状态:=LOWER<CLOSE<MID;//BOLL空头状态
VARIABLE:MAXPROFIT:=0;
//平仓交易系统
IF 空头安全区 AND 空头状态 THEN
SELL(平多,0,LIMIT,C);
IF 多头安全区 THEN
SELLSHORT(平空,0,LIMIT,C);
//开仓交易系统
IF 多头安全区 AND 多头状态 THEN
BEGIN
BUY(开多,1,LIMIT,C);
MAXPROFIT:=0;
END
IF 空头安全区 THEN
BEGIN
BUYSHORT(开空,1,LIMIT,C);
MAXPROFIT:=0;
END
//判断当前持仓状态下的最大盈利
WIN:=0;
WIN2:=0;
IF HOLDING>0 AND ENTERBARS>0 THEN
BEGIN
WIN:=(C-ENTERPRICE)/ENTERPRICE*100;
IF WIN>MAXPROFIT THEN
MAXPROFIT:=WIN;
WIN2:=(MAXPROFIT-WIN)/MAXPROFIT*100;
END
IF HOLDING<0 AND ENTERBARS>0 THEN
BEGIN
WIN:=(ENTERPRICE-C)/ENTERPRICE*100;
IF WIN>MAXPROFIT THEN
MAXPROFIT:=WIN;
WIN2:=(MAXPROFIT-WIN)/MAXPROFIT*100;
END
//止损
SELL(WIN<-2,0,LIMIT,C);
SELLSHORT(WIN<-2,0,LIMIT,C);
//止盈
SELL(WIN2>60 AND OPENPROFIT>0,0,LIMIT,C);
SELLSHORT(WIN2>60 AND OPENPROFIT>0,0,LIMIT,C);
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;
|
-
|