
La stratégie est un système de suivi des tendances basé sur les moyennes mobiles multi-périodiques de l’indice (EMA) et les indicateurs relativement faibles (RSI). La stratégie prend des décisions de négociation en jugant les tendances EMA de trois cycles 20, 50 et 100, combinées à des signaux de rupture des prix et de survente du RSI.
La logique fondamentale de la stratégie comprend les éléments clés suivants :
Il s’agit d’un système de stratégie complexe qui combine le suivi des tendances et le renversement de la dynamique. Grâce à l’utilisation combinée de plusieurs indicateurs techniques, une meilleure caractéristique de risque-rendement est obtenue tout en maintenant la stratégie simple et compréhensible. Le principal avantage de la stratégie réside dans son mécanisme de confirmation de tendance rigoureux et son système de contrôle des risques perfectionné, mais dans l’application réelle, il est nécessaire de prêter attention à l’optimisation des paramètres et à l’adaptation à l’environnement du marché.
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-17 00:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover + RSI Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=200)
// Calculate EMAs
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)
// Calculate RSI
rsiPeriod = 14
rsiValue = ta.rsi(close, rsiPeriod)
// Determine if each EMA is trending up (current value greater than the previous value)
ema20_trending_up = ema20 > ema20[1]
ema50_trending_up = ema50 > ema50[1]
ema100_trending_up = ema100 > ema100[1]
all_emas_trending_up = ema20_trending_up and ema50_trending_up and ema100_trending_up
// Buy condition:
// 1. Price crosses above the EMA20 from below (using ta.crossover)
// 2. All three EMAs are trending upward
buySignal = ta.crossover(close, ema20) and all_emas_trending_up
// Sell conditions:
// Sell if RSI is above 70 OR price crosses below the EMA20 from above (using ta.crossunder)
sellSignal = (rsiValue > 70) or ta.crossunder(close, ema20)
// Enter a long position if the buy condition is met
if (buySignal)
strategy.entry("Long", strategy.long)
// Exit the long position if either sell condition is met
if (sellSignal)
strategy.close("Long")
// Plot the EMAs on the chart for visualization
plot(ema20, color=color.blue, title="EMA 20")
plot(ema50, color=color.orange, title="EMA 50")
plot(ema100, color=color.green, title="EMA 100")
// (Optional) Plot the RSI and a horizontal line at 70 for reference
plot(rsiValue, title="RSI", color=color.purple)
hline(70, title="Overbought (70)", color=color.red)