Cette stratégie est un système de trading dynamique qui combine plusieurs indicateurs techniques et intègre un mécanisme de stop-loss flexible. La stratégie utilise principalement les signaux croisés des trois indicateurs techniques courants, le RSI, l’EMA et le MACD, pour juger de la tendance et de la dynamique du marché et prendre des décisions de trading sur cette base.
Le principe central de cette stratégie est d’identifier les opportunités de trading potentielles par la synergie de plusieurs indicateurs.
La stratégie déclenche un signal de transaction lorsque ces indicateurs répondent à des conditions spécifiques simultanément. Par exemple, un signal de multiplication est généré lorsque l’EMA à court terme est traversée par l’EMA à long terme, le RSI est en dessous du niveau de surachat et le tableau MACD est au-dessus de la ligne de signal. Les conditions opposées déclenchent un signal de short.
En outre, la stratégie intègre un mécanisme de stop-loss à pourcentage, permettant aux traders de définir des niveaux de stop-loss et de stop-loss appropriés en fonction de leurs préférences en matière de risque. L’introduction d’un ratio risque/rendement optimise encore davantage la stratégie de gestion des fonds.
La stratégie offre aux traders un système de trading complet en utilisant des indicateurs techniques tels que le RSI, l’EMA et le MACD, combinés à un mécanisme de stop-loss flexible. L’avantage de la stratégie réside dans sa capacité à analyser le marché sous plusieurs angles et sa méthode de gestion du risque flexible. Cependant, comme toutes les stratégies de trading, elle est également exposée à des risques tels que l’excès de trading et la sensibilité aux paramètres.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-10-12 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Crypto Futures Day Trading with Profit/Limit/Loss", overlay=true, margin_long=100, margin_short=100)
// Parameters for the strategy
rsiPeriod = input.int(14, title="RSI Period")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
emaShortPeriod = input.int(9, title="Short EMA Period")
emaLongPeriod = input.int(21, title="Long EMA Period")
macdFastLength = input.int(12, title="MACD Fast Length")
macdSlowLength = input.int(26, title="MACD Slow Length")
macdSignalSmoothing = input.int(9, title="MACD Signal Smoothing")
// Parameters for Take Profit, Stop Loss, and Limit
takeProfitPercent = input.float(3, title="Take Profit %", step=0.1) // 3% by default
stopLossPercent = input.float(1, title="Stop Loss %", step=0.1) // 1% by default
limitRiskRewardRatio = input.float(2, title="Risk/Reward Ratio", step=0.1) // Example: 2:1 ratio
// Calculate RSI
rsi = ta.rsi(close, rsiPeriod)
// Calculate EMA (Exponential Moving Average)
emaShort = ta.ema(close, emaShortPeriod)
emaLong = ta.ema(close, emaLongPeriod)
// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalSmoothing)
// Calculate take profit and stop loss levels
takeProfitLong = strategy.position_avg_price * (1 + takeProfitPercent / 100)
stopLossLong = strategy.position_avg_price * (1 - stopLossPercent / 100)
takeProfitShort = strategy.position_avg_price * (1 - takeProfitPercent / 100)
stopLossShort = strategy.position_avg_price * (1 + stopLossPercent / 100)
// Entry conditions for long position
longCondition = ta.crossover(emaShort, emaLong) and rsi < rsiOverbought and macdLine > signalLine
if (longCondition)
strategy.entry("Long", strategy.long)
// Exit conditions for long position based on stop loss and take profit
strategy.exit("Take Profit/Stop Loss Long", from_entry="Long", limit=takeProfitLong, stop=stopLossLong)
// Entry conditions for short position
shortCondition = ta.crossunder(emaShort, emaLong) and rsi > rsiOversold and macdLine < signalLine
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit conditions for short position based on stop loss and take profit
strategy.exit("Take Profit/Stop Loss Short", from_entry="Short", limit=takeProfitShort, stop=stopLossShort)
// Plot EMA lines on the chart
plot(emaShort, color=color.blue, title="Short EMA (9)")
plot(emaLong, color=color.red, title="Long EMA (21)")
// Plot MACD and signal lines in a separate window
plot(macdLine, color=color.green, title="MACD Line")
plot(signalLine, color=color.orange, title="Signal Line")
// Plot RSI
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, color=color.purple, title="RSI")