
Strategi kuantitatif tren pelacakan dinamis multi-tingkat adalah sistem pelacakan tren canggih yang didasarkan pada Hull Moving Average (HMA) yang menggabungkan pengenalan sinyal masuk yang cerdas dengan mekanisme stop loss yang dinamis. Inti dari strategi ini adalah membangun sinyal masuk dengan menggunakan indikator HMA dengan periode yang berbeda (100, 200, 500, 1000) dan menggunakan tiga lapisan perlindungan: stop loss yang keras sebelum dipicu, stop loss pelacakan cerdas setelah dipicu, dan penyaringan arah tren untuk membentuk sistem perdagangan yang lengkap. Strategi ini memungkinkan pengelolaan dana dan pengendalian risiko yang efisien dengan menangkap tren dengan tepat pada awal dan mengunci keuntungan dengan cerdas saat tren bergeser ke arah pergerakan titik.
Logika inti dari strategi ini dapat dibagi menjadi empat komponen utama:
Mekanisme Generasi Sinyal Masuk:
Mekanisme pemicu:
Mekanisme Stop Loss dengan Pelacakan Cerdas:
Perlindungan terhadap kerusakan:
Strategi ini menggunakan kontrol posisi tunggal yang ketat (tidak ada penambahan posisi piramida), memastikan risiko dapat dikendalikan. Sistem secara otomatis mencatat harga masuk, harga tertinggi / terendah, dan status pemicu, dan manajemen dana yang sepenuhnya otomatis.
Analisis mendalam dari implementasi kode dari strategi ini dapat disimpulkan sebagai keuntungan yang signifikan:
Konfirmasi tren multi-lapisanSistem yang dibangun melalui empat HMA dengan periode yang berbeda, membentuk mekanisme pengesahan ganda yang ketat, secara signifikan meningkatkan keandalan sinyal masuk dan mengurangi kerugian akibat penembusan palsu.
Adaptasi Manajemen RisikoStrategi ini dirancang dengan mekanisme stop loss dua tahap (pre-trigger hard stop loss dan post-trigger tracking stop loss) yang dapat menghentikan kerugian pada waktu yang tepat dalam situasi yang sangat tidak menguntungkan dan memaksimalkan keuntungan dalam situasi yang sedang tren, beradaptasi dengan berbagai kondisi pasar.
Penguncian keuntungan yang tepatSistem Stop Loss Tracking yang dinamis ini mampu secara otomatis melacak harga tinggi/rendah, mewujudkan konsep perdagangan klasik “biarkan keuntungan berlari” dan mengunci sebagian besar keuntungan tanpa perlu intervensi manusia.
Kustomisasi TinggiKetiga parameter utama (triggers, tracking, and maximum loss) dapat disesuaikan oleh pengguna, sesuai dengan varietas, volatilitas, dan preferensi risiko.
Dukungan visualStrategi ini memiliki visualisasi indikator HMA dan awan tren, yang memungkinkan pedagang untuk secara intuitif memahami status tren saat ini dan keabsahan titik masuk.
Meskipun strategi ini dirancang dengan baik, ada risiko potensial berikut:
Risiko Gempa BerjangkaDalam pasar yang bergejolak dengan interval tanpa tren yang jelas, sinyal silang HMA dapat menghasilkan sinyal palsu yang sering terjadi, yang menyebabkan stop loss berturut-turut. Solusinya adalah menambahkan kondisi penyaringan tambahan, seperti indikator volatilitas atau konfirmasi kekuatan tren.
Parameter SensitivitasPerforma strategi sangat bergantung pada pengaturan tiga parameter utama. Parameter yang tidak tepat dapat menyebabkan kerugian prematur atau kehilangan sebagian besar keuntungan.
Titik geser dan dampak biaya transaksi: Dalam lingkungan disk, slippage dan biaya transaksi dapat secara signifikan mempengaruhi kinerja strategi, terutama untuk pengaturan dengan amplitudo pelacakan yang lebih kecil. Faktor-faktor ini harus dipertimbangkan dalam pengukuran ulang dan parameter harus disesuaikan.
Terlambatnya titik balik trenHull Moving Average: Meskipun lebih cepat bereaksi daripada Moving Average tradisional, masih ada beberapa keterlambatan, yang dapat menyebabkan penarikan yang lebih besar jika tren tiba-tiba berbalik. Anda dapat mempertimbangkan untuk mengoptimalkan waktu keluar dengan kombinasi indikator jangka pendek yang lebih sensitif.
Tekanan pada satu indikator teknisStrategi bergantung pada rangkaian indikator HMA, kurangnya analisis pasar multi-dimensi. Dalam kondisi pasar tertentu, mungkin tidak berkinerja baik.
Berdasarkan prinsip-prinsip strategi dan analisis risiko, optimasi dapat dilakukan dari beberapa arah:
Sistem Parameter Adaptif:
Analisis multi-frame waktu:
Mekanisme verifikasi kuantitatif:
Bagian cerdas berhenti:
Optimalisasi Pembelajaran Mesin:
Mekanisme perlindungan terhadap tren:
Strategi kuantitatif tren multi-tahap dinamis adalah strategi perdagangan kuantitatif canggih yang menggabungkan indikator Hull Moving Average multi-siklus dengan sistem stop-loss cerdas. Ini meningkatkan keandalan sinyal masuk melalui mekanisme konfirmasi tren yang ketat, sambil memanfaatkan sistem kontrol risiko multi-tahap yang mencakup stop-loss keras pra-trigger dan stop-loss dinamis setelah trigger untuk mencapai keseimbangan maksimum antara perlindungan dana dan keuntungan.
Keunggulan inti dari strategi ini adalah bahwa metode manajemen keuntungan yang adaptif dan sistematis mampu mempertahankan kinerja yang relatif stabil di berbagai lingkungan pasar. Namun, strategi ini juga memiliki risiko seperti sensitivitas parameter dan ketergantungan pada satu indikator, yang memerlukan pengoptimalan oleh pedagang dengan menambahkan verifikasi indikator tambahan, membangun sistem parameter adaptif dan analisis multi-frame waktu.
Dengan pengaturan parameter yang masuk akal dan digabungkan dengan analisis lingkungan pasar, strategi ini dapat berfungsi sebagai komponen inti dari sistem pelacakan tren jangka menengah dan jangka panjang, membantu pedagang untuk menangkap peluang tren utama dan mencapai pertumbuhan modal yang kuat sambil mengendalikan risiko.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-07-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Samil Dogru SmartTrailing v1.1", overlay=true, pyramiding=0,
default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === PARAMETRELER ===
triggerPerc = input.float(1.2, "Tetikleme Eşiği (%)", step=0.1)
trailPerc = input.float(0.8, "Trailing Marj (%)", step=0.1)
hardStopPerc = input.float(2.5, "Maksimum Zarar (%) (Tetiklenmeden önce)", step=0.1)
// === HMA'lar (giriş için referans) ===
hma100 = ta.hma(close, 100)
hma200 = ta.hma(close, 200)
hma500 = ta.hma(close, 500)
hma600 = ta.hma(close, 600)
isBull = hma500 > hma600
longCond = ta.crossover(hma100, hma200) and isBull and hma100 > hma500 and hma200 > hma500
shortCond = ta.crossunder(hma100, hma200) and not isBull and hma100 < hma500 and hma200 < hma500
// === GİRİŞLER ===
if (longCond)
strategy.entry("Long", strategy.long)
if (shortCond)
strategy.entry("Short", strategy.short)
// === DURUM DEĞİŞKENLERİ ===
var float entryPrice = na
var float maxSinceEntry = na
var bool triggered = false
// === POZİSYON AÇILDIĞINDA BAŞLAT ===
if strategy.opentrades > 0
if na(entryPrice)
entryPrice := strategy.position_avg_price
maxSinceEntry := close
triggered := false
else
// Güncel zirve/dip güncellemesi
if strategy.position_size > 0
maxSinceEntry := math.max(maxSinceEntry, close)
if strategy.position_size < 0
maxSinceEntry := math.min(maxSinceEntry, close)
// Tetikleme kontrolü
longTriggerPrice = entryPrice * (1 + triggerPerc / 100)
shortTriggerPrice = entryPrice * (1 - triggerPerc / 100)
if strategy.position_size > 0 and close >= longTriggerPrice
triggered := true
if strategy.position_size < 0 and close <= shortTriggerPrice
triggered := true
// Çıkış kontrolü (trailing)
if triggered
if strategy.position_size > 0
trailStop = maxSinceEntry * (1 - trailPerc / 100)
if close <= trailStop
strategy.close("Long", comment="TRAIL EXIT LONG")
if strategy.position_size < 0
trailStop = maxSinceEntry * (1 + trailPerc / 100)
if close >= trailStop
strategy.close("Short", comment="TRAIL EXIT SHORT")
else
// Tetiklenmeden önce sert zarar çıkışı (hard stop)
if strategy.position_size > 0 and close <= entryPrice * (1 - hardStopPerc / 100)
strategy.close("Long", comment="HARD STOP LONG")
if strategy.position_size < 0 and close >= entryPrice * (1 + hardStopPerc / 100)
strategy.close("Short", comment="HARD STOP SHORT")
// === POZİSYON KAPANDIĞINDA RESET ===
if strategy.opentrades == 0
entryPrice := na
maxSinceEntry := na
triggered := false
// === GÖRSEL ===
plot(hma100, title="HMA 100", color=color.white, linewidth=2)
plot(hma200, title="HMA 200", color=color.yellow, linewidth=3)
p1 = plot(hma500, title="HMA 500", color=color.green, linewidth=2)
p2 = plot(hma600, title="HMA 600", color=color.red, linewidth=2)
fill(p1, p2, color=isBull ? color.new(color.green, 70) : color.new(color.red, 70), title="HMA Cloud")