Cette stratégie est un système de trading basé sur plusieurs moyennes mobiles exponentielles (EMA). En utilisant trois EMA avec des périodes différentes (10, 30, 50), combinées à des croisements de prix et à une analyse de la direction de la tendance, elle construit un système complet de signaux d'achat et de vente.
La stratégie utilise un mécanisme de jugement hiérarchique pour déterminer les signaux de négociation: 1. Couche de détermination des tendances: utilise les positions relatives de trois EMA (10/30/50) pour juger de la direction de la tendance. Une tendance haussière est identifiée lorsque EMA10 > EMA30 > EMA50; une tendance baissière lorsque EMA50 > EMA30 > EMA10. Une fois qu'une tendance est établie, les signaux de trading sont déclenchés par des croisements de prix avec l'EMA30. 3. Couche de gestion de position: lorsque l'EMA30 traverse l'EMA50 dans la direction opposée, il déclenche les signaux de clôture de position correspondants, fournissant un mécanisme de sortie systématique.
Il s'agit d'une tendance bien conçue qui suit une stratégie avec une logique claire. La combinaison de plusieurs EMA garantit à la fois la stabilité de la stratégie et des signaux de trading clairs. Bien qu'il existe des risques de retard inhérents, la stratégie démontre une bonne valeur pratique grâce à des mesures d'optimisation et de contrôle des risques raisonnables. Elle convient particulièrement aux traders qui recherchent des rendements stables avec un risque contrôlé.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © banyat6913 //@version=5 strategy("EMA Trend Strategy", overlay=true) // Input Parameters ema_short_length = input.int(10, title="EMA Short Length", minval=1) ema_mid_length = input.int(30, title="EMA Mid Length", minval=1) ema_long_length = input.int(50, title="EMA Long Length", minval=1) // Calculate EMA ema_short = ta.ema(close, ema_short_length) ema_mid = ta.ema(close, ema_mid_length) ema_long = ta.ema(close, ema_long_length) // **TREND UP** // 1. EMA 10 > EMA 30 > EMA 50 uptrend_condition = ema_short > ema_mid and ema_mid > ema_long // 2. Bullish Candle Crossing Up EMA 30 bullish_candle = close > open cross_up_ema_mid = ta.crossover(close, ema_mid) // 3. If EMA 30 crosses down EMA 50 -> Close Buy Order ema_30_cross_down_50 = ta.crossunder(ema_mid, ema_long) // Buy Signal buy_signal = uptrend_condition and cross_up_ema_mid // Sell Signal for closing Buy Order close_buy_signal = ema_30_cross_down_50 // **TREND DOWN** // 1. EMA 50 > EMA 30 > EMA 10 downtrend_condition = ema_long > ema_mid and ema_mid > ema_short // 2. Bearish Candle Crossing Down EMA 30 bearish_candle = close < open cross_down_ema_mid = ta.crossunder(close, ema_mid) // 3. If EMA 30 crosses up EMA 50 -> Close Sell Order ema_30_cross_up_50 = ta.crossover(ema_mid, ema_long) // Sell Signal sell_signal = downtrend_condition and cross_down_ema_mid // Buy Signal for closing Sell Order close_sell_signal = ema_30_cross_up_50 // Backtesting Logic if (buy_signal) strategy.entry("Buy", strategy.long) if (close_buy_signal) strategy.close("Buy") if (sell_signal) strategy.entry("Sell", strategy.short) if (close_sell_signal) strategy.close("Sell") // Plot EMA Lines plot(ema_short, color=color.blue, title="EMA 10") plot(ema_mid, color=color.orange, title="EMA 30") plot(ema_long, color=color.green, title="EMA 50") // Plot Buy and Sell Signals on Chart plotshape(buy_signal, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), text="BUY", title="Buy Signal") plotshape(close_buy_signal, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), text="CLOSE BUY", title="Close Buy Signal") plotshape(sell_signal, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), text="SELL", title="Sell Signal") plotshape(close_sell_signal, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), text="CLOSE SELL", title="Close Sell Signal")