【震蕩+趨勢(shì)混合策略】恒溫器策略
恒溫器策略
策略簡(jiǎn)述
當(dāng)CMI指標(biāo)小于20時(shí),策略處于震蕩模式。
若處于趨買(mǎi)市:
最新價(jià)>max(開(kāi)盤(pán)價(jià)+0.5*10日ART,3日平均低價(jià)),做多。
最新價(jià)>max(開(kāi)盤(pán)價(jià)-0.75*10日ART,3日平均高價(jià)),做空。
若處于趨賣(mài)市:
最新價(jià)>max(開(kāi)盤(pán)價(jià)-0.75*10日ART,3日最低價(jià)),做多。
最新價(jià)>max(開(kāi)盤(pán)價(jià)+0.5*10日ART,3日最高價(jià)),做空。
當(dāng)CMI指標(biāo)大于20時(shí),策略處于趨勢(shì)模式。
趨勢(shì)策略使用 布林帶策略
進(jìn)入趨勢(shì)模式后,有震蕩模式下的持倉(cāng),以開(kāi)倉(cāng)價(jià)+-3個(gè)10日ATR為出場(chǎng)條件。
策略詳述
恒溫器策略以其能夠在震蕩和趨勢(shì)市場(chǎng)中自動(dòng)調(diào)節(jié)交易行為而得名??吹阶詣?dòng)調(diào)節(jié)的字眼,很多人會(huì)覺(jué)得這一定是個(gè)高級(jí)、神秘的策略。但事實(shí)恰恰相反,這是個(gè)簡(jiǎn)單的策略組合,這類(lèi)策略的關(guān)鍵在于將不同市場(chǎng)狀態(tài)下能成功應(yīng)用的策略相結(jié)合。
市場(chǎng)狀態(tài)轉(zhuǎn)換,我們采用CMI指標(biāo)(市場(chǎng)波皺指標(biāo))作為評(píng)判標(biāo)準(zhǔn)。
當(dāng)CMI值小于20,短周期震蕩模式下運(yùn)用的是區(qū)間突破結(jié)合模式識(shí)別策略。,我們將系統(tǒng)歸于震蕩模式。模式識(shí)別依靠關(guān)鍵價(jià)指標(biāo)(關(guān)鍵價(jià)指的是(high+low+close)/3),如果當(dāng)收盤(pán)價(jià)高于昨天的關(guān)鍵價(jià),我們推測(cè)明天的市場(chǎng)是熊市(趨賣(mài)市),反之亦然。但是我們需明白,我們不是神算,不可能預(yù)測(cè)明天的市場(chǎng),所以我們是計(jì)劃以熊市手段去操作,但仍可以做多,只不過(guò)需要走出一定的行情。
當(dāng)CMI值大于20,該策略系統(tǒng)在趨勢(shì)模式下(長(zhǎng)周期)運(yùn)用的是個(gè)類(lèi)似布林通道策略(常規(guī)布林策略此處不做介紹)。值得稱(chēng)道的是,該模型考慮了趨勢(shì)模式下,原有震蕩持倉(cāng)的處理問(wèn)題。因?yàn)檎鹗幠J降某鰣?chǎng)是以3日高低均價(jià)為準(zhǔn)。但是把這個(gè)標(biāo)準(zhǔn)放在趨勢(shì)模式下就不合時(shí)宜了,該策略的方法是以開(kāi)倉(cāng)價(jià)+-3個(gè)10日ATR為出場(chǎng)條件(一個(gè)相對(duì)較長(zhǎng)期的條件)。
代碼
//策略:恒溫器系統(tǒng) //類(lèi)型:中長(zhǎng)期通道突破
//中間變量 input:m(50,5,300,30),N(1.25,0.1,10,0.1),ss(1,1,100,1),k1(0.5,0.1,1,0.1),k2(0.75,0.1,1,0.1); variable:A:=0;//0表示倉(cāng)位是在趨勢(shì)模式下下單 1表示在震蕩模式下下單 MID : MA(CLOSE,M);//布林中軌 UPPER:MID + N*STD(CLOSE,M);//布林上軌 LOWER:MID - N*STD(CLOSE,M);//布林下軌 今開(kāi):=callstock(stklabel,vtopen,6,0); CMI:=abs(close-ref(close,29))/(hhv(high,30)-LLV(L,30))*100;//0-100 取值越大,說(shuō)明趨勢(shì)越強(qiáng),CMI<20震蕩模式,反之為趨勢(shì) 關(guān)鍵價(jià):(high+low+close)/3;//關(guān)鍵價(jià)的計(jì)算,國(guó)外常稱(chēng)作中樞價(jià)格(pivot point) ATR10:=ma(tr,10); 3日均低價(jià):=ma(L,3);
3日均高價(jià):=ma(h,3);
手?jǐn)?shù):=ss;
//交易條件 if C<關(guān)鍵價(jià) then begin 趨買(mǎi)市開(kāi)多平空條件:=C>max(今開(kāi)+k1*ATR10,3日均低價(jià)); 趨買(mǎi)市開(kāi)空平多條件:=C end if c>關(guān)鍵價(jià) then begin 趨賣(mài)市開(kāi)多平空條件:=C>max(今開(kāi)+k2*atr10,3日均低價(jià)); 趨賣(mài)市開(kāi)空平多條件:=C end
趨勢(shì)開(kāi)多條件:=c>upper; 趨勢(shì)開(kāi)空條件:=c 趨勢(shì)平多條件:=c 趨勢(shì)平空條件:=c>mid;
震蕩多單平倉(cāng)條件:=c<=enterprice-3*atr10; 震蕩空單平倉(cāng)條件:=c>=enterprice+3*ATR10;
//交易系統(tǒng) if cmi<20 then begin {震蕩模式} if C<關(guān)鍵價(jià) then begin 趨買(mǎi)市平空:sellshort(趨買(mǎi)市開(kāi)多平空條件 and holding<=0,手?jǐn)?shù),market); 趨買(mǎi)市平多:sell(趨買(mǎi)市開(kāi)空平多條件 and holding>=0,手?jǐn)?shù),market); 趨買(mǎi)市開(kāi)多:buy(趨買(mǎi)市開(kāi)多平空條件 and holding<=0,手?jǐn)?shù),market); 趨買(mǎi)市開(kāi)空:buyshort(趨買(mǎi)市開(kāi)空平多條件 and holding>=0,手?jǐn)?shù),market); A:=1; end if c>關(guān)鍵價(jià) then begin 趨賣(mài)市平空:sellshort(趨賣(mài)市開(kāi)多平空條件 and holding<=0,手?jǐn)?shù),market); 趨賣(mài)市平多:sell(趨賣(mài)市開(kāi)空平多條件 and holding>=0,手?jǐn)?shù),market); 趨賣(mài)市開(kāi)多:buy(趨賣(mài)市開(kāi)多平空條件 and holding<=0,手?jǐn)?shù),market); 趨賣(mài)市開(kāi)空:buyshort(趨賣(mài)市開(kāi)空平多條件 and holding>=0,手?jǐn)?shù),market); a:=1; end ENd
if cmi>=20 then BEGIN {趨勢(shì)模式} if a:=1 then begin //趨勢(shì)模式下 原震蕩模式下 倉(cāng)位處理 震蕩多單平倉(cāng):sell(震蕩多單平倉(cāng)條件 and holding>0,手?jǐn)?shù),market); 震蕩空單平倉(cāng):sellshort(震蕩空單平倉(cāng)條件 and holding<0,手?jǐn)?shù),market); a:=0; end if a:=0 then begin 趨勢(shì)平空:sellshort(趨勢(shì)平空條件 and holding<0,手?jǐn)?shù),market); 趨勢(shì)平多:sell(趨勢(shì)平多條件 and holding>0,手?jǐn)?shù),market); 趨勢(shì)開(kāi)多:buy(趨勢(shì)開(kāi)多條件 and holding<=0,手?jǐn)?shù),market); 趨勢(shì)開(kāi)空:buyshort(趨勢(shì)開(kāi)空條件 and holding>=0,手?jǐn)?shù),market); A:=0; end end //注意先平后開(kāi)原則
注:以上代碼用于金字塔軟件,僅供參考學(xué)習(xí)。
|