Estrategia de trading con media móvil de múltiples períodos combinada con retroceso de Fibonacci y punto pivote

EMA PP FIBO SL TP
Fecha de creación: 2024-12-11 15:58:20 Última modificación: 2024-12-11 15:58:20
Copiar: 1 Número de Visitas: 459
1
Seguir
1617
Seguidores

Estrategia de trading con media móvil de múltiples períodos combinada con retroceso de Fibonacci y punto pivote

Descripción general

La estrategia es un sistema de negociación integrado que combina varias herramientas de análisis técnico, que utiliza principalmente la línea de paridad binaria (EMA de 2050), el nivel de regresión de Fibonacci y la resistencia al soporte del eje para determinar las señales de negociación. La estrategia utiliza un método que combina el seguimiento de tendencias con la regresión de precios para mejorar la precisión de las operaciones mediante la confirmación múltiple.

Principio de estrategia

La lógica central de la estrategia se basa en los siguientes elementos clave:

  1. Utiliza el cruce de los EMA de 20 y 50 períodos para determinar la dirección de la tendencia general
  2. Utiliza los niveles de retorno de Fibonacci ((23.6%, 38.2%, 50%, 61.8%) para identificar las resistencias de soporte potenciales
  3. Combinando el eje central ((PP) y sus puntos de resistencia de soporte ((S1/S2, R1/R2) para confirmar el nivel crítico de precios
  4. Las condiciones de entrada deben cumplirse al mismo tiempo:
    • La media a corto plazo sube a través de la media a largo plazo (hacer más) o baja a través de (hacer menos)
    • El precio está por encima/por debajo del nivel Fibonacci adecuado
    • Confirmación de que el precio cumple con la resistencia de soporte del eje central
  5. El uso de un stop loss fijo (de 30 puntos) y un objetivo de ganancias (de 60 puntos) para administrar el riesgo

Ventajas estratégicas

  1. Verificación cruzada de múltiples indicadores técnicos para mejorar la fiabilidad de la señal
  2. Combinación de tendencias y resistencias de soporte para equilibrar el tiempo de entrada
  3. Parámetros fijos de gestión de riesgos para la implementación cuantitativa de la estrategia
  4. Indicadores de señales de comercio visuales para un control en tiempo real
  5. Apto para el comercio de tendencias a medio y largo plazo, reduciendo los efectos de la volatilidad a corto plazo

Riesgo estratégico

  1. Las múltiples señales pueden causar un retraso en la señal y afectar el tiempo de entrada.
  2. El nivel fijo de stop loss y gain puede no ser adecuado para todos los entornos de mercado.
  3. Se podría generar demasiadas señales falsas en los mercados de ordenamiento horizontal
  4. Se requiere una gran fluctuación de precios para obtener los beneficios ideales
  5. El stop loss puede fallar en el caso de una fuerte fluctuación del mercado.

Dirección de optimización de la estrategia

  1. Introducción de un mecanismo de detención de pérdidas que se adapta a la volatilidad
  2. Añadir indicador de volumen como confirmación auxiliar
  3. Parámetros de la línea media ajustados en función de la dinámica de las diferentes condiciones del mercado
  4. Agregue un filtro de fuerza de tendencia para reducir las señales falsas
  5. Desarrollo de un mecanismo de gestión de posiciones más inteligente

Resumir

La estrategia integra varias herramientas clásicas de análisis técnico para construir un sistema de negociación relativamente completo. Aunque hay un cierto retraso, la fiabilidad de las transacciones se ha mejorado a través de un mecanismo de confirmación múltiple. A través de la implementación de recomendaciones de optimización, la estrategia espera obtener un mejor rendimiento en el comercio en vivo. Se recomienda realizar un buen retroceso antes de su uso en vivo y ajustar los parámetros según las características específicas del mercado.

Código Fuente de la Estrategia
/*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"}]
*/

//@version=5
strategy("Forex Strategy with EMA, Pivot, Fibonacci and Signals", overlay=true)

// Input for EMAs and Pivot Points
emaShortPeriod = input.int(20, title="Short EMA Period", minval=1)
emaLongPeriod = input.int(50, title="Long EMA Period", minval=1)
fibRetraceLevel1 = input.float(0.236, title="Fibonacci 23.6% Level")
fibRetraceLevel2 = input.float(0.382, title="Fibonacci 38.2% Level")
fibRetraceLevel3 = input.float(0.5, title="Fibonacci 50% Level")
fibRetraceLevel4 = input.float(0.618, title="Fibonacci 61.8% Level")

// Function to calculate Pivot Points and Levels
pivot(high, low, close) =>
    pp = (high + low + close) / 3
    r1 = 2 * pp - low
    s1 = 2 * pp - high
    r2 = pp + (high - low)
    s2 = pp - (high - low)
    [pp, r1, s1, r2, s2]

// Calculate Pivot Points
[pp, r1, s1, r2, s2] = pivot(high, low, close)

// Calculate 20 EMA and 50 EMA
emaShort = ta.ema(close, emaShortPeriod)
emaLong = ta.ema(close, emaLongPeriod)

// Plot the EMAs
plot(emaShort, color=color.blue, title="20 EMA", linewidth=2)
plot(emaLong, color=color.red, title="50 EMA", linewidth=2)

// Fibonacci Levels (manually drawn between the most recent high and low)
var float fibHigh = na
var float fibLow = na

if (not na(high[1]) and high > high[1])  // Check if new high is formed
    fibHigh := high
if (not na(low[1]) and low < low[1])    // Check if new low is formed
    fibLow := low

fib23_6 = fibLow + (fibHigh - fibLow) * fibRetraceLevel1
fib38_2 = fibLow + (fibHigh - fibLow) * fibRetraceLevel2
fib50 = fibLow + (fibHigh - fibLow) * fibRetraceLevel3
fib61_8 = fibLow + (fibHigh - fibLow) * fibRetraceLevel4

plot(fib23_6, color=color.green, linewidth=1, title="Fibonacci 23.6%")
plot(fib38_2, color=color.green, linewidth=1, title="Fibonacci 38.2%")
plot(fib50, color=color.green, linewidth=1, title="Fibonacci 50%")
plot(fib61_8, color=color.green, linewidth=1, title="Fibonacci 61.8%")

// Entry conditions (Crossovers)
longCondition = ta.crossover(emaShort, emaLong) and close > fib23_6 and close > s1
shortCondition = ta.crossunder(emaShort, emaLong) and close < fib23_6 and close < r1

// Exit conditions (Stop Loss and Take Profit)
stopLossPips = 30 * syminfo.mintick  // 30 pips Stop Loss
takeProfitPips = 60 * syminfo.mintick // 60 pips Take Profit

if (longCondition)
    strategy.entry("Buy", strategy.long, stop=stopLossPips, limit=takeProfitPips)
if (shortCondition)
    strategy.entry("Sell", strategy.short, stop=stopLossPips, limit=takeProfitPips)

// Plot Pivot Points for visual reference
plot(pp, color=color.yellow, linewidth=2, title="Pivot Point")
plot(r1, color=color.purple, linewidth=1, title="Resistance 1")
plot(s1, color=color.purple, linewidth=1, title="Support 1")
plot(r2, color=color.purple, linewidth=1, title="Resistance 2")
plot(s2, color=color.purple, linewidth=1, title="Support 2")

// Adding Buy and Sell Signals
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white, size=size.small)
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.small)