
Strategi Tracking Trend Moving Average dengan Stop Loss Adaptif adalah strategi perdagangan kuantitatif yang didasarkan pada analisis teknis. Logika utamanya adalah untuk mengidentifikasi titik-titik perubahan tren pasar melalui sinyal silang dari rata-rata bergerak berbobot ((WMA) dari dua periode yang berbeda, dan digabungkan dengan filter ATR ((Real Amplitude Mean) dan mekanisme Stop Loss Adaptif untuk mengoptimalkan waktu masuk dan pengendalian risiko. Strategi ini dirancang untuk jangka waktu 5 menit, cocok untuk digunakan oleh pedagang jangka pendek dan menengah, dapat secara efektif menangkap perubahan tren di pasar dan melindungi keuntungan.
Prinsip-prinsip inti dari strategi ini mencakup beberapa bagian penting:
Sistem crossover rata-rata bergerak dua kali beratStrategi ini menggunakan rata-rata bergerak berbobot 8 periode dan 21 periode (WMA) sebagai indikator tren. Ketika WMA periode pendek melintasi WMA periode panjang dari bawah, maka akan muncul sinyal polygonal. Sebaliknya, ketika WMA periode pendek melintasi WMA periode panjang dari atas, maka akan muncul sinyal polygonal.
Filter penurunan ATRSinyal perdagangan akan dipicu hanya jika ATR turun selama 3 siklus berturut-turut, yang menunjukkan bahwa volatilitas pasar sedang melemah. Filter ini dapat diaktifkan secara opsional.
Adaptive Tracking Stop Loss MechanismStrategi ini terdiri dari dua tahap:
Penghapusan perlindungan maksimumUntuk mencegah kerugian yang terlalu besar dalam satu transaksi, strategi ini mengatur mekanisme perlindungan penarikan balik maksimum (default 5%). Jika kerugian sebelum stop loss tidak diaktifkan melebihi batas ini, posisi akan dihapus secara otomatis.
Strategi Logika Area yang jelas memisahkan cara pengolahan multi-head dan head-off, dan terus-menerus memperbarui harga puncak dan titik terendah selama kepemilikan untuk melakukan stop loss yang tepat.
Kemampuan untuk mengidentifikasi trenStrategi ini dapat secara efektif mengidentifikasi titik-titik pergeseran tren dan menghindari perdagangan yang sering terjadi di pasar konsolidasi. Rata-rata bergerak berbobot memberikan bobot yang lebih tinggi pada harga terkini, sehingga sinyal lebih sensitif terhadap perubahan pasar.
Adaptasi Manajemen RisikoSistem Stop Loss yang diikuti oleh dua tahapan strategi ini sangat inovatif, karena memungkinkan pergerakan harga yang kecil, sekaligus melindungi keuntungan yang ketat setelah tren ditetapkan. Sistem ini mengatasi masalah stop loss tetap tradisional yang terlalu kaku.
ATR FilterDengan hanya masuk saat volatilitas menurun, strategi dapat menghindari situasi pasar yang sangat tidak stabil dan meningkatkan kualitas sinyal.
Kontrol penarikan maksimumStrategi ini menetapkan batas kerugian maksimum yang jelas untuk setiap transaksi, secara efektif mengendalikan risiko, dan melindungi keamanan dana.
Fleksibel dalam penyesuaian parameterStrategi ini menyediakan beberapa parameter yang dapat disesuaikan (seperti siklus WMA, rasio pemicu, rasio penarikan, dll.), memungkinkan pedagang untuk mengoptimalkannya sesuai dengan berbagai kondisi pasar dan preferensi risiko pribadi.
Risiko Penembusan PalsuMeskipun menggunakan filter ATR, strategi ini masih dapat menghasilkan sinyal yang salah ketika pasar bergejolak. Perseberan rata-rata bergerak mungkin tidak cukup handal, terutama sebelum atau sesudah berita atau peristiwa besar.
Parameter SensitivitasEfektivitas strategi sangat bergantung pada pengaturan parameter. Pasar dan periode waktu yang berbeda mungkin memerlukan kombinasi parameter yang berbeda, dan parameter yang salah dapat menyebabkan overtrading atau kehilangan peluang penting.
Titik geser dan risiko likuiditasStrategi yang dijalankan pada periode waktu 5 menit mungkin menghadapi risiko slippage yang lebih tinggi, terutama di pasar yang kurang likuid. Ini dapat mempengaruhi efektivitas strategi yang sebenarnya.
Kecepatan PeningkatanKarena strategi ini didasarkan pada crossover rata-rata bergerak, sinyal pada dasarnya tertunda dan mungkin tidak dapat masuk pada tahap awal tren, atau keluar dengan cepat pada akhir tren.
Terlalu percaya pada filter ATRATR yang turun selama 3 hari berturut-turut tidak selalu berarti turunnya volatilitas yang sebenarnya, kadang-kadang hanya fenomena sementara yang menyebabkan kehilangan peluang perdagangan yang menguntungkan.
Solusinya adalah: mengoptimalkan pengaturan parameter, menggabungkannya dengan indikator teknis atau analisis fundamental lainnya, menguji kinerja strategi dalam kondisi pasar yang berbeda, dan mempertimbangkan untuk menambahkan sinyal konfirmasi tambahan.
Pengaturan parameter dinamisStrategi saat ini menggunakan siklus WMA dan parameter stop loss yang tetap. Sebuah arah optimasi penting adalah memperkenalkan parameter adaptasi, seperti menyesuaikan siklus WMA secara otomatis berdasarkan volatilitas pasar, atau menyesuaikan kondisi pemicu stop loss secara dinamis sesuai dengan kondisi pasar yang berbeda.
Perbaikan filter ATRFilter ATR saat ini hanya mempertimbangkan penurunan berturut-turut, dapat dioptimalkan untuk mempertimbangkan tingkat relatif atau tingkat perubahan ATR, dan bahkan dapat menggunakan ATR untuk mengatur tingkat stop loss dinamis, bukan persentase tetap.
Menambahkan analisis volume transaksiDengan menggabungkan indikator volume transaksi (seperti OBV atau Chaikin Money Flow), dapat meningkatkan keandalan pengakuan tren dan menghindari false breakout yang disebabkan oleh volume transaksi yang rendah.
Filter waktuTambahkan fitur penyaringan waktu untuk menghindari periode volatilitas tinggi sebelum buka dan tutup pasar, atau menghentikan perdagangan untuk waktu volatilitas tinggi tertentu (misalnya saat data ekonomi dirilis).
Analisis siklus waktu: Mengintegrasikan sinyal konfirmasi tren dengan periode waktu yang lebih lama (misalnya 15 menit atau 1 jam), hanya melakukan perdagangan di arah tren besar, meningkatkan tingkat kemenangan.
Optimalisasi mekanisme penghentianStrategi saat ini bergantung pada penarikan stop loss, dan dapat dipertimbangkan untuk menambahkan mekanisme stop loss berdasarkan support / resistance atau target harga, untuk mengambil keuntungan lebih awal pada resistance yang kuat.
Optimasi pelacakanPerformance: Performa yang diukur secara menyeluruh dalam berbagai kondisi pasar, terutama parameter yang dioptimalkan secara terpisah di pasar tren dan pasar goyah, mungkin perlu merancang set parameter yang berbeda untuk kondisi pasar yang berbeda.
Hal ini dilakukan untuk meningkatkan kualitas sinyal, mengurangi risiko penembusan palsu, mengoptimalkan manajemen dana dan beradaptasi dengan kondisi pasar yang berbeda.
Trend Tracking Moving Average Dual Weighted and Adaptive Stop Loss Strategies adalah sistem perdagangan kuantitatif yang dirancang dengan baik yang menggabungkan strategi lintas rata-rata bergerak tradisional dengan teknologi manajemen risiko modern. Strategi ini bergeser melalui identifikasi tren lintas WMA 8 dan 21 siklus, dan menggabungkan filter ATR untuk meningkatkan kualitas sinyal.
Keunggulan dari strategi adalah struktur logika yang jelas, kontrol risiko yang baik dan pengaturan parameter yang fleksibel, tetapi ada juga risiko seperti sensitivitas parameter yang tinggi, sinyal yang tertinggal. Dengan memperkenalkan penyesuaian parameter dinamis, memperbaiki cara aplikasi ATR, dan mengintegrasikan analisis siklus waktu ganda, kinerja dan adaptasi strategi dapat ditingkatkan lebih lanjut.
Strategi ini memberikan kerangka kerja yang ideal bagi investor kuantitatif yang mencari perdagangan tren jangka pendek dan menengah untuk mencari peluang perdagangan dan mengelola risiko secara efektif di berbagai lingkungan pasar. Pemahaman yang tepat tentang prinsip-prinsip strategi dan penyesuaian yang sesuai dengan gaya perdagangan mereka akan membantu untuk memanfaatkan potensi strategi ini sepenuhnya.
/*backtest
start: 2024-07-07 00:00:00
end: 2025-07-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Reverscope 5M", overlay=true)
wmaLen1 = input.int(8, title="WMA 1 Periyodu")
wmaLen2 = input.int(21, title="WMA 2 Periyodu")
trail_trigger_pct = input.float(1.2, title="Tetikleme Oranı (%)")
trail_offset_pct = input.float(0.6, title="Geri Çekilme Oranı (%)")
max_dd_pct = input.float(5.0, title="Maksimum Zarar (%)")
use_atr_filter = input.bool(true, title="ATR Düşüş Filtresi Aktif")
atr_period = input.int(8, title="ATR Periyodu")
trail_trigger = trail_trigger_pct / 100
trail_offset = trail_offset_pct / 100
max_dd = max_dd_pct / 100
var float entry_price = na
var float peak_price = na
var float trough_price = na
var bool is_long = false
var bool triggered = false
wma1 = ta.wma(close, wmaLen1)
wma2 = ta.wma(close, wmaLen2)
atr = ta.atr(atr_period)
// ATR 3 barda üst üste düşüyor mu?
atrFalling = atr < atr[1] and atr[1] < atr[2] and atr[2] < atr[3]
atrFilterPass = not use_atr_filter or atrFalling
plot(wma1, "WMA 1", color=color.yellow, linewidth=3)
plot(wma2, "WMA 2", color=color.red, linewidth=3)
longSignal = wma1[1] < wma2[1] and wma1[2] >= wma2[2]
shortSignal = wma1[1] > wma2[1] and wma1[2] <= wma2[2]
plotshape(longSignal and atrFilterPass, title="Long", location=location.belowbar, color=color.lime, style=shape.triangleup, size=size.small, offset=-1)
plotshape(shortSignal and atrFilterPass, title="Short", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, offset=-1)
if longSignal and atrFilterPass
strategy.close("Short")
strategy.entry("Long", strategy.long)
entry_price := close
is_long := true
peak_price := close
trough_price := close
triggered := false
if shortSignal and atrFilterPass
strategy.close("Long")
strategy.entry("Short", strategy.short)
entry_price := close
is_long := false
peak_price := close
trough_price := close
triggered := false
if strategy.position_size != 0
profit = is_long ? (close - entry_price) / entry_price : (entry_price - close) / entry_price
drawdown = is_long ? (entry_price - close) / entry_price : (close - entry_price) / entry_price
if not triggered and drawdown > max_dd
strategy.close_all(comment="Max DD")
if is_long
peak_price := math.max(peak_price, close)
if not triggered and profit > trail_trigger
triggered := true
if triggered and close < peak_price * (1 - trail_offset)
strategy.close_all(comment="Trailing Stop")
else
trough_price := math.min(trough_price, close)
if not triggered and profit > trail_trigger
triggered := true
if triggered and close > trough_price * (1 + trail_offset)
strategy.close_all(comment="Trailing Stop")