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

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

img

Gambaran umum

Strategi ini menggunakan teknik lilin Heikin-Ashi dikombinasikan dengan sinyal crossover rata-rata bergerak dan indikator MACD untuk penyaringan untuk membangun strategi trend-mengikuti. Strategi dapat menangkap tren pasar dalam kerangka waktu yang berbeda, menghasilkan sinyal perdagangan melalui crossover rata-rata bergerak, dan kemudian menyaring sinyal palsu melalui indikator MACD, menunjukkan profitabilitas tinggi dalam backtest.

Logika Strategi

Strategi ini terutama memanfaatkan tiga indikator teknis utama:

  1. Ini memodifikasi harga penutupan untuk membangun shadowless candlestick bar, yang dapat lebih jelas menunjukkan tren harga yang sebenarnya, menyaring kebisingan pasar yang berlebihan.

  2. EMA (Exponential Moving Average). EMA cepat menangkap tren jangka pendek sementara EMA lambat menilai arah tren jangka panjang. Sinyal beli dihasilkan ketika EMA cepat melintasi EMA lambat; Sinyal jual dihasilkan ketika EMA cepat melintasi EMA lambat.

  3. Indikator MACD. Ini menggabungkan EMA cepat dan lambat. Ketika garis MACD berada di atas garis sinyal, itu adalah sinyal bullish; di bawahnya, itu adalah sinyal bearish.

Sinyal perdagangan dari strategi ini berasal dari persilangan emas/mati dari EMA cepat dan lambat. Untuk menyaring sinyal palsu, indikator MACD diperkenalkan untuk penilaian tambahan. Hanya ketika MACD memberikan sinyal yang selaras dengan crossover EMA, sinyal perdagangan akhir akan dipicu, yang sangat mengurangi kemungkinan perdagangan yang salah.

Secara khusus, ketika EMA cepat melintasi di atas EMA lambat (salib emas) dan garis MACD melintasi garis sinyal (sinyal bullish) secara bersamaan, sinyal beli dihasilkan; ketika EMA cepat melintasi di bawah EMA lambat (salib mati) dan garis MACD melintasi di bawah garis sinyal (sinyal bearish) pada saat yang sama, sinyal jual dihasilkan.

Kombinasi crossover rata-rata bergerak dan penyaringan MACD ini dapat secara efektif mengidentifikasi titik infleksi utama di pasar dan menangkap tren harga sesuai.

Keuntungan

Strategi ini memiliki keunggulan berikut:

  1. Teknik Heikin-Ashi menawarkan penilaian tren yang lebih jelas, sementara kekuatan sinyal silang dari dua EMA juga kuat. Keandalan bahkan lebih tinggi setelah mengintegrasikan filter MACD.

  2. Risiko penarikan yang relatif kecil. MACD, yang berfungsi sebagai indikator tambahan, dapat mengurangi risiko stop-loss sampai batas tertentu dan secara efektif mengurangi kerugian likuidasi yang tidak diinginkan.

  3. Periode lilin Heikin-Ashi, EMA cepat / lambat dari sistem rata-rata bergerak, parameter MACD dll semuanya dapat disesuaikan berdasarkan kondisi pasar untuk membuat strategi lebih adaptif.

  4. Menggunakan lilin Heikin-Ashi untuk menunjukkan harga dan dibantu dengan indikator umum untuk penentuan, mudah diprogram, dengan kode yang rapi dan ringkas yang intuitif untuk dipahami.

  5. Efisiensi penggunaan modal yang lebih tinggi. Dengan mengikuti tren, sebagian besar waktu strategi dapat menyelaraskan pergerakan modal dengan arah pasar utama dan menghasilkan pengembalian yang lebih efektif.

Risiko

Strategi ini juga memiliki risiko potensial berikut:

  1. Ketika harga selisih secara signifikan atau berbalik dengan cepat dalam jangka pendek, langkah-langkah stop-loss dapat gagal, menimbulkan kerugian jauh di luar harapan.

  2. Kemungkinan kesalahan penilaian MACD. MACD sebagai indikator tambahan juga dapat membuat panggilan yang salah, sehingga strategi salah menetapkan atau menutup posisi.

  3. Pengaturan parameter yang tidak fleksibel. Kombinasi parameter tetap mungkin tidak dapat beradaptasi dengan pasar yang terus berubah, sehingga kehilangan peluang perdagangan yang baik.

  4. Frekuensi perdagangan yang berpotensi tinggi. Metode yang mengikuti tren dapat menyebabkan perdagangan yang sering, meningkatkan biaya dan kerugian slip.

Untuk mengurangi dan mengurangi risiko di atas, langkah-langkah berikut dapat diadopsi:

  1. Atur titik stop loss untuk membatasi kerugian untuk perdagangan tunggal. Juga, hindari terlalu mengejar tren dan ukuran posisi kontrol.

  2. Sesuaikan parameter MACD untuk mengurangi probabilitas sinyal yang salah.

  3. Membangun mekanisme optimasi parameter. Menggunakan pembelajaran mesin dll untuk menyesuaikan kombinasi parameter secara otomatis untuk adaptivitas yang lebih tinggi.

  4. Meredakan kondisi pemicu sinyal perdagangan dengan tepat untuk mengurangi frekuensi perdagangan, atau menetapkan ambang batas perubahan harga minimum.

Optimalisasi

Potensi besar terletak pada optimalisasi strategi lebih lanjut, termasuk:

  1. Mengoptimalkan durasi candlestick Heikin-Ashi. Uji periode yang lebih lama atau lebih pendek untuk menemukan yang terbaik menunjukkan tren pasar.

  2. Sesuaikan parameter sistem rata-rata bergerak. Modifikasi periode EMA cepat/lambat untuk menemukan set parameter optimal.

  3. Optimasi multi-parameter dari MACD. fine-tune parameter EMA cepat / lambat dan garis sinyal MACD untuk menemukan konfigurasi yang lebih baik.

  4. Memperkuat modul manajemen risiko. Mengembangkan aturan stop-loss/take-profit yang lebih ilmiah, mengintegrasikan ukuran posisi, manajemen modal dll.

  5. Tambahkan indikator tambahan seperti KD, RSI untuk konfirmasi multi-faktor, meningkatkan kualitas sinyal.

  6. Menggunakan teknik pembelajaran mesin. Memanfaatkan jaringan saraf, algoritma genetik dll untuk mengoptimalkan parameter strategi secara real-time untuk adaptivitas yang lebih tinggi.

Dengan kombinasi berulang dari indikator teknis, optimasi parameter terus menerus, modul pengendalian risiko yang lebih kuat, dll., peningkatan kinerja yang signifikan dari strategi dapat diharapkan untuk profitabilitas yang lebih stabil dan efisien.

Kesimpulan

Strategi ini menangkap tren pasar dengan menggabungkan lilin Heikin-Ashi dan crossover rata-rata bergerak, dibantu oleh penyaringan MACD untuk mendeteksi titik balik keandalan tinggi dan sinyal perdagangan. Hasil yang diuji kembali luar biasa, dengan tepi seperti probabilitas kemenangan tinggi, penarikan rendah, tunasi tinggi. Sementara itu, pengendalian risiko juga membutuhkan perhatian terhadap dampak lindung nilai dari pergerakan pasar yang ekstrim. Dengan perbaikan dan pengoptimalan terus-menerus, strategi menunjukkan potensi besar sebagai strategi perdagangan kuantitatif yang sangat efektif.


/*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 banyak