
Triple Moving Average Trend Trading Strategy adalah metode trading kuantitatif yang didasarkan pada sistem moving average multi-level, yang menggunakan tiga periode berbeda dari moving average ((RMA) untuk menilai arah tren pasar dan mengidentifikasi peluang perdagangan. Strategi ini juga menggabungkan indikator relatif kuat ((RSI) dan analisis struktur grafik untuk memberikan sinyal masuk yang lebih tinggi probabilitas.
Inti dari strategi ini adalah sistem RMA tiga tingkat dan mekanisme penilaian nilai tukar dinamis:
Sistem RMA Triple:
Menentukan arah tren:
Sistem nilai terendah dinamis:
Syarat masuk:
Pengaturan Stop Loss:
Jenis pasar yang disesuaikan:
Mekanisme pengesahan multi-level:
Kuantitas intensitas tren:
Status tren visual:
Mekanisme Stop Loss yang Rasional:
Sinyal Palsu di Bawah Pergolakan Pasar:
Parameter Sensitivitas:
Stop loss tetap:
Bergantung pada parameter retrospeksi sejarah:
Lagging sinyal:
Adaptasi optimasi nilai terendah:
Peningkatan mekanisme penghentian kerugian:
Klasifikasi Optimasi Kondisi Pasar:
Filter waktu:
Sebagian keuntungan terkunci:
Pengaturan filter:
Triple Running Moving Average Trend Trading Strategy adalah sistem perdagangan kuantitatif yang terstruktur dengan baik, yang menyediakan mekanisme adaptasi pasar yang cerdas melalui tiga lapisan sistem RMA dan penilaian tren tren. Strategi ini menggabungkan keuntungan dari pelacakan tren, konfirmasi momentum, dan analisis struktur harga, dan dioptimalkan untuk karakteristik fluktuasi dari berbagai kelas aset.
Keuntungan utama dari strategi ini adalah mekanisme pengesahan multi-tingkat dan adaptasi pasar, yang dapat secara efektif mengurangi sinyal palsu dan menjaga stabilitas dalam berbagai kondisi pasar. Namun, strategi ini juga menghadapi risiko seperti sinyal palsu dan sensitivitas parameter pasar yang bergoyang.
Strategi ini memiliki banyak ruang untuk peningkatan dengan melakukan langkah-langkah perbaikan seperti perhitungan nilai ambang yang disesuaikan, meningkatkan mekanisme stop loss dan optimalisasi klasifikasi status pasar. Khususnya, dengan menggabungkan stop loss dan profit lock yang dinamis dari ATR, kemampuan manajemen risiko dapat ditingkatkan secara signifikan, sehingga strategi dapat tetap stabil dalam berbagai lingkungan pasar.
Strategi ini memberikan kerangka kerja yang kuat bagi investor kuantitatif yang mengejar perdagangan tren, yang dapat disesuaikan dan dioptimalkan lebih lanjut sesuai dengan preferensi risiko pribadi dan prinsip-prinsip pengelolaan dana.
/*backtest
start: 2025-03-18 00:00:00
end: 2025-04-02 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"TRX_USD"}]
*/
//@version=5
strategy("RMA Strategy - Weekly Dynamic Thresholds", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === User Inputs ===
fastLen = input.int(9, title="Fast RMA")
midLen = input.int(21, title="Mid RMA")
slowLen = input.int(50, title="Slow RMA")
rsiLen = input.int(8, title="RSI Length")
slPoints = input.float(10, title="Stop Loss (Points)")
// === Weekly Threshold Inputs ===
forexThreshold = input.float(0.12, title="Forex Weekly Avg RMA Distance (%)", step=0.01)
goldThreshold = input.float(0.15, title="Gold Weekly Avg RMA Distance (%)", step=0.01)
cryptoThreshold = input.float(0.25, title="Crypto Weekly Avg RMA Distance (%)", step=0.01)
// === Select Current Market Type ===
marketType = input.string("FOREX", title="Asset Class", options=["FOREX", "GOLD", "CRYPTO"])
// === Use appropriate threshold based on selected market
weeklyThreshold = marketType == "FOREX" ? forexThreshold :
marketType == "GOLD" ? goldThreshold :
cryptoThreshold // Default to crypto if somehow not matched
// === RMA Calculations ===
fastRMA = ta.rma(close, fastLen)
midRMA = ta.rma(close, midLen)
slowRMA = ta.rma(close, slowLen)
// === RSI Calculation ===
rsi = ta.rsi(close, rsiLen)
// === Trend Structure ===
bullish = fastRMA > midRMA and midRMA > slowRMA
bearish = fastRMA < midRMA and midRMA < slowRMA
// === Candle Break Conditions ===
longCandleBreak = close > high[1]
shortCandleBreak = close < low[1]
// === Distance and Trend Strength Check ===
distance = math.abs(fastRMA - midRMA)
distancePct = distance / midRMA * 100
isTrending = distancePct >= weeklyThreshold
// === Entry Conditions ===
longSignal = bullish and ta.crossover(close, midRMA) and rsi > 50 and longCandleBreak
shortSignal = bearish and ta.crossunder(close, midRMA) and rsi < 50 and shortCandleBreak
// === TP and SL Setup ===
takeProfitPriceLong = slowRMA
stopLossPriceLong = close - slPoints * syminfo.mintick
takeProfitPriceShort = slowRMA
stopLossPriceShort = close + slPoints * syminfo.mintick
// === Trade Execution ===
if (longSignal)
strategy.entry("Long", strategy.long)
strategy.exit("TP/SL Long", from_entry="Long", limit=takeProfitPriceLong, stop=stopLossPriceLong)
if (shortSignal)
strategy.entry("Short", strategy.short)
strategy.exit("TP/SL Short", from_entry="Short", limit=takeProfitPriceShort, stop=stopLossPriceShort)
// === Highlight RMAs Based on Trending Strength ===
fastColor = isTrending ? color.green : color.blue
midColor = isTrending ? color.red : color.blue
slowColor = color.orange
// === Plot RMAs ===
plot(fastRMA, color=fastColor, title="Fast RMA")
plot(midRMA, color=midColor, title="Mid RMA")
plot(slowRMA, color=slowColor, title="Slow RMA")