Cette stratégie est une stratégie de croisement basée sur deux moyennes mobiles, EMA et SMA. Lorsque l'EMA plus lente traverse au-dessus de la SMA plus rapide, elle génère un signal d'achat; lorsque l'EMA plus lente traverse en dessous de la SMA plus rapide, elle génère un signal de vente.
La stratégie utilise deux moyennes mobiles: une SMA de 20 périodes et une EMA de 21 périodes. Lorsque l'EMA traverse au-dessus de la SMA, elle indique que le marché peut se transformer en tendance à la hausse, générant ainsi un signal d'achat. Inversement, lorsque l'EMA traverse en dessous de la SMA, elle indique que le marché peut se transformer en tendance à la baisse, générant ainsi un signal de vente. Pour confirmer les signaux, la stratégie exige également que le prix de clôture actuel soit supérieur au prix de clôture précédent (pour les signaux d'achat) ou inférieur au prix de clôture précédent (pour les signaux de vente).
La stratégie EMA-SMA Crossover Bull Market Support Band est une stratégie simple et facile à comprendre de suivi des tendances qui convient particulièrement aux marchés haussiers. Cependant, la stratégie présente également certaines limitations, telles que de faux signaux, un décalage et une capacité limitée de reconnaissance des tendances. En la combinant avec d'autres indicateurs, en optimisant les paramètres et en ajoutant un stop-loss et un take-profit, la performance et la robustesse de la stratégie peuvent être encore améliorées.
/*backtest start: 2023-05-17 00:00:00 end: 2024-05-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © rodrinverte //@version=5 strategy("EMA-SMA Crossover Strategy", overlay=true, initial_capital = 1000) // Definir la longitud de las medias móviles fast = ta.sma(close, 20) slow = ta.ema(close, 21) // Definir condiciones de compra y venta buySignal = ta.crossover(slow, fast) sellSignal = ta.crossunder(slow, fast) // Configurar colores de las líneas y relleno emaColor = buySignal ? color.green : sellSignal ? color.red : color.blue smaColor = color.gray fillColor = slow < fast ? color.new(color.green, 90) : color.new(color.red, 90) // Esperar un periodo para confirmar la señal de compra o venta buyConfirmation = close > close[1] and buySignal sellConfirmation = close < close[1] and sellSignal // Dibujar las medias móviles plot(slow, title="EMA", color=emaColor) plot(fast, title="SMA", color=smaColor) // Configurar las señales de compra y venta plotshape(buyConfirmation, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(sellConfirmation, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Estrategia de compra y venta if (buyConfirmation) strategy.entry("Buy", strategy.long) if (sellConfirmation) strategy.entry("Sell", strategy.short) // Cerrar posición opuesta al cruce original if (sellSignal) strategy.close("Buy") if (buySignal) strategy.close("Sell")