Ini adalah strategi mengikuti tren yang menggabungkan beberapa indikator. Ini menggunakan tiga EMA dengan periode yang berbeda, Stochastic RSI dan ATR untuk mengidentifikasi arah tren dan menetapkan posisi. Ini menjadi panjang ketika EMA yang lebih cepat melintasi di atas EMA yang lebih lambat, dengan stop loss ditetapkan pada 3 kali nilai ATR terbaru dan mengambil keuntungan pada 2 kali ATR terbaru.
Strategi ini menggunakan tiga garis EMA - 8-, 14- dan 50-periode EMA, yang mewakili tren harga selama kerangka waktu yang berbeda.
Indikator Stochastic RSI menggabungkan RSI dan perhitungan Stochastic untuk mengidentifikasi kondisi overbought/oversold. Ketika garis Stochastic RSI K melintasi di atas garis D dari bawah, ini menunjukkan pasar sedang transisi dari oversold ke prospek bullish, memungkinkan posisi panjang.
ATR mewakili rentang volatilitas baru-baru ini. Strategi menggunakan 3 kali ATR sebagai jarak stop loss dan 2 kali ATR sebagai jarak take profit untuk mengunci keuntungan dan mengendalikan risiko.
Optimasi dapat dilakukan dengan menyesuaikan periode EMA untuk mengoptimalkan sensitivitas. Membuat rasio ATR dapat disesuaikan memungkinkan kustomisasi berdasarkan kondisi pasar. Menambahkan indikator lain membantu memvalidasi sinyal dan menghindari kesalahan.
Strategi ini mempertimbangkan tren, tingkat overbought/oversold, dan rentang volatilitas untuk mengidentifikasi waktu masuk. EMA dan Stochastic RSI dikombinasikan secara efektif mengidentifikasi tren, sementara ATR
/*backtest start: 2023-10-15 00:00:00 end: 2023-11-14 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © FreddieChopin //@version=4 strategy("3 x EMA + Stochastic RSI + ATR", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100) // 3x EMA ema1Length = input(8, "EMA1 Length", minval = 1) ema2Length = input(14, "EMA2 Length", minval = 1) ema3Length = input(50, "EMA3 Length", minval = 1) ema1 = ema(close, ema1Length) ema2 = ema(close, ema2Length) ema3 = ema(close, ema3Length) plot(ema1, color = color.green) plot(ema2, color = color.orange) plot(ema3, color = color.red) // Stochastic RSI smoothK = input(3, "K", minval=1) smoothD = input(3, "D", minval=1) lengthRSI = input(14, "RSI Length", minval=1) lengthStoch = input(14, "Stochastic Length", minval=1) src = input(close, title="RSI Source") rsi1 = rsi(src, lengthRSI) k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) d = sma(k, smoothD) // ATR atrPeriod = input(14, "ATR Period") takeProfitMultiplier= input(2.0, "Take-profit Multiplier") stopLossMultiplier= input(3.0, "Stop-loss Multiplier") atrSeries = atr(atrPeriod)[1] longCondition = ema1 > ema2 and ema2 > ema3 and crossover(k, d) strategy.entry("long", strategy.long, when = longCondition) float stopLoss = na float takeProfit = na if (strategy.position_size > 0) if (na(stopLoss[1])) stopLoss := strategy.position_avg_price - atrSeries * stopLossMultiplier else stopLoss := stopLoss[1] if (na(takeProfit[1])) takeProfit := strategy.position_avg_price + atrSeries * takeProfitMultiplier else takeProfit := takeProfit[1] strategy.exit("take profit / stop loss", limit = takeProfit, stop = stopLoss) plot(stopLoss, color = color.red, linewidth = 2, style = plot.style_linebr) plot(takeProfit, color = color.green, linewidth = 2, style = plot.style_linebr)