Cette stratégie combine les signaux de croisement de phase avec des moyennes mobiles exponentielles à plusieurs périodes pour saisir les opportunités d'achat et de vente sur le marché.
La logique de base se compose de deux composants principaux: le système de croisement de phase et le système de confirmation de tendance de l'EMA. Le système de croisement de phase utilise une moyenne mobile simple (SMA) avec décalage vers le haut comme phase principale et une moyenne mobile exponentielle (EMA) avec décalage vers le bas comme phase de retard. Les signaux d'achat sont générés lorsque la phase principale traverse au-dessus de la phase de retard et les signaux de vente lorsqu'elle traverse en dessous. Le système de confirmation de tendance de l'EMA utilise des moyennes mobiles exponentielles à plusieurs périodes (13/26/50/100/200) pour confirmer les tendances globales du marché, les croisements EMA à 13 et 26 périodes servant de signaux de trading secondaires.
Cette stratégie construit un système de trading de suivi de tendance complet en combinant des systèmes de croisement de phase et d'EMA à plusieurs périodes. Elle présente des signaux clairs, une capture précise de la tendance et un contrôle raisonnable des risques, tout en présentant certains risques de retard et de faux signaux. La stabilité et la fiabilité de la stratégie peuvent être encore améliorées grâce à des optimisations telles que l'ajout de filtres de volatilité et la confirmation du volume. Elle convient à une application sur des marchés clairement en tendance et les traders doivent ajuster les paramètres en fonction des caractéristiques spécifiques du marché et des préférences individuelles en matière de risque.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-08 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Phase Cross Strategy with Zone", overlay=true) // Inputs length = input.int(20, title="Smoothing Length") source = input(close, title="Source") offset = input.float(0.5, title="Offset Amount", minval=0.0) // Offset for spacing // Simulating "Phases" with Smoothed Oscillators lead_phase = ta.sma(source, length) + offset // Leading phase with offset lag_phase = ta.ema(source, length) - offset // Lagging phase with offset // Signal Logic buySignal = ta.crossover(lead_phase, lag_phase) sellSignal = ta.crossunder(lead_phase, lag_phase) // Plot Phases (as `plot` objects for `fill`) lead_plot = plot(lead_phase, color=color.green, title="Leading Phase", linewidth=1) lag_plot = plot(lag_phase, color=color.red, title="Lagging Phase", linewidth=1) // Fill Zone Between Phases fill_color = lead_phase > lag_phase ? color.new(color.green, 90) : color.new(color.red, 90) fill(plot1=lead_plot, plot2=lag_plot, color=fill_color, title="Phase Zone") // Plot Buy and Sell Signals plotshape(buySignal, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), title="Buy Signal", size=size.small) plotshape(sellSignal, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), title="Sell Signal", size=size.small) // Strategy Entry and Exit if buySignal strategy.entry("Buy", strategy.long) if sellSignal strategy.close("Buy") //indicator("EMA 13, 26, 50, 100, and 200 with Crossover, Value Zone, and Special Candles", overlay=true) // Define the EMAs ema13 = ta.ema(close, 13) ema26 = ta.ema(close, 26) ema50 = ta.ema(close, 50) ema100 = ta.ema(close, 100) ema200 = ta.ema(close, 200) // Plot the EMAs plot(ema13, color=color.blue, linewidth=2, title="EMA 13") plot(ema26, color=color.red, linewidth=2, title="EMA 26") plot(ema50, color=color.orange, linewidth=2, title="EMA 50") plot(ema100, color=color.green, linewidth=2, title="EMA 100") plot(ema200, color=color.purple, linewidth=2, title="EMA 200") // Crossover conditions uptrend = ta.crossover(ema13, ema26) // EMA 13 crosses above EMA 26 (buy) downtrend = ta.crossunder(ema13, ema26) // EMA 13 crosses below EMA 26 (sell) // Plot buy/sell arrows plotshape(series=uptrend, location=location.belowbar, color=color.green, style=shape.labelup, size=size.small, title="Buy Signal") plotshape(series=downtrend, location=location.abovebar, color=color.red, style=shape.labeldown, size=size.small, title="Sell Signal")