
Strategi ini adalah sistem perdagangan kuantitatif yang mengintegrasikan indikator teknis berlapis-lapis untuk menangkap peluang tren berkelanjutan di pasar dengan menggabungkan penilaian tren jangka panjang dengan pengesahan dinamika jangka pendek. Strategi ini dengan cerdik mengintegrasikan tiga alat analisis teknis yang kuat: EMA 200 sebagai filter tren jangka panjang, Hull Moving Average (HMA) untuk memberikan petunjuk pergerakan jangka menengah, dan MACD Crossover sebagai pemicu sinyal masuk yang akurat.
Logika inti dari strategi ini didasarkan pada prinsip konfirmasi tren pada beberapa kerangka waktu, yang membentuk keputusan perdagangan melalui pemfilteran tiga lapisan indikator:
Mencari arah tren jangka panjang: EMA 200 sebagai filter tren utama, membagi lingkungan pasar overbought. Harga di atas EMA 200 dianggap sebagai lingkungan tren naik, cocok untuk overbought; Harga di bawah EMA 200 dianggap sebagai lingkungan tren turun, cocok untuk overbought.
Identifikasi momentum tengah:Hull Moving Average ((HMA) menggunakan parameter 55 periode, dengan metode perhitungan yang unikta.wma(2 * ta.wma(close, hullPeriod / 2) - ta.wma(close, hullPeriod), math.round(math.sqrt(hullPeriod)))Ini memberikan respons tren dan panduan arah yang lebih cepat daripada rata-rata bergerak tradisional.
Trigger sinyal singkat: MACD indicator ((parameter 12, 26, 9) dengan garpu emas dan garpu mati sebagai kondisi pemicu transaksi akhir, memastikan masuk ke dalam permainan saat perubahan momentum.
Kondisi pembelian didefinisikan sebagai:
Terjual dengan kondisi yang sama:
Strategi ini juga mencakup pengaturan stop loss yang tetap: 10 poin keuntungan, 4 poin kerugian, yang mencerminkan pemikiran kontrol risiko yang ketat.
Sistem Filter Konfirmasi Multi-Layer: Dengan meminta konfirmasi sinkronisasi dari tiga indikator yang berbeda, secara signifikan mengurangi sinyal palsu dan kebisingan, meningkatkan kualitas transaksi.buySignal = priceAboveEMA and hullConditionBuy and macdCrossUpIni adalah salah satu contoh dari mekanisme multi-konfirmasi yang ketat.
Kombinasi tren dan momentumStrategi ini berhasil menggabungkan keunggulan dari trend tracking (EMA 200) dan analisis momentum (Hull dan MACD) untuk mengidentifikasi arah tren besar dan menangkap momen masuk terbaik dalam tren.
Optimalkan kecepatan respons: Penggunaan Hull Moving Average memecahkan masalah keterlambatan Moving Average tradisional, memberikan respon yang lebih cepat terhadap perubahan tren, dan dalam kodehull = ta.wma(2 * ta.wma(close, hullPeriod / 2) - ta.wma(close, hullPeriod), math.round(math.sqrt(hullPeriod)))Perhitungan yang rumit ini bertujuan untuk mencapai tujuan tersebut.
Kerangka Manajemen Risiko yang JelasParameter Stop Loss yang dibangun:tpPoints = 10DanslPoints = 4.0) Memaksakan manajemen risiko yang disiplin, sehingga strategi dapat secara efektif mengendalikan penarikan balik sambil mengejar keuntungan.
Sinyal perdagangan visualStrategi disetujui:plotshapeFungsi ini memungkinkan tampilan visual yang intuitif dari sinyal perdagangan, meningkatkan pengalaman pengguna dan kemudahan operasi, membantu pedagang untuk cepat mengidentifikasi peluang perdagangan potensial.
Masalah dengan sinyal lagMultiple confirmation mechanism, meskipun meningkatkan reliabilitas, dapat menyebabkan sinyal masuk yang relatif terlambat dan dapat kehilangan sebagian keuntungan di pasar yang berubah dengan cepat. Terutama EMA 200 sebagai indikator jangka panjang, yang keterbelakangan lebih jelas.
Limitasi parameter stop loss tetapParameter stop loss dan stop loss yang ditetapkan dalam kode tidak mampu beradaptasi dengan volatilitas pasar dan mungkin terlalu besar atau terlalu kecil dalam lingkungan fluktuasi yang berbeda, sehingga tidak dapat mengoptimalkan rasio pengembalian risiko.
Performa Bursa BergoyangDalam situasi pasar yang bergejolak atau tidak ada tren yang jelas, strategi dapat menghasilkan sinyal palsu yang sering terjadi, yang menyebabkan kerugian berkelanjutan. Ini adalah kelemahan umum dari semua strategi pelacakan tren.
Indikator sifat keterbelakanganTiga indikator yang digunakan dalam strategi (EMA, Hull, MACD) pada dasarnya adalah indikator yang tertinggal, mereka didasarkan pada perhitungan harga historis, tidak dapat memprediksi pergerakan harga di masa depan, dan mungkin tidak bereaksi tepat waktu jika tren tiba-tiba berbalik.
Parameter SensitivitasEfektivitas strategi sangat tergantung pada parameter indikator yang dipilih, seperti EMA 200 cycle, Hull 55 cycle, dan MACD ((12, 26, 9) parameter. Pasar dan kerangka waktu yang berbeda mungkin memerlukan pengaturan parameter yang berbeda.
atrPeriod = 14
atrMultiplierTP = 2.5
atrMultiplierSL = 1.0
atrValue = ta.atr(atrPeriod)
strategy.exit("Dynamic TP/SL", from_entry="BUY", profit=atrValue * atrMultiplierTP, loss=atrValue * atrMultiplierSL)
Tambahkan filter lingkungan pasar: Tambahkan filter volatilitas atau kondisi pasar untuk menghindari perdagangan di pasar yang bergoyang. Anda dapat mempertimbangkan untuk menambahkan indikator ADX untuk menilai kekuatan tren, atau menggunakan bandwidth Brin untuk menilai kondisi pasar yang bergoyang.
Optimasi dan adaptasi parameter: Untuk melakukan pengujian optimasi pada Hull Moving Average dan EMA Periode untuk menemukan kombinasi parameter yang optimal. Lebih lanjut, mekanisme penyesuaian parameter yang dapat disesuaikan dapat dicapai, menyesuaikan parameter secara dinamis sesuai dengan kondisi pasar yang berbeda.
Menambahkan konfirmasi pengirimanAnalisis volume diperkenalkan untuk memverifikasi kekuatan sinyal, memastikan bahwa transaksi dilakukan dengan keterlibatan pasar yang memadai, dan meningkatkan kualitas sinyal.
Mengoptimalkan manajemen posisiPergeseran dari metode perdagangan dengan jumlah tetap ke manajemen posisi berdasarkan persentase risiko, membuat celah risiko setiap perdagangan lebih seimbang. Kode dapat diubah untuk menentukan jumlah perdagangan berdasarkan jarak stop loss dan rasio risiko akun, bukan nilai tetap.
Strategi pelacakan tren gabungan dinamika berurutan waktu ganda dengan mengintegrasikan EMA 200, Hull Moving Average, dan MACD, membangun sistem konfirmasi perdagangan multi-lapisan yang kuat. Keunggulan inti dari strategi ini adalah mekanisme penyaringan ganda yang ketat, yang memastikan bahwa perdagangan dilakukan hanya dalam lingkungan tren probabilitas tinggi, yang secara efektif mengurangi risiko sinyal palsu.
Namun, pengguna perlu memperhatikan masalah keterlambatan yang mungkin ada dalam strategi dan keterbatasan kinerja di pasar yang bergolak. Ketahanan dan fleksibilitas strategi dapat ditingkatkan lebih lanjut dengan memperkenalkan mekanisme stop-loss adaptif, filter lingkungan pasar, dan manajemen posisi yang dioptimalkan.
/*backtest
start: 2024-06-03 00:00:00
end: 2025-06-02 00:00:00
period: 5h
basePeriod: 5h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Buy/Sell Strategy with EMA 200, Hull, MACD", overlay=true)
// === EMA 200 ===
ema200 = ta.ema(close, 200)
plot(ema200, color=color.orange, title="EMA 200")
// === Hull Suite ===
hullPeriod = 55
hull = ta.wma(2 * ta.wma(close, hullPeriod / 2) - ta.wma(close, hullPeriod), math.round(math.sqrt(hullPeriod)))
hullPrev = hull[1]
hullColor = hull > hullPrev ? color.lime : color.red
plot(hull, color=hullColor, title="Hull Suite")
// === MACD ===
macdLine = ta.ema(close, 12) - ta.ema(close, 26)
signalLine = ta.ema(macdLine, 9)
macdCrossUp = ta.crossover(macdLine, signalLine)
macdCrossDown = ta.crossunder(macdLine, signalLine)
// === Buy Condition ===
priceAboveEMA = close > ema200
hullConditionBuy = close > hull or hull > hullPrev
buySignal = priceAboveEMA and hullConditionBuy and macdCrossUp
// === Sell Condition ===
priceBelowEMA = close < ema200
hullConditionSell = close < hull or hull < hullPrev
sellSignal = priceBelowEMA and hullConditionSell and macdCrossDown
// === Execute Trades ===
if buySignal
strategy.entry("BUY", strategy.long)
if sellSignal
strategy.entry("SELL", strategy.short)
// === Optional TP/SL in points (adjust as needed) ===
tpPoints = 10
slPoints = 4.0
strategy.exit("TP/SL BUY", from_entry="BUY", profit=tpPoints, loss=slPoints)
strategy.exit("TP/SL SELL", from_entry="SELL", profit=tpPoints, loss=slPoints)
// === Plot Buy/Sell Labels ===
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)