Strategi ini adalah sistem perdagangan yang komprehensif yang menggabungkan beberapa indikator teknis, terutama menggunakan Moving Average (MA), Relative Strength Index (RSI), dan Average Directional Index (ADX) untuk mengidentifikasi tren dan momentum pasar.
Strategi ini menggunakan mekanisme verifikasi tiga lapisan untuk mengkonfirmasi sinyal perdagangan: 1. Trend Identification Layer: Menggunakan persilangan rata-rata bergerak 20 periode dan 50 periode untuk menentukan arah tren, dengan MA cepat melintasi di atas MA lambat yang menunjukkan tren naik dan sebaliknya. 2. Layer Konfirmasi Momentum: Menggunakan RSI 14 periode untuk mengkonfirmasi momentum harga, dengan RSI di atas 50 menunjukkan momentum naik dan di bawah 50 menunjukkan momentum turun. 3. Trend Strength Filter Layer: Menggunakan ADX 14 periode untuk mengukur kekuatan tren, hanya mengkonfirmasi perdagangan ketika ADX di atas 25, menunjukkan kekuatan tren yang cukup.
Selain itu, strategi ini menerapkan sistem stop loss dan take profit dinamis berbasis ATR: - Stop-loss ditetapkan pada 2 kali ATR - Take-profit ditetapkan pada 4 kali ATR, mempertahankan rasio risiko-balasan 1: 2
Strategi ini membangun sistem perdagangan yang relatif lengkap melalui sinergi dari beberapa indikator teknis. Kekuatannya utama terletak pada mekanisme verifikasi multi-lapisan dan sistem manajemen risiko dinamis, meskipun perhatian harus diberikan pada kemampuan beradaptasi di lingkungan pasar yang berbeda. Melalui optimalisasi dan perbaikan terus-menerus, strategi ini menunjukkan janji untuk mencapai pengembalian yang stabil dalam perdagangan aktual.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-15 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("Daily Trading Strategy", overlay=true) // --- Indikator --- // Kombinasi MA untuk trend fastMA = ta.sma(close, 20) slowMA = ta.sma(close, 50) // RSI untuk momentum rsi = ta.rsi(close, 14) // --- Fungsi untuk menghitung ADX --- adx(length) => up = ta.change(high) down = -ta.change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) trur = ta.rma(ta.tr, length) plus = fixnan(100 * ta.rma(plusDM, length) / trur) minus = fixnan(100 * ta.rma(minusDM, length) / trur) sum = plus + minus adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), length) // ADX untuk kekuatan trend adxValue = adx(14) // --- Kondisi Entry Long --- longEntry = ta.crossover(fastMA, slowMA) and rsi > 50 and adxValue > 25 // --- Kondisi Entry Short --- shortEntry = ta.crossunder(fastMA, slowMA) and rsi < 50 and adxValue > 25 // --- Stop Loss dan Take Profit --- // Fungsi untuk menghitung stop loss dan take profit getSLTP(entryPrice, isLong) => atr = ta.atr(14) sl = isLong ? entryPrice - atr * 2 : entryPrice + atr * 2 tp = isLong ? entryPrice + atr * 4 : entryPrice - atr * 4 [sl, tp] // Hitung SL dan TP untuk posisi Long [longSL, longTP] = getSLTP(close, true) // Hitung SL dan TP untuk posisi Short [shortSL, shortTP] = getSLTP(close, false) // --- Eksekusi Order --- if (longEntry) strategy.entry("Long", strategy.long, stop=longSL, limit=longTP) if (shortEntry) strategy.entry("Short", strategy.short, stop=shortSL, limit=shortTP) // --- Plot Indikator --- // MA plot(fastMA, color=color.blue) plot(slowMA, color=color.red) // RSI plot(rsi, color=color.orange) hline(50, color=color.gray) // ADX plot(adxValue, color=color.purple) hline(25, color=color.gray) // --- Alert --- alertcondition(longEntry, title="Long Entry", message="Long Entry") alertcondition(shortEntry, title="Short Entry", message="Short Entry")