
Strategi ini mengidentifikasi perubahan tren potensial melalui persilangan rata-rata bergerak indeks yang cepat dan lambat (EMA), dan menggunakan posisi dukungan dan resistensi sebagai kondisi penyaringan tambahan untuk meningkatkan keakuratan sinyal perdagangan. Mekanisme konfirmasi ganda ini secara efektif mengurangi produksi sinyal palsu dan membantu pedagang melakukan perdagangan dalam struktur pasar yang menguntungkan. Inti dari strategi ini adalah melakukan perdagangan beli hanya ketika harga mendekati posisi dukungan dan melakukan perdagangan jual hanya ketika harga mendekati posisi resistensi.
Prinsip inti dari strategi ini didasarkan pada kombinasi dua indikator teknis utama:
Sinyal silang EMAStrategi ini menggunakan indeks moving average dari dua periode yang berbeda, dengan asumsi EMA cepat 10 periode dan EMA lambat 30 periode. Ketika EMA cepat dari bawah melewati EMA lambat, menghasilkan sinyal beli; Ketika EMA cepat dari atas melewati EMA lambat, menghasilkan sinyal jual.
Filter Resistensi DukunganStrategi: Menggunakan 50 siklus ((customizable) periode mundur untuk menentukan support dan resistance, harga minimum dan harga tertinggi dalam periode penggunaan masing-masing. Sinyal beli hanya dikonfirmasi saat harga mendekati support ((dalam kisaran 5% dari support); Sinyal jual hanya dikonfirmasi saat harga mendekati resistance ((dalam kisaran 5% dari resistance)).
Dari analisis kode, kita dapat melihat bahwa logika pelaksanaan kebijakan adalah sebagai berikut:
买入条件 = 快速EMA上穿慢速EMA AND 价格接近支撑位
卖出条件 = 快速EMA下穿慢速EMA AND 价格接近阻力位
Untuk menghindari pengulangan perdagangan, strategi juga mempertahankan variabel status perdagangan saat ini (inLong dan inShort) untuk memastikan bahwa posisi tidak akan dibuka lagi jika ada posisi yang telah dibuka. Setiap kali sinyal perdagangan dipicu, sistem akan menandai label beli atau jual yang sesuai di grafik dan menggunakan panah untuk menunjukkan titik masuk, sehingga pedagang dapat memahami secara intuitif sinyal strategi.
Mekanisme konfirmasi gandaDengan menggabungkan EMA crossing dan level resistance support, strategi ini secara signifikan mengurangi sinyal palsu yang mungkin dihasilkan hanya dengan mengandalkan EMA crossing, meningkatkan keandalan dan akurasi sinyal perdagangan.
Perdagangan saat iniDesain strategi memastikan bahwa arah perdagangan selalu konsisten dengan tren utama, sinyal beli mengkonfirmasi tren naik di dekat titik dukungan, sinyal jual mengkonfirmasi tren turun di dekat titik perlawanan, menghindari risiko perdagangan berlawanan.
Peningkatan manajemen risikoDengan melakukan perdagangan pada tingkat harga kunci, strategi ini memberikan posisi stop loss dan profit yang lebih jelas bagi pedagang, yang membantu mengatur rasio risiko-pengembalian yang lebih masuk akal.
Sinyal perdagangan yang jelas terlihatStrategi: Menampilkan sinyal jual beli dan harga masuk dengan jelas pada grafik, memungkinkan pedagang untuk mengidentifikasi peluang perdagangan dengan cepat, mengurangi subjektivitas keputusan perdagangan.
Kustomisasi TinggiHal ini memungkinkan pedagang untuk menyesuaikan siklus EMA dan periode retracement resistensi dukungan sesuai dengan pasar dan kerangka waktu yang berbeda, sehingga strategi lebih adaptif.
Integrasi manajemen danaStrategi: Menggunakan persentase dana akun secara default untuk manajemen posisi, ini adalah metode manajemen dana yang konservatif dan profesional yang membantu mengendalikan risiko setiap perdagangan.
Risiko keterlambatan: Indikator EMA pada dasarnya tertunda, yang dapat menyebabkan waktu masuk sedikit lebih lambat dari titik ideal, terutama di pasar yang sangat berfluktuasi, yang dapat melewatkan titik balik penting. Solusi adalah mempertimbangkan untuk menambahkan indikator yang lebih sensitif atau mengurangi siklus EMA yang cepat.
Transaksi yang sering terjadi di bawah marketEMA dapat menghasilkan beberapa kali crossover ketika harga melakukan crossover, dan bahkan jika ada filter resistensi dukungan, hal itu dapat menyebabkan overtrading. Disarankan untuk menunda penggunaan strategi ini di pasar yang jelas berbalik, atau menambahkan kondisi filter tingkat fluktuasi tambahan.
Identifikasi resistansi dukungan tidak akurat: Cukup menggunakan harga tertinggi dan terendah untuk menentukan level resistensi dukungan mungkin tidak cukup akurat, terutama di pasar dengan fluktuasi yang tidak biasa. Penggunaan algoritma identifikasi resistensi dukungan yang lebih kompleks dapat dipertimbangkan, seperti pemisahan, area permintaan dan penawaran, atau area pertemuan harga.
Pembatasan untuk rentang persentase tetapStrategi menggunakan kisaran 5% yang tetap untuk menilai apakah harga mendekati level resistensi dukungan, yang mungkin tidak cukup fleksibel di pasar dengan tingkat fluktuasi yang berbeda. Solusinya adalah dengan memparameterkan kisaran ini dan menyesuaikan dengan dinamika fluktuasi pasar.
Kurangnya pengendalian kerugianStrategi saat ini tidak memiliki logika stop loss yang jelas, yang dapat menyebabkan kerugian yang lebih besar jika pasar tiba-tiba berbalik. Disarankan untuk menerapkan mekanisme stop loss otomatis, seperti stop loss berdasarkan ATR atau stop loss pada posisi struktural utama.
Parameter EMA dinamisStrategi saat ini menggunakan siklus EMA yang tetap, Anda dapat mempertimbangkan untuk menyesuaikan parameter EMA berdasarkan dinamika volatilitas pasar, misalnya menggunakan siklus yang lebih pendek di pasar yang rendah dan siklus yang lebih panjang di pasar yang tinggi, untuk menyesuaikan dengan kondisi pasar yang berbeda.
Identifikasi Resistensi Dukungan Tingkat TinggiMetode identifikasi resistensi level dukungan dapat ditingkatkan, misalnya dengan menggunakan teori pemisahan, konfirmasi resistensi dukungan multi-periode, atau penilaian resistensi dukungan yang digabungkan dengan kuantitatif, untuk mendapatkan tingkat harga kunci yang lebih akurat.
Filter intensitas tren meningkatIntroduksi indikator kekuatan tren seperti ADX (Indeks Arah Rata-rata), melakukan perdagangan hanya ketika tren cukup kuat, dan menghindari perdagangan yang sering terjadi pada tren lemah atau pasar konsolidasi.
Adaptasi fluktuasiAdaptasi: Mengubah rentang penilaian “dekat dengan level resistensi dukungan” secara dinamis berdasarkan ATR, memperluas rentang di pasar yang berfluktuasi tinggi, mempersempit rentang di pasar yang berfluktuasi rendah, membuat strategi lebih adaptif.
Memperbaiki Logika KeluarStrategi saat ini berfokus pada kondisi masuk, dengan tambahan logika keluar berdasarkan target profit, stop loss, atau sinyal reversal, untuk membentuk sistem perdagangan yang lengkap.
Tambahkan waktu penyaringanPertimbangan: Mengingat karakteristik musiman dan waktu pasar, Anda dapat menambahkan filter perdagangan untuk periode waktu tertentu, menghindari periode perdagangan yang tidak efisien atau berisiko tinggi.
Konfirmasi multi-frame waktuHal ini akan meningkatkan tingkat keberhasilan perdagangan, dengan memperkenalkan penilaian tren pada kerangka waktu yang lebih tinggi, memastikan bahwa arah perdagangan konsisten dengan tren pada siklus yang lebih besar.
Strategi perdagangan EMA yang dinamis menangkap tren dan mengkonfirmasi level resistensi dengan menggabungkan sinyal silang EMA klasik dengan konfirmasi level resistensi dukungan, menciptakan sistem perdagangan yang mengikuti tren dan fokus pada tingkat harga kunci. Mekanisme konfirmasi ganda ini secara efektif memfilter banyak sinyal palsu potensial, meningkatkan akurasi dan keandalan perdagangan.
Keunggulan inti dari strategi ini adalah penghormatannya terhadap struktur pasar dan hanya melakukan perdagangan ketika harga mendekati titik dukungan atau resistensi penting, yang tidak hanya meningkatkan kualitas titik masuk, tetapi juga memberikan titik referensi yang jelas untuk manajemen risiko. Sinyal perdagangan visual membuat strategi ini sederhana untuk digunakan dan intuitif, cocok untuk semua tingkat pedagang.
Namun, strategi ini juga memiliki masalah potensial seperti keterlambatan, overtrading, dan akurasi identifikasi resistensi dukungan. Optimasi strategi dapat ditingkatkan lebih lanjut dengan memperkenalkan penyesuaian parameter dinamis, identifikasi resistensi dukungan tingkat lanjut, penyaringan intensitas tren, dan logika keluar yang baik.
Secara keseluruhan, ini adalah strategi pelacakan tren yang memiliki dasar yang kuat dan logika yang jelas, yang memberi para pedagang kerangka kerja yang dapat diandalkan dan diperluas berdasarkan gaya perdagangan dan karakteristik pasar individu.
/*backtest
start: 2024-08-19 00:00:00
end: 2025-08-18 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_OKX","currency":"BTC_USDT","balance":5000}]
*/
//@version=5
strategy("EMA Crossover + Support/Resistance Filter Optimized", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// ==== INPUT ====
ema_fast_len = input.int(10, "EMA Fast Length")
ema_slow_len = input.int(30, "EMA Slow Length")
sr_lookback = input.int(50, "Support/Resistance Lookback")
// ==== EMA CALCULATION ====
ema_fast = ta.ema(close, ema_fast_len)
ema_slow = ta.ema(close, ema_slow_len)
// ==== SUPPORT / RESISTANCE DETECTION ====
highestHigh = ta.highest(high, sr_lookback)
lowestLow = ta.lowest(low, sr_lookback)
support = lowestLow
resistance = highestHigh
// ==== CONDITIONS ====
bull_cross = ta.crossover(ema_fast, ema_slow)
bear_cross = ta.crossunder(ema_fast, ema_slow)
// Price near support/resistance (5% range)
near_support = close <= support * 1.05
near_resistance = close >= resistance * 0.95
// ==== ENTRY SIGNALS ====
buy_signal = bull_cross and near_support
sell_signal = bear_cross and near_resistance
// ==== TRACK OPEN POSITIONS ====
var bool inLong = false
var bool inShort = false
if buy_signal and not inLong
strategy.entry("Buy", strategy.long)
inLong := true
inShort := false
label.new(bar_index, low, "BUY", style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)
if sell_signal and not inShort
strategy.entry("Sell", strategy.short)
inShort := true
inLong := false
label.new(bar_index, high, "SELL", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
// ==== PLOT EMAs ====
plot(ema_fast, color=color.orange, title="EMA Fast")
plot(ema_slow, color=color.blue, title="EMA Slow")
// ==== PLOT SUPPORT / RESISTANCE ====
plot(support, color=color.green, style=plot.style_linebr, linewidth=1, title="Support")
plot(resistance, color=color.red, style=plot.style_linebr, linewidth=1, title="Resistance")
// ==== PLOT SHAPES ONLY WHEN ENTERING POSITION ====
plotshape(buy_signal and not inLong[1], title="Buy Arrow", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.tiny)
plotshape(sell_signal and not inShort[1], title="Sell Arrow", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)