Strategi ini adalah sistem perdagangan yang menggabungkan beberapa indikator teknis. Strategi ini mengintegrasikan sinyal pasar dari berbagai dimensi termasuk Moving Average (EMA), Volatility Tracking (ATR), Volume Trend (PVT), dan Momentum Oscillator (Ninja) untuk meningkatkan akurasi perdagangan.
Logika inti dibangun di atas empat pilar utama: 1. Menggunakan 200 periode EMA sebagai dasar utama penentuan tren, membagi pasar menjadi bullish dan bearish keadaan 2. sistem Chandelier Exit berdasarkan ATR, menentukan titik balik tren dengan melacak puncak dan terendah dikombinasikan dengan volatilitas 3. Indikator PVT yang menggabungkan perubahan harga dengan volume untuk mengkonfirmasi validitas tren harga 4. Ninja oscillator menangkap perubahan momentum pasar dengan membandingkan rata-rata bergerak jangka pendek dan jangka menengah
Sinyal perdagangan dihasilkan di bawah kondisi berikut: - Long: Harga di atas 200EMA, Chandelier Exit menunjukkan sinyal beli, dikonfirmasi oleh indikator PVT atau Ninja - Pendek: Harga di bawah 200EMA, Chandelier Exit menunjukkan sinyal jual, dikonfirmasi oleh PVT atau indikator Ninja
Strategi ini membangun sistem perdagangan yang relatif lengkap melalui sinergi multi-indikator dan mekanisme stop-loss dinamis. Keuntungan utamanya terletak pada konfirmasi sinyal multi-dimensi dan kontrol risiko yang ketat. Meskipun ada risiko lag dan sinyal palsu, melalui optimasi dan perbaikan terus-menerus, strategi ini memiliki potensi untuk mempertahankan kinerja yang stabil di berbagai lingkungan pasar. Pedagang disarankan untuk melakukan backtesting menyeluruh dan optimasi parameter sebelum perdagangan langsung.
/*backtest start: 2024-11-12 00:00:00 end: 2024-12-11 08:00:00 period: 2h basePeriod: 2h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Triple Indicator Strategy", shorttitle="TIS", overlay=true) // --- Inputs --- var string calcGroup = "Calculation Parameters" atrLength = input.int(22, title="ATR Period", group=calcGroup) atrMult = input.float(3.0, title="ATR Multiplier", step=0.1, group=calcGroup) emaLength = input.int(200, title="EMA Length", group=calcGroup) // --- ATR and EMA Calculations --- atr = atrMult * ta.atr(atrLength) ema200 = ta.ema(close, emaLength) // --- Chandelier Exit Logic --- longStop = ta.highest(high, atrLength) - atr shortStop = ta.lowest(low, atrLength) + atr var int dir = 1 dir := close > shortStop ? 1 : close < longStop ? -1 : dir buySignal = dir == 1 and dir[1] == -1 sellSignal = dir == -1 and dir[1] == 1 // --- Price Volume Trend (PVT) --- pvt = ta.cum((close - close[1]) / close[1] * volume) pvtSignal = ta.ema(pvt, 21) pvtBuy = ta.crossover(pvt, pvtSignal) pvtSell = ta.crossunder(pvt, pvtSignal) // --- Ninja Indicator --- ninjaOsc = (ta.ema(close, 3) - ta.ema(close, 13)) / ta.ema(close, 13) * 100 ninjaSignal = ta.ema(ninjaOsc, 24) ninjaBuy = ta.crossover(ninjaOsc, ninjaSignal) ninjaSell = ta.crossunder(ninjaOsc, ninjaSignal) // --- Strategy Conditions --- longCondition = buySignal and close > ema200 and (pvtBuy or ninjaBuy) shortCondition = sellSignal and close < ema200 and (pvtSell or ninjaSell) if longCondition strategy.entry("Buy", strategy.long) strategy.exit("Exit Long", "Buy", stop=low - atr) if shortCondition strategy.entry("Sell", strategy.short) strategy.exit("Exit Short", "Sell", stop=high + atr) // --- Plotting --- plot(ema200, title="EMA 200", color=color.blue, linewidth=2) plotshape(buySignal, title="Chandelier Buy", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(sellSignal, title="Chandelier Sell", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) // --- Labels for Buy/Sell with price --- if buySignal label.new(bar_index, low, "Buy: " + str.tostring(close), color=color.green, style=label.style_label_up, yloc=yloc.belowbar, size=size.small) if sellSignal label.new(bar_index, high, "Sell: " + str.tostring(close), color=color.red, style=label.style_label_down, yloc=yloc.abovebar, size=size.small) // --- Alerts --- alertcondition(longCondition, title="Buy Alert", message="Buy Signal Triggered!") alertcondition(shortCondition, title="Sell Alert", message="Sell Signal Triggered!")