Strategi Gabungan Indikator MACD+MA

Penulis:Sifar, Tarikh: 2018-11-22 19:51:09
Tag:MAMACDMyLanguage

Indikator MA adalah singkatan daripada Bahasa Inggeris ((Moving average) dan dipanggil indikator purata bergerak. Purata bergerak ((MA) mempunyai ciri trend, yang agak stabil, tidak seperti garis K hari yang akan naik dan jatuh. Semakin lama purata bergerak, semakin stabil prestasi. Tidak mudah naik dan turun, anda mesti menunggu kejelasan sebenar trend harga saham. Purata bergerak adalah, dalam analisis akhir, alat penjejakan trend yang memudahkan untuk mengenal pasti sama ada trend telah berakhir atau terbalik dan sama ada trend baru muncul.

Dalam isu ini, kami berkongsi strategi gabungan indeks MACD + MA. Dalam analisis teknikal, gabungan penunjuk sangat biasa. Penunjuk yang berbeza mempunyai titik operasi dan kaedah analisis yang berbeza. Gabungan penunjuk dapat meningkatkan ketepatan isyarat. Strategi adalah untuk membandingkan hubungan antara harga dan MA, dan kemudian mengukur percepatan pergerakan harga oleh indeks MACD untuk menilai keadaan pasaran dan membina strategi perdagangan masa yang mudah.


(*backtest
start: 2018-11-01 00:00:00
end: 2018-11-22 00:00:00
period: 1h
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*)


// MACD calculation
FASTLENGTH:=12;
SLOWLENGTH:=26; 
MACDLENGTH:=9;

// Length of MA
L1:=50;
L2:=120;

// stop loss 止损 5%	
STOPLOSS:=5; 

//MACD
MACDVALUE:=EMA(CLOSE,FASTLENGTH)-EMA(CLOSE,SLOWLENGTH);
AVGMACD:=EMA(MACDVALUE,MACDLENGTH);
MACDDIFF:=MACDVALUE-AVGMACD;

//MA1、MA2
DMA1:=MA(C,L1);
DMA2:=MA(C,L2);
BUYCONDITION:=MACDVALUE>0 && DMA1>DMA2 && MACDDIFF>0 && C>DMA1 && REF(C,1)>REF(DMA1,1);
SELLCONDITION:=MACDVALUE<0 && DMA1<DMA2 && MACDDIFF<0 && C<DMA1 && REF(C,1)<REF(DMA1,1);

// 开仓条件 When to open position
BKVOL=0 AND BUYCONDITION,BK;
SETSIGPRICETYPE(BK,NEW_ORDER);
SKVOL=0 AND SELLCONDITION,SK;
SETSIGPRICETYPE(SK,NEW_ORDER);

// 离场条件 When to close position
BKVOL>0 AND (REF(MACDVALUE,1)<0 OR REF(DMA1,1)<REF(DMA2,1)),SP;
SKVOL>0 AND (REF(MACDVALUE,1)>0 OR REF(DMA1,1)>REF(DMA2,1)),BP;

// 启动止损 Start stop loss
SKVOL>0 AND HIGH>=SKPRICE*(1+STOPLOSS*0.01),BP;
BKVOL>0 AND LOW<=BKPRICE*(1-STOPLOSS*0.01),SP;
AUTOFILTER;

Berkaitan

Lebih lanjut