Cette stratégie est un système de négociation complet qui combine plusieurs croisements de moyennes mobiles exponentielles (EMA), de plage moyenne vraie (ATR) et de niveaux de support/résistance des points pivots.
La stratégie repose sur trois dimensions de l'analyse technique:
Les règles de négociation sont clairement définies:
Cette stratégie construit un système de trading complet grâce à la synergie de plusieurs indicateurs techniques. Ses principales forces résident dans son mécanisme de confirmation de signal multidimensionnel et son cadre de contrôle des risques robuste, bien que les traders aient besoin d'optimiser les paramètres et d'améliorer le système en fonction des conditions spécifiques du marché.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover + ATR + PPSignal", overlay=true) //-------------------------------------------------------------------- // 1. Cálculo de EMAs y ATR //-------------------------------------------------------------------- ema4 = ta.ema(close, 4) ema9 = ta.ema(close, 9) ema18 = ta.ema(close, 18) atrLength = 14 atr = ta.atr(atrLength) //-------------------------------------------------------------------- // 2. Cálculo de Pivot Points diarios (PPSignal) // Tomamos datos del día anterior (timeframe D) para calcularlos //-------------------------------------------------------------------- dayHigh = request.security(syminfo.tickerid, "D", high[1]) dayLow = request.security(syminfo.tickerid, "D", low[1]) dayClose = request.security(syminfo.tickerid, "D", close[1]) // Fórmula Pivot Points estándar pp = (dayHigh + dayLow + dayClose) / 3.0 r1 = 2.0 * pp - dayLow s1 = 2.0 * pp - dayHigh r2 = pp + (r1 - s1) s2 = pp - (r1 - s1) r3 = dayHigh + 2.0 * (pp - dayLow) s3 = dayLow - 2.0 * (dayHigh - pp) //-------------------------------------------------------------------- // 3. Definir colores para las EMAs //-------------------------------------------------------------------- col4 = color.green // EMA 4 col9 = color.yellow // EMA 9 col18 = color.red // EMA 18 //-------------------------------------------------------------------- // 4. Dibujar indicadores en el gráfico //-------------------------------------------------------------------- // EMAs plot(ema4, title="EMA 4", color=col4, linewidth=2) plot(ema9, title="EMA 9", color=col9, linewidth=2) plot(ema18, title="EMA 18", color=col18, linewidth=2) // ATR plot(atr, title="ATR", color=color.blue, linewidth=2) // Pivot Points (PPSignal) plot(pp, title="Pivot (PP)", color=color.new(color.white, 0), style=plot.style_line, linewidth=1) plot(r1, title="R1", color=color.new(color.red, 0), style=plot.style_line, linewidth=1) plot(r2, title="R2", color=color.new(color.red, 0), style=plot.style_line, linewidth=1) plot(r3, title="R3", color=color.new(color.red, 0), style=plot.style_line, linewidth=1) plot(s1, title="S1", color=color.new(color.green, 0), style=plot.style_line, linewidth=1) plot(s2, title="S2", color=color.new(color.green, 0), style=plot.style_line, linewidth=1) plot(s3, title="S3", color=color.new(color.green, 0), style=plot.style_line, linewidth=1) //-------------------------------------------------------------------- // 5. Condiciones de cruce (EMA4 vs EMA9 y EMA18) y estrategia //-------------------------------------------------------------------- crossedAbove = ta.crossover(ema4, ema9) and ta.crossover(ema4, ema18) crossedBelow = ta.crossunder(ema4, ema9) and ta.crossunder(ema4, ema18) // Señales de Buy y Sell basadas en cruces + condición con ATR if crossedAbove and close > ema9 + atr strategy.entry("Buy", strategy.long) strategy.exit("Sell", "Buy", stop=ema4) if crossedBelow and close < ema9 - atr strategy.entry("Sell", strategy.short) strategy.exit("Cover", "Sell", stop=ema4)