【趨勢策略】升級版恒溫器策略
? ? ? ? 趨勢策略是最常用的程序化交易策略,但在震蕩行情中,趨勢策略的表現往往不適應。恒溫器策略能夠對震蕩和趨勢行情中自動調節交易行為,有效的彌補了趨勢策略在震蕩行情中的水土不服。本期分享的升級版恒溫器策略,在趨勢行情中,啟用布林帶交易系統;正震蕩行情中,啟用KD交易系統,并加入了止盈止損的交易動作,能夠及時的鎖定收益,并及時止損。
?
?
?
? ? ? ? 一、升級版恒溫器策略交易思路
?
? ? ? ? ? ?1、CMI大于等于20時,執行趨勢模式的開平倉交易
?
? ? ? ? ? ?2、CMI小于20時,執行震蕩模式的開平倉交易
?
? ? ? ? ? ?3、設置止盈止損價位。
?
?
?
? ? ? ?二、金字塔策略源碼
?
? ? ? ? ? ?//該策略適用于圖表程序化交易
?
? ? ? ? ? ?//該策略僅供參考學習,請勿直接用于實盤
?
? ? ? ? ?
?
? ? ? ? ? INPUT:N(50,1,100,1),SS(1,1,100,1),N_TMP(1.2,0.1,10,0.1),N_CMI(30,1,100,1),N_KD(9,1,100,1),M1(3,1,100,1),M2(3,1,100,1),MIND(30,1,100,1),STOPLOSS(3,1,100,1);
?
? ? ? ? ? MAC:=MA(CLOSE,N);
? ? ? ? ? TMP:=STD(CLOSE,N);
? ? ? ? ? TOP:MAC+N_TMP*TMP;
? ? ? ? ? BOTTOM:MAC-N_TMP*TMP;
?
? ? ? ? ? CMI:ABS(CLOSE-REF(CLOSE,N_CMI-1))/(HHV(HIGH,N_CMI)-LLV(LOW,N_CMI))*100;? ?//CMI指標,用于判斷當前是震蕩市,還是趨勢市
?
? ? ? ? ? RSV:=(CLOSE-LLV(LOW,N_KD))/(HHV(HIGH,N_KD)-LLV(LOW,N_KD))*100;
? ? ? ? ? K:=SMA(RSV,M1,1);
? ? ? ? ? D:=SMA(K,M2,1);
?
?
?
? ? ? ? ? 震蕩平空開多條件:=K>D AND D<MIND AND BARPOS>N;
? ? ? ? ? 震蕩平多開空條件:=K<D AND D>100-MIND AND BARPOS>N;
?
? ? ? ? ? 趨勢開多條件:=C>TOP AND BARPOS>N;
? ? ? ? ? 趨勢平多條件:=C<MAC AND BARPOS>N;
? ? ? ? ? 趨勢開空條件:=C<BOTTOM AND BARPOS>N;
? ? ? ? ? 趨勢平空條件:=C>MAC AND BARPOS>N;
?
?
?
? ? ? ? ? IF CMI<20 THEN BEGIN
? ? ? ? ? ? ?IF 震蕩平空開多條件 THEN BEGIN
? ? ? ? ? ? ?SELLSHORT(HOLDING<0,HOLDING,MARKET);
? ? ? ? ? ? ?BUY(HOLDING=0,SS,MARKET);
? ? ? ? ? ? ?END
? ? ? ? ? ? ?IF 震蕩平多開空條件 THEN BEGIN
? ? ? ? ? ? ?SELL(HOLDING>0,HOLDING,MARKET);
? ? ? ? ? ? ?BUYSHORT(HOLDING=0,SS,MARKET);
? ? ? ? ? ? ?END
? ? ? ? ? ? END
?
?
?
? ? ? ? ? IF CMI>=20 THEN BEGIN
? ? ? ? ? ? ?SELL(趨勢平多條件 AND HOLDING>0,HOLDING,MARKET);
? ? ? ? ? ? ?SELLSHORT(趨勢平空條件 AND HOLDING<0,HOLDING,MARKET);
? ? ? ? ? ? ?BUY(趨勢開多條件 AND HOLDING=0,SS,MARKET);
? ? ? ? ? ? ?BUYSHORT(趨勢開空條件 AND HOLDING=0,SS,MARKET);
? ? ? ? ? ? END? ?
?
? ??
?
? ? ? ? ? 震蕩多單止盈:=REF(CMI,ENTERBARS+1)<20 AND C>ENTERPRICE*(1+0.01*STOPLOSS*3) AND K<D;
? ? ? ? ? 震蕩空單止盈:=REF(CMI,ENTERBARS+1)<20 AND C<ENTERPRICE*(1-0.01*STOPLOSS*3) AND K>D;
? ? ? ? ? 震蕩多單止損:=REF(CMI,ENTERBARS+1)<20 AND C>ENTERPRICE*(1-0.01*STOPLOSS*3) AND K<D;
? ? ? ? ? 震蕩空單止損:=REF(CMI,ENTERBARS+1)<20 AND C>ENTERPRICE*(1+0.01*STOPLOSS*3) AND K>D;
?
? ? ? ? ? 趨勢多單止盈:=REF(CMI,ENTERBARS+1)>=20 AND C>ENTERPRICE*(1+0.01*STOPLOSS*3) AND C<MAC;
? ? ? ? ? 趨勢空單止盈:=REF(CMI,ENTERBARS+1)>=20 AND C>ENTERPRICE*(1-0.01*STOPLOSS*3) AND C>MAC;
? ? ? ? ? 趨勢多單止損:=REF(CMI,ENTERBARS+1)>=20 AND C>ENTERPRICE*(1-0.01*STOPLOSS*3) AND C<MAC;
? ? ? ? ? 趨勢空單止損:=REF(CMI,ENTERBARS+1)>=20 AND C>ENTERPRICE*(1+0.01*STOPLOSS*3) AND C>MAC;
?
?
?
? ? ? ? ? S1:SELL(震蕩多單止盈 AND HOLDING>0,HOLDING,MARKET);
? ? ? ? ? S2:SELLSHORT(震蕩空單止盈 AND HOLDING<0,HOLDING,MARKET);
? ? ? ? ? S3:SELL(震蕩多單止損 AND HOLDING>0,HOLDING,MARKET);
? ? ? ? ? S4:SELLSHORT(震蕩空單止損 AND HOLDING<0,HOLDING,MARKET);
? ? ? ? ? S5:SELL(趨勢多單止盈 AND HOLDING>0,HOLDING,MARKET);
? ? ? ? ? S6:SELLSHORT(趨勢空單止盈 AND HOLDING<0,HOLDING,MARKET);
? ? ? ? ? S7:SELL(趨勢多單止損 AND HOLDING>0,HOLDING,MARKET);
? ? ? ? ? S8:SELLSHORT(趨勢空單止損 AND HOLDING<0,HOLDING,MARKET);
?
{別忘了將本網告訴您身邊的朋友,向朋友傳達有用資料,也是一種人情,你朋友會感謝你的。}
?