
La stratégie consiste à calculer les moyennes mobiles indicielles des cycles EMA rapides et des cycles EMA lents et à les tracer sur un graphique pour surveiller en temps réel leur croisement et juger de la tournure de la tendance des prix. En combinaison avec le RSI, les indicateurs de survente et de survente évitent les faux signaux et forment un signal de transaction.
La stratégie est clairement élaborée et utilise l’EMA pour déterminer le virage de tendance, combiné avec le signal de filtrage de l’indicateur RSI, pour capturer efficacement les tendances de la ligne médiane. Cependant, les stratégies d’ajustement et de stop-loss des paramètres EMA et RSI doivent encore être optimisées et sont exposées au risque de manquer des revers et des marchés volatiles. Si les paramètres sont optimisés et le risque maîtrisé, la stratégie peut être utilisée pour trouver des revers de tendance de la ligne médiane et prendre des décisions d’investissement.
/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Trend Change with EMA Entry/Exit - Intraday", overlay=true)
// Define the fast and slow EMA periods
fast_ema_period = input(10, title="Fast EMA Period")
slow_ema_period = input(50, title="Slow EMA Period")
// Calculate the EMAs
ema_fast = ta.ema(close, fast_ema_period)
ema_slow = ta.ema(close, slow_ema_period)
// Plot the EMAs on the chart
plot(ema_fast, title="Fast EMA", color=color.blue, linewidth=2)
plot(ema_slow, title="Slow EMA", color=color.orange, linewidth=2)
// Detect trend changes (crossovers and crossunders)
is_uptrend = ta.crossover(ema_fast, ema_slow)
is_downtrend = ta.crossunder(ema_fast, ema_slow)
// Relative Strength Index (RSI)
rsi_length = input(14, title="RSI Length")
overbought_level = input(70, title="Overbought Level")
oversold_level = input(30, title="Oversold Level")
rsi_value = ta.rsi(close, rsi_length)
// Trend Filter
is_trending = ta.change(is_uptrend) != 0 or ta.change(is_downtrend) != 0
// Entry and Exit signals
enter_long = is_uptrend and rsi_value < overbought_level and is_trending
exit_long = is_downtrend and is_trending
enter_short = is_downtrend and rsi_value > oversold_level and is_trending
exit_short = is_uptrend and is_trending
strategy.entry("Buy", strategy.long, when=enter_long)
strategy.close("Buy", when=exit_long)
strategy.entry("Sell", strategy.short, when=enter_short)
strategy.close("Sell", when=exit_short)