Ini adalah strategi trend berikut yang menggabungkan beberapa penunjuk. Ia menggunakan tiga EMA dengan tempoh yang berbeza, Stochastic RSI dan ATR untuk mengenal pasti arah trend dan menubuhkan kedudukan. Ia menjadi panjang apabila EMA yang lebih cepat melintasi di atas EMA yang lebih perlahan, dengan stop loss ditetapkan pada 3 kali nilai ATR baru-baru ini dan mengambil keuntungan pada 2 kali nilai ATR baru-baru ini.
Strategi ini menggunakan tiga garis EMA - 8-, 14- dan 50-period EMA, yang mewakili trend harga dalam jangka masa yang berbeza. Apabila EMA 8-period melintasi di atas EMA 14-period, dan EMA 14-period melintasi di atas EMA 50-period, ia menandakan permulaan aliran menaik dan kedudukan panjang boleh dimulakan.
Indikator RSI Stochastic menggabungkan pengiraan RSI dan Stochastic untuk mengenal pasti keadaan overbought / oversold. Apabila garis RSI Stochastic K melintasi di atas garis D dari bawah, ia menunjukkan pasaran beralih dari prospek oversold ke bullish, yang membolehkan kedudukan panjang.
ATR mewakili julat turun naik baru-baru ini. Strategi menggunakan 3 kali ATR sebagai jarak stop loss dan 2 kali ATR sebagai jarak mengambil keuntungan untuk mengunci keuntungan dan mengawal risiko.
Pengoptimuman boleh dilakukan dengan menyesuaikan tempoh EMA untuk mengoptimumkan kepekaan. Membuat nisbah ATR boleh disesuaikan membolehkan penyesuaian berdasarkan keadaan pasaran. Menambah penunjuk lain membantu mengesahkan isyarat dan mengelakkan kesilapan.
Strategi ini mempertimbangkan trend, tahap overbought / oversold, dan julat turun naik untuk mengenal pasti masa kemasukan. EMA dan Stochastic RSI digabungkan secara berkesan mengenal pasti trend, 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)