Il s'agit d'une stratégie de suivi de tendance combinant plusieurs indicateurs. Il utilise trois EMA avec des périodes différentes, le RSI stochastique et l'ATR pour identifier la direction de la tendance et établir des positions.
La stratégie utilise trois lignes EMA - 8-, 14 et 50 périodes EMA, représentant les tendances des prix sur différentes périodes.
L'indicateur RSI stochastique intègre des calculs RSI et stochastiques pour identifier les conditions de surachat/survente.
ATR représente la fourchette de volatilité récente. La stratégie utilise 3 fois ATR comme distance stop loss et 2 fois ATR comme distance take profit pour verrouiller les bénéfices et contrôler le risque.
L'optimisation peut être effectuée en ajustant les périodes EMA pour optimiser la sensibilité.
La stratégie prend en compte la tendance, les niveaux de surachat / survente et la fourchette de volatilité pour identifier le moment de l'entrée. Les EMA et le RSI stochastique combinés identifient efficacement les tendances, tandis que le stop loss / take profit dynamique de l'ATR aide à contrôler les risques. Avec l'ajustement et l'optimisation des paramètres, la stratégie peut devenir un système de suivi de tendance fiable.
/*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)