
Cette stratégie est un système de trading à court terme basé sur la combinaison de la bi-mesure croisée et du RSI. La stratégie utilise une moyenne mobile indicielle de 9 cycles et de 21 cycles (EMA) comme base de jugement de la tendance, tout en combinant un indicateur relativement faible (RSI) comme outil de confirmation de la dynamique, permettant la gestion du risque en définissant des arrêts et arrêts fixes.
La logique centrale de la stratégie est basée sur la synergie de deux indicateurs techniques: d’abord, la direction de la tendance du marché est déterminée par le croisement de l’EMA à 9 cycles et de l’EMA à 21 cycles. Une tendance à la hausse est établie lorsque l’EMA à court terme monte au-dessus de l’EMA à long terme; une tendance à la baisse est établie lorsque l’EMA à court terme descend au-dessus de l’EMA à long terme.
Cette stratégie, combinant les indices de l’équilibre et du RSI, permet de construire un système de trading de courte ligne relativement complet. L’avantage de la stratégie réside dans la clarté des signaux et la maîtrise des risques, mais il y a aussi de la place pour l’optimisation. La stabilité et la rentabilité de la stratégie peuvent être encore améliorées en ajoutant des mécanismes tels que l’arrêt dynamique et le filtrage du temps.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("abo 3llash - EMA + RSI Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Parameters
emaShortLength = input.int(9, title="Short EMA Length")
emaLongLength = input.int(21, title="Long EMA Length")
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
stopLossPercent = input.float(1, title="Stop Loss Percentage") / 100
takeProfitPercent = input.float(2, title="Take Profit Percentage") / 100
// Calculating EMAs and RSI
emaShort = ta.ema(close, emaShortLength)
emaLong = ta.ema(close, emaLongLength)
rsi = ta.rsi(close, rsiLength)
// Buy and Sell Conditions
buyCondition = ta.crossover(emaShort, emaLong) and rsi < rsiOverbought
sellCondition = ta.crossunder(emaShort, emaLong) and rsi > rsiOversold
// Plotting the EMAs
plot(emaShort, title="Short EMA", color=color.blue)
plot(emaLong, title="Long EMA", color=color.red)
// Generating buy and sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategy Execution
if (buyCondition)
strategy.entry("Buy", strategy.long)
// Set Stop Loss and Take Profit for Buy
stopLossLevel = close * (1 - stopLossPercent)
takeProfitLevel = close * (1 + takeProfitPercent)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", stop=stopLossLevel, limit=takeProfitLevel)
if (sellCondition)
strategy.entry("Sell", strategy.short)
// Set Stop Loss and Take Profit for Sell
stopLossLevel = close * (1 + stopLossPercent)
takeProfitLevel = close * (1 - takeProfitPercent)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", stop=stopLossLevel, limit=takeProfitLevel)