
Ringkasan
Strategi konfirmasi tren MACD multi-garis rata-rata adalah sistem perdagangan tren yang menggabungkan sistem garis rata-rata, harga regresi dan indikator MACD. Ide inti dari strategi ini adalah mencari peluang perdagangan di dekat harga yang kembali ke garis rata-rata jangka panjang (rata-rata 200⁄250), dan menggunakan indikator MACD sebagai sinyal konfirmasi masuk. Strategi ini juga menggunakan banyak garis rata-rata tersembunyi sebagai kriteria penyaringan tambahan, serta pengaturan stop loss dan pengembalian risiko tetap yang berbasis ATR, untuk membentuk sistem perdagangan yang lengkap.
Prinsip Strategi
Strategi ini didasarkan pada prinsip-prinsip inti berikut:
- Pengertian tren: Menggunakan posisi relatif dari garis rata-rata 20 dan garis rata-rata 250 untuk menentukan tren keseluruhan pasar. Ketika garis rata-rata 20 berada di atas garis rata-rata 250, pasar dianggap sedang dalam tren naik; Ketika garis rata-rata 20 berada di bawah garis rata-rata 250, pasar dianggap sedang dalam tren turun.
- Harga Regression: Strategi hanya mencari peluang masuk ketika harga kembali ke rata-rata jangka panjang (rata-rata 250 hari), berdasarkan teori regresi rata-rata bahwa “harga akhirnya akan kembali ke rata-rata”.
- Kondisi masuk: Trigger masuk melalui MACD crossover, dengan kombinasi posisi filter linear.
- Hidden Average Line Filtering: Strategi ini menggunakan tiga tambahan “hidden averages” (rata-rata 2, 100 dan 300 hari) untuk menciptakan jendela masuk, yang mengharuskan harga berada di antara rata-rata tertentu.
- Manajemen risiko: Menggunakan stop loss dinamis berbasis ATR, default 5 kali nilai ATR, dan dengan predeterminasi RR (default 1.5) secara otomatis menghitung target keuntungan.
Syarat masuk:
- Garis 20 berada di atas garis 250 (konfirmasi tren naik)
- Garis rata-rata 2 hari berada di atas garis rata-rata 300 hari dan garis rata-rata 2 hari berada di bawah garis rata-rata 100 hari ((konfirmasi harga kembali area)
- Garis MACD melewati garis sinyal ((konfirmasi perubahan momentum)
Syarat untuk masuk dengan kepala kosong:
- 20 berada di bawah 250 (konfirmasi tren turun)
- Garis rata-rata 2 hari berada di bawah garis rata-rata 300 hari dan garis rata-rata 2 hari berada di atas garis rata-rata 100 hari ((konfirmasi area harga kembali)
- MACD di bawah garis melewati garis sinyal ((konfirmasi perubahan momentum)
Keunggulan Strategis
- Trend Following digabungkan dengan Retracement: Strategi ini menghormati arah tren jangka menengah dan panjang (dengan 20⁄250 pertimbangan rata-rata) dan dapat menangkap titik masuk yang lebih baik saat harga retracement, mengurangi risiko mengejar tinggi atau terbalik.
- Area masuk yang tepat: Penyaringan kombinasi dari beberapa garis rata-rata menciptakan jendela masuk yang relatif tepat dan mengurangi sinyal yang salah.
- Manajemen risiko dinamis: Pengaturan stop loss berbasis ATR memungkinkan strategi untuk secara otomatis menyesuaikan ambang risiko sesuai dengan volatilitas pasar, mengatur stop loss yang lebih longgar di pasar yang bergejolak tinggi, dan pengaturan stop loss yang lebih ketat di pasar yang bergejolak rendah.
- Tujuan keuntungan yang sistematis: Menghindari penilaian subjektif dengan memprediksi risiko-pengembalian yang lebih tinggi daripada harga target yang dihitung secara otomatis.
- Mekanisme pemfilteran sinyal: cross-validasi multi-kondisi ((posisi rata-rata + MACD cross) mengurangi kemungkinan sinyal palsu.
- Bantuan visual: Strategi ini memungkinkan pedagang untuk secara intuitif mengidentifikasi peluang masuk melalui penandaan warna latar belakang saat memenuhi persyaratan masuk.
Risiko Strategis
- Rata-rata ketertinggalan: Rata-rata pada dasarnya adalah indikator ketertinggalan, yang dalam pasar yang berubah dengan cepat mungkin tidak dapat bereaksi tepat waktu terhadap perubahan harga, menyebabkan keterlambatan sinyal masuk dan keluar. Solusi: Anda dapat mempertimbangkan untuk menyesuaikan parameter rata-rata, misalnya dengan EMA1 yang lebih pendek atau menggunakan rata-rata yang lebih berat seperti Hull.
- Kompleksitas kondisi menyebabkan terjadinya kekurangan peluang perdagangan: Tumpuknya beberapa persyaratan masuk dapat menyebabkan sinyal perdagangan yang sebenarnya relatif langka, terutama di pasar yang bergejolak. Solusi: Anda dapat mengoptimalkan persyaratan masuk sesuai dengan kondisi pasar yang berbeda, atau menambahkan logika masuk tambahan.
- Keterbatasan dari RRR tetap: RRR tetap yang dibuat sebelumnya mungkin tidak cocok untuk semua kondisi pasar, mungkin menghasilkan keuntungan prematur ketika tren kuat, dan mungkin menyebabkan harga target sulit dicapai di pasar yang bergoyang. Solusi: Anda dapat mempertimbangkan untuk menyesuaikan RRR secara dinamis, atau menerapkan strategi keuntungan batch.
- Sensitif terhadap perubahan parameter: Strategi menggunakan beberapa parameter rata-rata dan MACD, optimasi berlebihan dapat menyebabkan risiko over-fitting. Solusi: melakukan pengujian stabilitas untuk memastikan kinerja strategi tetap stabil ketika parameter berubah sedikit.
- Kurangnya filter lingkungan pasar: Strategi tidak mengidentifikasi mekanisme lingkungan pasar secara keseluruhan (seperti kekuatan tren, rentang fluktuasi, dll), yang dapat menghasilkan sinyal dalam kondisi pasar yang tidak sesuai. Solusi: Tambahkan filter lingkungan pasar, seperti indikator ADX untuk menilai kekuatan tren, atau kontrol penurunan nilai fluktuasi.
Arah optimasi strategi
- Rasio risiko-pengembalian yang disesuaikan secara dinamis: Rasio risiko-pengembalian dapat disesuaikan secara otomatis sesuai dengan volatilitas pasar atau kekuatan tren, misalnya menggunakan rasio risiko-pengembalian yang lebih tinggi di pasar tren yang kuat dan menggunakan rasio risiko-pengembalian yang lebih rendah di pasar yang bergolak. Ini dapat lebih beradaptasi dengan berbagai kondisi pasar dan meningkatkan fleksibilitas strategi.
- Menambahkan filter lingkungan pasar: memperkenalkan indikator tambahan seperti ADX (indikator tren rata-rata) untuk menilai kekuatan tren, melakukan perdagangan hanya ketika tren jelas. Juga dapat menilai lingkungan berfluktuasi berdasarkan VIX atau rentang ATR, untuk menghindari perdagangan di pasar yang berfluktuasi berlebihan atau tidak cukup.
- Strategi keuntungan batch: Strategi keuntungan batch dapat diterapkan, misalnya, sebagian dari posisi yang kosong pada saat mencapai 0.5R, 1R dan tujuan akhir, sehingga dapat mengunci sebagian dari keuntungan, tetapi dapat membiarkan sebagian dari posisi terus memperoleh potensi keuntungan.
- Perbaikan sistem rata-rata: Anda dapat mencoba menggunakan rata-rata adaptif seperti KAMA (Kafman Adaptive Moving Average) atau rata-rata Hull sebagai pengganti standar EMA, mengurangi keterlambatan rata-rata dan meningkatkan respons terhadap perubahan harga.
- Konfirmasi lalu lintas terintegrasi: Menambahkan kondisi konfirmasi lalu lintas pada saat sinyal masuk dihasilkan, seperti meminta peningkatan lalu lintas saat MACD bersilang, meningkatkan keandalan sinyal.
- Tambahkan filter waktu: Anda dapat menambahkan filter waktu untuk menghindari perdagangan pada saat-saat yang lebih berfluktuasi atau kurang likuid seperti satu jam sebelum pasar dibuka atau ditutup.
- Mekanisme Stop Loss Optimisasi: Dapat diterapkan tracking stop loss, bukan stop loss tetap, terutama setelah keuntungan mencapai tingkat tertentu, sehingga dapat memaksimalkan perlindungan yang sudah menguntungkan.
Meringkaskan
Strategi pengesahan tren MACD adalah sistem perdagangan komprehensif yang menggabungkan beberapa metode analisis teknis, yang memiliki keunggulan utama dalam menggabungkan penilaian tren, teori harga regresi, konfirmasi dinamika dan manajemen risiko sistematis. Strategi ini mengidentifikasi arah tren keseluruhan melalui sistem rata-rata, mencari tempat masuk dengan peluang tinggi melalui mekanisme yang mendekati harga kembali ke garis rata-rata jangka panjang, dan menggunakan MACD sebagai sinyal pengesahan dinamika untuk mengurangi sinyal palsu.
Strategi ini sangat cocok untuk pasar trending jangka menengah dan panjang, yang mampu menangkap peluang untuk terus berlanjut ke arah tren setelah harga kembali dalam lingkungan tren yang kuat. Namun, strategi ini juga memiliki risiko potensial seperti keterlambatan rata-rata, peluang perdagangan yang jarang, dan perlu dioptimalkan melalui penyaringan lingkungan pasar, manajemen risiko dinamis, dan sebagainya.
Strategi ini diharapkan dapat meningkatkan stabilitas dan fleksibilitas lebih lanjut menjadi sistem perdagangan yang lebih komprehensif dan efektif dengan menambahkan mekanisme penyaringan lingkungan pasar, penyesuaian tingkat risiko-pengembalian secara dinamis, dan perbaikan sistem kesetaraan. Strategi ini, yang menggabungkan beberapa indikator teknis dan memiliki mekanisme manajemen risiko yang lengkap, memberikan kerangka perdagangan yang layak dipertimbangkan bagi investor yang mencari perdagangan sistematis.
Kode Sumber Strategi
/*backtest
start: 2025-01-01 00:00:00
end: 2025-03-27 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Price Near 200 EMA", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === User Inputs ===
ema1Length = input(20, title="EMA 1 Length") // Main EMA (Trend)
ema2Length = input(250, title="EMA 2 Length") // Long-term EMA
macdFastLength = input(12, title="MACD Fast Length")
macdSlowLength = input(26, title="MACD Slow Length")
macdSignalLength = input(9, title="MACD Signal Length")
rrRatio = input.float(1.5, title="Risk to Reward Ratio", minval=1, step=0.1)
atrMultiplier = input.float(5, title="ATR Multiplier for SL", minval=1, step=0.1) // Default to 5x ATR
atrLength = input(14, title="ATR Length") // User-defined ATR length
// === Hidden EMA Lengths (Hardcoded) ===
ema3Length = 2 // Fast EMA (Hidden)
ema4Length = 100 // Medium EMA (Hidden)
ema5Length = 300 // Long EMA (Hidden)
// === EMA Calculations ===
ema1 = ta.ema(close, ema1Length) // 20 EMA
ema2 = ta.ema(close, ema2Length) // 250 EMA
ema3 = ta.ema(close, ema3Length) // 2 EMA (Hidden)
ema4 = ta.ema(close, ema4Length) // 100 EMA (Hidden)
ema5 = ta.ema(close, ema5Length) // 300 EMA (Hidden)
// === MACD Calculation ===
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalLength)
macdBullish = ta.crossover(macdLine, signalLine)
macdBearish = ta.crossunder(macdLine, signalLine)
// === ATR for Dynamic Stop Loss ===
atrValue = ta.atr(atrLength)
// === Long Conditions ===
bullishCondition1 = ema1 > ema2
bullishCondition2 = ema3 > ema5 and ema3 < ema4
bullishEntry = bullishCondition1 and bullishCondition2 and macdBullish
// === Short Conditions ===
bearishCondition1 = ema1 < ema2
bearishCondition2 = ema3 < ema5 and ema3 > ema4
bearishEntry = bearishCondition1 and bearishCondition2 and macdBearish
// === Calculate Stop Loss and Target Using ATR ===
longStopLoss = close - atrValue * atrMultiplier
longTargetPrice = close + (close - longStopLoss) * rrRatio
shortStopLoss = close + atrValue * atrMultiplier
shortTargetPrice = close - (shortStopLoss - close) * rrRatio
// === Entry and Exit Logic ===
if bullishEntry
strategy.entry("Buy", strategy.long)
strategy.exit("TP Long", "Buy", limit=longTargetPrice, stop=longStopLoss, comment="SL/TP Long")
if bearishEntry
strategy.entry("Sell", strategy.short)
strategy.exit("TP Short", "Sell", limit=shortTargetPrice, stop=shortStopLoss, comment="SL/TP Short")
// === Plotting Only Visible EMAs ===
plot(ema1, title="EMA 1", color=color.blue)
plot(ema2, title="EMA 2", color=color.red)
// === Background Highlight for Entries ===
bgcolor(bullishEntry ? color.new(color.green, 90) : na, title="Bullish Background")
bgcolor(bearishEntry ? color.new(color.red, 90) : na, title="Bearish Background")