-- 作者:fyyafco
-- 发布时间:2013/6/19 13:23:04
-- 求帮助:一个交易系统,测试通过了,但不出信号,问题在哪儿?
//中间变量 INPUT:M(50,5,300,30),N(1.25,0.1,10,0.1),D(20,1,100,1),SS(1,1,100,1); VARIABLE:X:=50; MID : MA(CLOSE,M);//布林中轨 UPPER:=MID + N*STD(CLOSE,M);//布林上轨 LOWER:=MID - N*STD(CLOSE,M);//布林下轨 LAST_UPPER:REF(UPPER,1); LAST_LOWER:REF(LOWER,1); HCD:=REF(HHV(C,D),1);//20周期收盘价高点 LCD:=REF(LLV(C,D),1);//20周期收盘价低点 KCZQS:=ENTERBARS+1,NOAXIS;//开仓至今的周期数 IF HOLDING=0 THEN AA:=50; ELSE IF HOLDING<>O AND KCZQS<40 THEN AA:=51-KCZQS; ELSE IF HOLDING<>O AND KCZQS>=40 THEN AA:=10;
MACC:=MA(CLOSE,AA); LAST_MACC:REF(MACC,1),COLORGREEN,LINETHICK2; LAST_CLOSE:=REF(CLOSE,1);
P_KD:=MAX(OPEN,HCD); P_KK:=MIN(OPEN,LCD); P_DDCC:=MIN(OPEN,LAST_MACC); P_KDCC:=MAX(OPEN,LAST_MACC); //交易条件 KDTJ:=LAST_CLOSE>HCD AND HIGH>LAST_UPPER;//收盘价大于30周期收盘价最高值,且最高价上穿上轨 KKTJ:=LAST_CLOSE<LCD AND LOW<LAST_LOWER;//收盘价小于30周期收盘价最高值,且最低价下穿下轨 DDCCTJ:=LAST_CLOSE<LAST_MACC AND LAST_MACC<LAST_UPPER; //多单出场条件 KDCCTJ:=LAST_CLOSE>LAST_MACC AND LAST_MACC>LAST_LOWER; //空单出场条件
//交易系统 //离场 IF DDCCTJ THEN BEGIN SELL(HOLDING>0,SS,STOPR,P_DDCC); //平多信号 END IF KDCCTJ THEN BEGIN SELLSHORT(HOLDING<0,SS,STOPR,P_KDCC); //平空信号 END
//入场 IF KDTJ THEN BEGIN BUY(HOLDING=0,SS,STOPR,P_KD); //开多信号 END IF KKTJ THEN BEGIN BUYSHORT(HOLDING=0,SS,STOPR,P_KK); //开空信号 END
|