Momentum Crossover Moving Average dan MACD Filter Strategi Lilin Heikin-Ashi

Penulis:ChaoZhang, Tarikh: 2024-01-02 12:18:03
Tag:

img

Ringkasan

Strategi ini menggunakan teknik lilin Heikin-Ashi digabungkan dengan isyarat crossover purata bergerak dan penunjuk MACD untuk penapisan untuk membina strategi trend-mengikuti. Strategi ini boleh menangkap trend pasaran dalam jangka masa yang berbeza, menjana isyarat perdagangan melalui crossover purata bergerak, dan kemudian menapis isyarat palsu melalui penunjuk MACD, menunjukkan keuntungan yang tinggi dalam backtests.

Logika Strategi

Strategi ini terutamanya menggunakan tiga penunjuk teknikal utama:

  1. Heikin-Ashi Candlesticks. Ia mengubah suai harga penutupan untuk membina bar candlestick tanpa bayangan, yang dapat menunjukkan dengan lebih jelas trend harga sebenar, menapis bunyi pasaran yang berlebihan.

  2. EMA (Exponential Moving Average). EMA pantas menangkap trend jangka pendek manakala EMA perlahan menilai arah trend jangka panjang. Isyarat beli dihasilkan apabila EMA pantas melintasi di atas EMA perlahan; Isyarat jual dihasilkan apabila EMA pantas melintasi di bawah EMA perlahan.

  3. Indikator MACD. Ia menggabungkan EMA yang cepat dan perlahan. Apabila garis MACD berada di atas garis isyarat, ia adalah isyarat kenaikan; apabila di bawah, ia adalah isyarat penurunan.

Isyarat perdagangan strategi ini berasal dari silang emas / mati EMA yang cepat dan perlahan. Untuk menapis isyarat palsu, penunjuk MACD diperkenalkan untuk penghakiman tambahan. Hanya apabila MACD memberikan isyarat yang sejajar dengan persilangan EMA isyarat perdagangan akhir akan dicetuskan, yang sangat mengurangkan kebarangkalian perdagangan yang salah.

Khususnya, apabila EMA pantas melintasi di atas EMA perlahan (salib emas) dan garis MACD melintasi garis isyarat (isyarat kenaikan) pada masa yang sama, isyarat beli dihasilkan; apabila EMA pantas melintasi di bawah EMA perlahan (salib mati) dan garis MACD melintasi di bawah garis isyarat (isyarat penurunan) pada masa yang sama, isyarat jual dihasilkan.

Gabungan crossover purata bergerak dan penapisan MACD ini dapat mengenal pasti titik perubahan utama di pasaran dan menangkap trend harga dengan sewajarnya.

Kelebihan

Strategi ini mempunyai kelebihan-kelebihan berikut:

  1. Kemungkinan menangkap isyarat trend meningkat dengan ketara. Teknik Heikin-Ashi menawarkan penilaian trend yang lebih jelas, sementara kekuatan isyarat silang dari dua EMA juga kuat. Kebolehpercayaan lebih tinggi selepas mengintegrasikan penapis MACD.

  2. Risiko pengeluaran yang agak kecil. MACD, yang berfungsi sebagai penunjuk tambahan, dapat mengurangkan risiko stop-loss hingga tahap tertentu dan mengurangkan kerugian pembubaran yang tidak diingini.

  3. Periode lilin Heikin-Ashi, EMA pantas / perlahan sistem purata bergerak, parameter MACD dan lain-lain semua boleh diselaraskan berdasarkan keadaan pasaran untuk menjadikan strategi lebih adaptif.

  4. Penggunaan lilin Heikin-Ashi untuk menandakan harga dan dibantu dengan penunjuk biasa untuk penentuan, ia mudah diprogram, dengan kod yang kemas dan ringkas yang mudah difahami.

  5. Kecekapan penggunaan modal yang lebih tinggi. Dengan mengikuti trend, kebanyakan masa strategi dapat menyelaraskan pergerakan modal dengan arah pasaran utama dan menjana pulangan dengan lebih berkesan.

Risiko

Strategi ini juga mempunyai risiko berpotensi berikut:

  1. Jika harga berlainan secara ketara atau berbalik dengan cepat dalam jangka pendek, langkah-langkah berhenti kerugian mungkin gagal, menyebabkan kerugian jauh melebihi jangkaan.

  2. Kemungkinan salah menilai MACD. MACD sebagai penunjuk tambahan juga boleh membuat panggilan yang salah, mengakibatkan strategi yang salah menetapkan atau menutup kedudukan.

  3. Tetapan parameter yang tidak fleksibel. Gabungan parameter tetap mungkin tidak menyesuaikan diri dengan pasaran yang sentiasa berubah, sehingga kehilangan peluang perdagangan yang baik.

  4. Frekuensi perdagangan yang berpotensi tinggi. Kaedah yang mengikuti trend boleh menyebabkan perdagangan yang kerap, meningkatkan kos dan kerugian seluncur.

Untuk mengurangkan dan mengurangkan risiko di atas, langkah-langkah berikut boleh diambil:

  1. Tetapkan titik stop-loss untuk mengehadkan kerugian untuk perdagangan tunggal.

  2. Sesuaikan parameter MACD untuk mengurangkan kebarangkalian isyarat yang salah.

  3. Membina mekanisme pengoptimuman parameter. Menggunakan pembelajaran mesin dan lain-lain untuk menyesuaikan kombinasi parameter secara automatik untuk daya adaptasi yang lebih tinggi.

  4. Melancarkan keadaan pencetus untuk isyarat dagangan untuk mengurangkan kekerapan dagangan, atau menetapkan ambang perubahan harga minimum.

Pengoptimuman

Potensi besar terletak pada pengoptimuman lagi strategi, termasuk:

  1. Mengoptimumkan tempoh lilin Heikin-Ashi. Uji tempoh yang lebih lama atau lebih pendek untuk mencari yang terbaik menunjukkan trend pasaran.

  2. Sesuaikan parameter sistem purata bergerak. Mengubah tempoh EMA cepat / perlahan untuk menemui set parameter optimum.

  3. Multi-parameter pengoptimuman MACD. fine-tune parameter EMA pantas / perlahan dan garis isyarat MACD untuk mencari konfigurasi yang lebih baik.

  4. Memperkukuhkan modul pengurusan risiko. Mencipta peraturan berhenti rugi / mengambil keuntungan yang lebih saintifik, mengintegrasikan saiz kedudukan, pengurusan modal dll.

  5. Masukkan lebih banyak penunjuk tambahan. Tambah penunjuk lain seperti KD, RSI untuk pengesahan pelbagai faktor, meningkatkan kualiti isyarat.

  6. Menggunakan teknik pembelajaran mesin. Memanfaatkan rangkaian saraf, algoritma genetik dan lain-lain untuk mengoptimumkan parameter strategi dalam masa nyata untuk kebolehadaptasi yang lebih tinggi.

Dengan kombinasi pengulangan penunjuk teknikal, pengoptimuman parameter berterusan, modul kawalan risiko yang lebih kuat, dll., peningkatan prestasi yang ketara dari strategi dapat dijangka untuk keuntungan yang lebih stabil dan cekap.

Kesimpulan

Strategi ini menangkap trend pasaran dengan menggabungkan lilin Heikin-Ashi dan crossover purata bergerak, dibantu oleh penapisan MACD untuk mengesan titik perubahan dan isyarat perdagangan yang sangat boleh dipercayai. Hasil yang diuji semula luar biasa, dengan kelebihan seperti kebarangkalian kemenangan yang tinggi, pengeluaran yang rendah, tunasi yang tinggi. Sementara itu, kawalan risiko juga memerlukan perhatian terhadap kesan lindung nilai dari pergerakan pasaran yang melampau. Dengan peningkatan dan pengoptimuman berterusan, strategi menunjukkan potensi besar sebagai strategi perdagangan kuantitatif yang sangat berkesan.


/*backtest
start: 2022-12-26 00:00:00
end: 2024-01-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Heikin Ashi Strategy  V1 by nachobuey

strategy("Heikin Ashi Strategy  V2",shorttitle="HAS V2",overlay=true)
res = input(title="Heikin Ashi Candle Time Frame",  defval="15")
hshift = input(0,title="Heikin Ashi Candle Time Frame Shift")
//res1 = input(title="Heikin Ashi EMA Time Frame", type=resolution, defval="180")
res1   = input(title="Time frame (Minutes. Not lower than chart)",defval="300")
mhshift = input(0,title="Heikin Ashi EMA Time Frame Shift")
fama = input(16,"Heikin Ashi EMA Period")
test = input(0,"Heikin Ashi EMA Shift")
sloma = input(21,"Slow EMA Period")
slomas = input(0,"Slow EMA Shift")
macdf = input(false,title="With MACD filter")
res2 = input(title="MACD Time Frame",  defval="60")
macds = input(1,title="MACD Shift")




//Heikin Ashi Open/Close Price
ha_t = heikinashi(syminfo.tickerid)
ha_open = request.security(ha_t, res, open[hshift])
ha_close = request.security(ha_t, res, close[hshift])
mha_close = request.security(ha_t, res1, close[mhshift])

//macd
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
macdl = request.security(ha_t,res2,macdLine[macds])
macdsl= request.security(ha_t,res2,signalLine[macds])

//Moving Average
fma = ema(mha_close[test],fama)
sma = ema(ha_close[slomas],sloma)
plot(fma,title="MA",color=lime,linewidth=2,style=line)
plot(sma,title="SMA",color=red,linewidth=2,style=line)


//Strategy
golong =  crossover(fma,sma) and (macdl > macdsl or macdf == false )
goshort =   crossunder(fma,sma) and (macdl < macdsl or macdf == false )


strategy.entry("Long",strategy.long,when = golong)
strategy.entry("Short",strategy.short,when = goshort)

plotchar(golong,char="L", color=green)
plotchar(goshort,char="S", color=red)

alertcondition(golong, "HAS GO LONG", "OPEN LONG")
alertcondition(goshort, "HAS GO SHORT", "OPEN SHORT")



Lebih lanjut