
Strategi ini adalah sistem perdagangan kuantitatif yang didasarkan pada persilangan rata-rata dengan konfirmasi tren, dengan sinyal silang dari rata-rata bergerak indeks 12 periode pendek dan 26 periode panjang (EMA), yang dikombinasikan dengan filter arah rata-rata (ADX) dan konfirmasi volume perdagangan, untuk menangkap perubahan tren dalam jangka waktu 5 menit. Strategi ini bertujuan untuk meningkatkan keberhasilan perdagangan dan efisiensi pemanfaatan dana, terutama dengan mengidentifikasi tren kuat dan memfilter sinyal palsu di pasar yang bergolak.
Logika inti dari strategi ini didasarkan pada kombinasi dari beberapa indikator teknis utama:
Sistem perpotongan rata: Menggunakan 12 siklus EMA sebagai garis cepat, 26 siklus EMA sebagai garis lambat. Ketika garis cepat melewati garis lambat, sinyal beli terbentuk; Ketika garis cepat melewati garis lambat, sinyal jual terbentuk.
Filter tren ADX: Memperkenalkan indikator ADX 14 periode (Indeks Kecenderungan Rata-rata) sebagai alat konfirmasi kekuatan tren. Strategi tersebut mengharuskan nilai ADX lebih besar dari 25, memastikan perdagangan hanya di pasar tren yang jelas, dan secara efektif menghindari sinyal palsu di pasar yang bergoyang di antara zona.
Aturan masuk dan keluar yang tepat:
Perhitungan ADX khususStrategi menggunakan metode khusus untuk menghitung ADX, termasuk gerakan arah ((DM), amplitudo nyata ((TR) dan pemrosesan yang halus dari berbagai indikator, untuk memastikan akurasi dan sensitivitas indikator.
Dengan analisis kode yang mendalam, strategi ini memiliki keuntungan yang jelas sebagai berikut:
Mekanisme penyaringan trenPerkenalan indikator ADX secara signifikan mengurangi sinyal palsu di pasar yang bergoyang, memastikan bahwa perdagangan hanya dilakukan dalam kondisi tren yang jelas, dan meningkatkan tingkat kemenangan secara signifikan.
Manajemen risiko yang fleksibelStrategi ini memiliki 2 stop loss tetap dan 3 stop loss setup. Dengan stop loss yang keras, Anda dapat mengontrol risiko Anda sendiri dan meningkatkan keamanan dana Anda.
Mekanisme multiple confirmation: Dengan pengesahan ganda ADX dengan penyeberangan rata-rata, meningkatkan keandalan sinyal dan mengurangi kemungkinan kesalahan penilaian.
Tanda transaksi visualStrategi memberikan indikasi visual yang jelas, termasuk tanda grafis untuk sinyal jual beli, latar belakang yang terang, dan tanda label untuk membantu pedagang mengidentifikasi dan memverifikasi sinyal dengan cepat.
Integrasi fitur peringatanFitur: Fungsi peringatan sinyal perdagangan built-in, memberikan peringatan real-time, mengurangi risiko kehilangan peluang perdagangan.
Parameter yang dapat disesuaikan: Semua parameter kunci dapat disesuaikan dengan kondisi pasar dan preferensi pribadi, termasuk siklus EMA, nilai ADX, stop loss, stop loss ratio, dan sebagainya, untuk meningkatkan fleksibilitas strategi.
Meskipun strategi ini dirancang dengan baik, ada risiko potensial berikut:
Risiko terbalik dengan cepatSolusi: Pertimbangkan untuk menaikkan nilai ADX atau menghentikan perdagangan selama periode volatilitas tinggi.
Tren Menguras RisikoPenarikan mungkin terjadi di akhir tren, sehingga ruang keuntungan terbatas. Solusi: melakukan konfirmasi kedua dalam kombinasi dengan indikator momentum lainnya atau level Fibonacci retracement.
Parameter Sensitivitas: Pilihan parameter EMA dan ADX memiliki dampak yang signifikan terhadap kinerja strategi. Solusi: Optimalkan parameter melalui retrospeksi historis untuk menemukan kombinasi parameter yang paling sesuai dengan kondisi pasar tertentu.
Slider dan execution delayPerdagangan di bawah jangka waktu 5 menit dapat mengalami slippage dan penundaan eksekusi. Solusi: Pertimbangkan untuk menambahkan konfirmasi harga tambahan atau menggunakan tiket harga batas sebagai pengganti tiket harga pasar.
Paparan Risiko SistemikSolusi: menerapkan aturan manajemen dana yang lebih ketat, seperti membatasi risiko per transaksi dalam 1% dari total dana.
Berdasarkan analisis kode, strategi ini dapat dioptimalkan dari beberapa arah:
Dinamika ADX: Mengubah ADX Threshold yang tetap menjadi Threshold yang dinamis berdasarkan volatilitas pasar, menyesuaikan standar penyaringan secara otomatis dalam lingkungan pasar yang berbeda, meningkatkan fleksibilitas. Ini karena dalam lingkungan fluktuasi yang berbeda, threshold ADX yang sama mungkin terlalu ketat atau terlalu longgar.
Membuat filter volume transaksi: Meningkatkan kondisi konfirmasi volume transaksi berdasarkan sinyal yang ada, mengharuskan volume transaksi pada saat sinyal dipicu lebih tinggi dari rata-rata akhir-akhir ini, mengurangi lebih lanjut sinyal perdagangan berkualitas rendah. Volume transaksi yang tinggi biasanya mewakili konsensus pasar yang lebih kuat.
Optimalkan strategi penanggulangan: Menambahkan mekanisme stop dinamis untuk perdagangan multihead, seperti stop bergerak berdasarkan ATR atau harga target, untuk menyeimbangkan potensi keuntungan dari perdagangan multihead. Strategi saat ini hanya menetapkan stop tetap untuk head kosong.
Integrasi Filter WaktuTambahkan filter waktu perdagangan untuk menghindari periode likuiditas rendah dan waktu pengumuman pasar utama, mengurangi dampak dari kondisi pasar yang tidak menguntungkan.
Konfirmasi multi-frame waktuPerhitungan arah tren dalam kerangka waktu yang lebih tinggi (misalnya 15 menit atau 1 jam), trading hanya ketika tren dalam beberapa kerangka waktu konsisten, meningkatkan tingkat keberhasilan.
Logika masuk dan mundur: Setelah mengkonfirmasi arah tren, menunggu harga kembali ke titik dukungan / resistensi yang penting untuk masuk, mengoptimalkan titik masuk, meningkatkan rasio risiko / keuntungan.
Strategi perdagangan Binary Equity Trend Tracking dan ADX Filtering adalah sistem perdagangan kuantitatif yang terstruktur yang menangkap perubahan tren dengan cross-equity dan menggunakan indikator ADX untuk memfilter pasar yang beresiko rendah. Strategi ini berjalan pada kerangka waktu 5 menit dan sangat cocok untuk digunakan oleh pedagang garis pendek dan pedagang intraday.
Keuntungan utama dari strategi ini adalah mekanisme multiple confirmation dan kontrol risiko yang ketat, sedangkan potensi risiko yang paling besar berasal dari kehabisan tren dan fluktuasi pasar. Kinerja strategi ini dapat ditingkatkan lebih lanjut dengan menerapkan langkah-langkah optimasi yang disarankan, terutama dengan memperkenalkan Dynamic ADX Threshold, Filter Volume Transaksi, dan Multi-Frames Confirmation.
Bagi trader kuantitatif, strategi ini memberikan kerangka dasar yang solid, yang dapat disesuaikan sesuai dengan preferensi pribadi dan kondisi pasar tertentu, untuk mencapai kinerja perdagangan yang stabil dalam jangka panjang. Pada akhirnya, kunci keberhasilan menerapkan strategi ini adalah menerapkan aturan perdagangan secara ketat, terus memantau kinerja strategi, dan menyesuaikan parameter secara tepat waktu sesuai dengan perubahan pasar.
/*backtest
start: 2025-06-13 00:00:00
end: 2025-07-13 00:00:00
period: 3m
basePeriod: 3m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":200000}]
*/
//@version=5
strategy("Bitcoin 12/26 EMA Crossover with ADX Filter [5min Intraday]", overlay=true, margin_long=100, margin_short=100)
// Input parameters
ema_short_period = input.int(12, "Short EMA Period", minval=1, tooltip="Period for the short EMA")
ema_long_period = input.int(26, "Long EMA Period", minval=1, tooltip="Period for the long EMA")
stop_loss_pct = input.float(2.0, "Stop Loss %", minval=0.1, step=0.1, tooltip="Stop loss percentage for long and short trades")
take_profit_pct = input.float(3.0, "Take Profit % (Short Trades)", minval=0.1, step=0.1, tooltip="Take profit percentage for short trades")
adx_period = input.int(14, "ADX Period", minval=1, tooltip="Period for ADX calculation")
adx_threshold = input.float(25, "ADX Threshold", minval=10, step=1, tooltip="ADX value above which trades are allowed (indicates trending market)")
// Calculate EMAs
ema_short = ta.ema(close, ema_short_period)
ema_long = ta.ema(close, ema_long_period)
// Custom ADX calculation
// Calculate Directional Movement (DM)
plus_dm = ta.change(high) > ta.change(low) and ta.change(high) > 0 ? ta.change(high) : 0
minus_dm = ta.change(low) > ta.change(high) and ta.change(low) > 0 ? ta.change(low) : 0
// Calculate True Range (TR)
tr = ta.tr
// Smooth DM and TR with EMA
plus_di = ta.ema(100 * plus_dm / (tr == 0 ? 1 : tr), adx_period)
minus_di = ta.ema(100 * minus_dm / (tr == 0 ? 1 : tr), adx_period)
// Calculate Directional Index (DX)
dx = 100 * math.abs(plus_di - minus_di) / (plus_di + minus_di == 0 ? 1 : plus_di + minus_di)
// Smooth DX to get ADX
adx = ta.ema(dx, adx_period)
// Plot EMAs and ADX
plot(ema_short, title="12 EMA", color=color.blue, linewidth=2)
plot(ema_long, title="26 EMA", color=color.red, linewidth=2)
plot(adx, title="ADX", color=color.purple)
// Detect crossovers with ADX filter
buy_signal = ta.crossover(ema_short, ema_long) and adx > adx_threshold
sell_signal = ta.crossunder(ema_short, ema_long) and adx > adx_threshold
// Strategy logic for long trades (buy side)
if buy_signal
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop=strategy.position_avg_price * (1 - stop_loss_pct / 100))
if sell_signal
strategy.close("Long", comment="Sell")
// Strategy logic for short trades (sell side)
if sell_signal
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", stop=strategy.position_avg_price * (1 + stop_loss_pct / 100), limit=strategy.position_avg_price * (1 - take_profit_pct / 100))
if buy_signal
strategy.close("Short", comment="Buy")
// Plot signals
plotshape(buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// Background highlight
bgcolor(buy_signal ? color.new(color.green, 90) : sell_signal ? color.new(color.red, 90) : na)
// Labels
if buy_signal
label.new(bar_index, low, "Buy", color=color.green, style=label.style_label_up, textcolor=color.white)
if sell_signal
label.new(bar_index, high, "Sell", color=color.red, style=label.style_label_down, textcolor=color.white)
// Alert conditions
alertcondition(buy_signal, title="Bitcoin 12/26 EMA Buy", message="12 EMA crossed above 26 EMA with ADX > {{adx_threshold}} on BTC at {{close}}")
alertcondition(sell_signal, title="Bitcoin 12/26 EMA Sell", message="12 EMA crossed below 26 EMA with ADX > {{adx_threshold}} on BTC at {{close}}")