?老師,我想給下面代碼加個(gè)止盈策略,當(dāng)價(jià)格往有利的方向運(yùn)行3倍最初止損區(qū)間時(shí),比如入市點(diǎn)2000多單,當(dāng)時(shí)真實(shí)波動(dòng)幅度為20,止損區(qū)間為60,那么當(dāng)價(jià)格到達(dá)2180時(shí),開始進(jìn)入止盈區(qū)間,當(dāng)盈利為3倍止損區(qū)間時(shí),利潤(rùn)回撤30%止盈,即到達(dá)2180后,止盈點(diǎn)為2180-180*0.3=2126,當(dāng)盈利為4倍止損區(qū)間時(shí),即2240,利潤(rùn)回撤25%止盈,當(dāng)利潤(rùn)大于等于5倍止損區(qū)間時(shí),利潤(rùn)回撤20%止盈。
備注:開倉和離市點(diǎn)都按實(shí)時(shí)價(jià),移動(dòng)止損點(diǎn)的計(jì)算按收盤價(jià)。
? 請(qǐng)問這個(gè)止盈該怎么寫?
TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));//真實(shí)波幅
ATR:=MA(TR,10); //求10個(gè)周期內(nèi)真實(shí)波幅的簡(jiǎn)單移動(dòng)平均
UNIT,NODRAW;
UNIT*ATR,NODRAW;
TC..INTPART((MONEYTOT*0.02/(UNIT*ATR*3)));//根據(jù)權(quán)益的2%計(jì)算下單手?jǐn)?shù)
HH:=HV(H,20);
LL:=LV(L,20);
CROSSUP(C,HH)&&ISLASTBK=0&&ISLASTSK=0,BK(TC);//最新價(jià)超過20周期的最高值,首次買入開倉,手?jǐn)?shù)為TC手
CROSSDOWN(C,LL)&&ISLASTBK=0&&ISLASTSK=0,SK(TC); //最新價(jià)跌破20周期的最低值,首次賣出開倉,手?jǐn)?shù)為TC手
C<=(BKPRICE-3*ATR)&&BKVOL>0,SP(BKVOL);//最新價(jià)小于開倉價(jià)減去3倍的ATR,止損平倉
C>=(SKPRICE+3*ATR)&&SKVOL>0,BP(SKVOL); //最新價(jià)大于開倉價(jià)加上3倍的ATR,止損平倉
CSD:BKPRICE-3*ATR;
CSK:BKPRICE+3*ATR;
DQD:C-3*ATR;
DQK:C+3*ATR;
DD:IF(REF(DQD>CSD),REF(DQD,1),REF(CSD,1));
KK:IF(REF(DQK<CSK),REF(DQK,1),REF(CSK,1));
C<=DD&&BKVOL>0,SP(BKVOL);//最新價(jià)小于開倉價(jià)減去3倍的ATR,止損平倉
C>=KK&&SKVOL>0,BP(SKVOL); //最新價(jià)大于開倉價(jià)加上3倍的ATR,止損平倉TRADE_AGAIN(3);
CHECKSIG(BK,''0,''0,0);
CHECKSIG(SK,''0,''0,0);
CHECKSIG(BP,''0,''0,0);
CHECKSIG(SP,''0,''0,0);
?
?
?來源:程序化99
同一個(gè)sp信號(hào)不能同時(shí)設(shè)置收盤價(jià)與指令價(jià),您設(shè)置指令價(jià)方式立即止損是合理的
?
參考:
TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));//真實(shí)波幅
ATR:=MA(TR,10); //求10個(gè)周期內(nèi)真實(shí)波幅的簡(jiǎn)單移動(dòng)平均
UNIT,NODRAW;
UNIT*ATR,NODRAW;
TC..INTPART((MONEYTOT*0.02/(UNIT*ATR*3)));//根據(jù)權(quán)益的2%計(jì)算下單手?jǐn)?shù)
HH:=HV(H,20);
LL:=LV(L,20);
CROSSUP(C,HH)&&ISLASTBK=0&&ISLASTSK=0,BK(TC);//最新價(jià)超過20周期的最高值,首次買入開倉,手?jǐn)?shù)為TC手
CROSSDOWN(C,LL)&&ISLASTBK=0&&ISLASTSK=0,SK(TC); //最新價(jià)跌破20周期的最低值,首次賣出開倉,手?jǐn)?shù)為TC手
C<=(BKPRICE-3*ATR)&&BKVOL>0,SP(BKVOL);//最新價(jià)小于開倉價(jià)減去3倍的ATR,止損平倉
C>=(SKPRICE+3*ATR)&&SKVOL>0,BP(SKVOL); //最新價(jià)大于開倉價(jià)加上3倍的ATR,止損平倉
CSD:BKPRICE-3*ATR;
CSK:SKPRICE+3*ATR;
DQD:C-3*ATR;
DQK:C+3*ATR;
DD:IF(REF(DQD>CSD,1),REF(DQD,1),REF(CSD,1));
KK:IF(REF(DQK<CSK,1),REF(DQK,1),REF(CSK,1));
//當(dāng)盈利為3倍止損區(qū)間時(shí),利潤(rùn)回撤30%止盈,即到達(dá)2180后,止盈點(diǎn)為2180-180*0.3=2126,
//當(dāng)盈利為4倍止損區(qū)間時(shí),即2240,利潤(rùn)回撤25%止盈,當(dāng)利潤(rùn)大于等于5倍止損區(qū)間時(shí),利潤(rùn)回撤20%止盈。
BKHIGH>=BKPRICE+3*REF(ATR,BARSBK)&&C<=BKHIGH-REF(ATR,BARSBK)*0.3,SP(BKVOL);
BKHIGH>=BKPRICE+4*REF(ATR,BARSBK)&&C<=BKHIGH-REF(ATR,BARSBK)*0.25,SP(BKVOL);
BKHIGH>=BKPRICE+5*REF(ATR,BARSBK)&&C<=BKHIGH-REF(ATR,BARSBK)*0.2,SP(BKVOL);
SKLOW<=SKPRICE-3*REF(ATR,BARSSK)&&C>=SKLOW+REF(ATR,BARSBK)*0.3,SP(BKVOL);
SKLOW<=SKPRICE-4*REF(ATR,BARSSK)&&C>=SKLOW+REF(ATR,BARSBK)*0.25,SP(BKVOL);
SKLOW<=SKPRICE-5*REF(ATR,BARSSK)&&C>=SKLOW+REF(ATR,BARSBK)*0.2,SP(BKVOL);
C<=DD&&BKVOL>0,SP(BKVOL);//最新價(jià)小于開倉價(jià)減去3倍的ATR,止損平倉
C>=KK&&SKVOL>0,BP(SKVOL); //最新價(jià)大于開倉價(jià)加上3倍的ATR,止損平倉TRADE_AGAIN(3);
CHECKSIG(BK,'A',0,'C',0,0);
CHECKSIG(SK,'A',0,'C',0,0);
CHECKSIG(BP,'A',0,'C',0,0);
CHECKSIG(SP,'A',0,'C',0,0);
?
?來源: www.tumamayizhan.com
老師,這個(gè)紅色部分的止盈策略,里面的真實(shí)波動(dòng)幅度是最初的嗎?我的策略是當(dāng)盈利為最初止損區(qū)間的3倍,即入市時(shí)2000,當(dāng)時(shí)真實(shí)波動(dòng)幅度20,那么最初止損區(qū)間就是60,所以到了2180才進(jìn)入止盈區(qū)間。
?
?
老師,剛回測(cè)時(shí)顯示這行函數(shù)REF參數(shù)個(gè)數(shù)非法
?DD:IF(REF(DQD>CSD),REF(DQD,1),REF(CSD,1));
?