Strategi ini adalah sistem trend berikut yang dinamis berdasarkan saluran rata-rata bergerak ganda, dikombinasikan dengan mekanisme manajemen risiko. Sistem ini menggunakan dua Simple Moving Averages (SMA) untuk membangun saluran perdagangan, dengan band atas dihitung menggunakan harga tinggi dan band bawah menggunakan harga rendah. Sistem ini menghasilkan sinyal masuk ketika harga penutupan tetap di atas band atas selama lima bar berturut-turut, dan sinyal keluar ketika harga jatuh di bawah band bawah selama lima bar berturut-turut atau mundur 25% dari titik tertinggi, mencapai pelacakan tren dinamis dan kontrol risiko.
Prinsip-prinsip inti meliputi menangkap tren harga melalui saluran rata-rata bergerak ganda dan menetapkan mekanisme masuk dan keluar yang ketat: 1. Mekanisme Masuk: Membutuhkan harga untuk mempertahankan di atas band atas selama lima hari berturut-turut, memastikan kontinuitas tren dan validitas 2. Mekanisme Keluar: Bekerja pada dua tingkat - Trend Deviation Exit: Diaktifkan ketika harga turun di bawah band bawah selama lima hari berturut-turut, menunjukkan potensi pembalikan tren - Stop-Loss Exit: diaktifkan ketika harga kembali 25% dari titik tertinggi, mencegah kerugian yang berlebihan Manajemen Posisi: Menggunakan persentase tetap dari ekuitas akun untuk ukuran posisi, memastikan alokasi modal yang efektif
Strategi ini membangun sistem perdagangan trend lengkap melalui saluran rata-rata bergerak ganda, menggabungkan konfirmasi masuk yang ketat dan mekanisme keluar ganda untuk mencapai pelacakan tren dan pengendalian risiko yang efektif. Kekuatan strategi ini terletak pada logika eksekusi yang jelas dan kontrol risiko yang komprehensif, meskipun membutuhkan optimasi parameter untuk lingkungan pasar yang berbeda dan dapat ditingkatkan lebih lanjut melalui penyaringan lingkungan pasar dan konfirmasi jangka waktu ganda. Secara keseluruhan, ini merupakan strategi perdagangan kuantitatif yang secara struktural lengkap dan logis ketat, cocok untuk diterapkan di pasar dengan tren yang jelas.
/*backtest start: 2025-01-02 00:00:00 end: 2025-01-09 00:00:00 period: 10m basePeriod: 10m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Moving Average Channel (MAC)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Parameters for Moving Averages upperMALength = input.int(10, title="Upper MA Length") lowerMALength = input.int(8, title="Lower MA Length") stopLossPercent = input.float(25.0, title="Stop Loss (%)", minval=0.1) / 100 // Calculate Moving Averages upperMA = ta.sma(high, upperMALength) lowerMA = ta.sma(low, lowerMALength) // Plot Moving Averages plot(upperMA, color=color.red, title="Upper Moving Average") plot(lowerMA, color=color.green, title="Lower Moving Average") // Initialize variables var int upperCounter = 0 var int lowerCounter = 0 var float entryPrice = na var float highestPrice = na // Update counters based on conditions if (low <= upperMA) upperCounter := 0 else upperCounter += 1 if (high >= lowerMA) lowerCounter := 0 else lowerCounter += 1 // Entry condition: 5 consecutive bars above the Upper MA if (upperCounter == 5 and strategy.position_size == 0) strategy.entry("Long", strategy.long) highestPrice := high // Initialize highest price // Update the highest price after entry if (strategy.position_size > 0) highestPrice := na(highestPrice) ? high : math.max(highestPrice, high) // Exit condition: 5 consecutive bars below the Lower MA if (lowerCounter == 5 and strategy.position_size > 0) strategy.close("Long", comment="Exit: 5 bars below Lower MA") // Stop-loss condition: Exit if market closes below 25% of the highest price since entry stopLossCondition = low < highestPrice * (1 - stopLossPercent) if (stopLossCondition and strategy.position_size > 0) strategy.close("Long", comment="Exit: Stop Loss")