Estrategia de cruce de medias móviles de recuperación piramidal impulsada por la tendencia

EMA RSI Trailing Stop PYRAMID RECOVERY ENGULFING PATTERN STOP LOSS TAKE PROFIT
Fecha de creación: 2025-06-23 10:36:46 Última modificación: 2025-06-23 10:36:46
Copiar: 1 Número de Visitas: 238
2
Seguir
319
Seguidores

Estrategia de cruce de medias móviles de recuperación piramidal impulsada por la tendencia Estrategia de cruce de medias móviles de recuperación piramidal impulsada por la tendencia

Descripción general

La estrategia de cruce de la línea media de recuperación de la pirámide impulsora de tendencias es un sistema de negociación cuantitativo integral que combina el seguimiento de tendencias, la identificación de señales de reversión y el mecanismo de recuperación de posiciones piramidal. La estrategia se basa principalmente en el cruce de múltiples índices de medias móviles (EMA) para determinar la dirección de la tendencia del mercado, el uso de señales de entrada de confirmación de forma absorbida y la combinación de la gestión de fondos piramidal y la función de parada de pérdidas móviles para construir un cierre de transacciones completo.

Principio de estrategia

La estrategia se basa principalmente en las medias móviles del índice de tres períodos diferentes (EMA20, EMA50 y EMA200) para juzgar la tendencia del mercado, y combina la forma de los gráficos de pared como condición para la activación de la señal de entrada. En concreto, la estrategia funciona de la siguiente manera:

  1. Mecanismo de evaluación de tendencias

    • Condiciones de tendencia múltiple: EMA20 > EMA50 > EMA200 y precio de cierre > EMA200
    • Condiciones de tendencia a la baja: EMA20 < EMA50 < EMA200 y precio de cierre < EMA200
  2. Señales de entrada

    • Entradas de seguimiento de tendencias: La forma de absorción de la bolsa de valores en las tendencias de múltiples cabezas
    • Entrada inversa: la aparición de una forma de absorción bajista en la tendencia a la baja ((pensamiento inverso, como una señal de compra inversa))
  3. Selección

    • Se excluye el cociente de indecisión calculando la proporción de la entidad a la escala general
  4. Gestión de riesgos

    • Detención fija: configura la posición de la parada con un número fijo de puntos
    • Paradas fijas: paradas basadas en el multiplicador de los puntos de parada más puntos adicionales
    • Detener el seguimiento de pérdidas: activa el mecanismo de detener el seguimiento de pérdidas cuando las ganancias alcanzan ciertos puntos
  5. Mecanismo de recuperación de las pirámides

    • Aumentar el tamaño de la posición en función del número de pérdidas consecutivas
    • Ajuste de la posición de recuperación con el factor de crecimiento del índice
    • Configuración de la exposición al riesgo con un nivel máximo de recuperación

En la implementación del código, primero se definen tres indicadores de EMA ((20,50, 200) y luego se construye una lógica de selección para eliminar la volatilidad indebida. La estrategia tiene dos condiciones de compra: compra de tendencia y compra inversa.

Ventajas estratégicas

  1. Adaptabilidad al mercado en su conjuntoEl sistema permite buscar oportunidades de negociación en diferentes entornos de mercado, no limitándose a un solo estado de mercado, al incluir al mismo tiempo el seguimiento de tendencias y estrategias de inversión.

  2. Gestión de riesgos a varios niveles: Combinado con el triple mecanismo de protección de stop loss fijo, stop loss proporcional y stop loss de seguimiento, protege el capital sin limitar los beneficios potenciales.

  3. Mecanismo de recuperación de las pirámides: Introducción innovadora de un sistema de recuperación que mejora la eficiencia de la recuperación de fondos mediante el aumento científico de las posiciones para hacer frente a las pérdidas continuas. Este mecanismo permite recuperar el valor neto de la cuenta más rápidamente después de una retirada a corto plazo.

  4. Gestión de posiciones dinámica: Ajuste automáticamente el tamaño de la posición según el rendimiento de la operación, mantenga la posición básica durante la ganancia y aumente gradualmente la posición durante la pérdida para acelerar la recuperación.

  5. Indicadores técnicos combinados con formas: No sólo se basa en indicadores técnicos como el promedio móvil, sino que también se combina con el análisis de la morfología de la gráfica para mejorar la calidad de la señal a través de la confirmación múltiple.

  6. Filtrado de entrada muy preciso: Filtración de las células indecisas mediante el parámetro body_ratio para reducir el riesgo de falsedad de señales.

  7. Marcas visuales muy simplesLas señales de negociación se muestran de forma intuitiva en el gráfico, lo que facilita el análisis de retroceso y la supervisión en tiempo real.

Riesgo estratégico

  1. Riesgo de una rápida expansión de las posiciones: El mecanismo de recuperación de la pirámide puede causar un aumento rápido de las posiciones cuando se producen pérdidas continuas, que pueden agravar las pérdidas si el mercado continúa siendo desfavorable. Se recomienda controlar el parámetro max_recovery dentro de un rango razonable y ajustar la base_position de acuerdo con la cantidad total de capital.

  2. El retraso en el cambio de tendenciaLos sistemas basados en promedios móviles pueden reaccionar lentamente al inicio de una tendencia cambiante, lo que lleva a un retraso en el tiempo de entrada o salida. Se puede considerar la combinación de indicadores más sensibles como el RSI o el MACD como un criterio auxiliar.

  3. Riesgo de pérdida de puntos fijos: Cuando la volatilidad del mercado cambia, los puntos fijos de parada pueden ser demasiado amplios o demasiado estrechos. Se recomienda considerar el uso de ATR (Average True Range) para ajustar dinámicamente la distancia de parada.

  4. Las falsas señales devoradoras de formas: En el mercado horizontal, la forma de absorción puede generar más señales falsas. Se puede mejorar la calidad de la señal aumentando la confirmación de la transacción u otros indicadores auxiliares.

  5. Limitación de las transacciones unidireccionales: La estrategia actual solo ejecuta múltiples operaciones, y puede perderse la oportunidad de hacer un pronóstico en un mercado bajista. Considere agregar una lógica de pronóstico simétrica para adaptarse a los mercados bidireccionales.

  6. La presión de administrar el dineroEn el nivel máximo de recuperación, se requiere un mayor apoyo financiero. Se recomienda configurar cuidadosamente los parámetros pyramid_factor y max_recovery según el tamaño de la cuenta total.

Dirección de optimización de la estrategia

  1. Mecanismo de detención de pérdidas dinámicas: sustitución de los puntos fijos de la parada de pérdidas por la parada dinámica basado en el ATR, para adaptarse mejor a los cambios en la volatilidad del mercado. La forma de implementar es calcular el valor actual de ATR, y luego establecer la parada de pérdidas como el precio de entrada menos el múltiplo de ATR.

  2. Añadir una lógica de vacíoLa estrategia se puede implementar copiando la lógica de compra existente, revirtiendo las condiciones de configuración y la dirección de entrada.

  3. Mejorar el juicio de tendenciasAdemás de la EMA, se han introducido más herramientas de confirmación de tendencias, como el ADX (indicador de fuerza de tendencia), para filtrar un entorno de tendencia más fuerte. Se pueden agregar condiciones como “ADX > 25” como filtro de fuerza de tendencia.

  4. Optimización de la proporción de riesgo: Basado en datos de retroceso histórico, puede ser necesario ajustar el parámetro tp_multiplier para encontrar la proporción óptima de pérdidas y paradas.

  5. El filtro del tiempoAumentar las condiciones de filtración de tiempo para evitar momentos de baja volatilidad o inestabilidad del mercado. En particular, para el comercio de índices, se puede centrarse en los momentos de actividad del mercado.

  6. Optimización del sistema de recuperaciónConsidere el ajuste dinámico del factor de la pirámide basado en las probabilidades de ganar y perder, en lugar de usar un múltiplo fijo. Se puede lograr un mecanismo de ajuste adaptativo basado en el rendimiento reciente.

  7. Aumentar el bloqueo parcial de las ganancias: Después de alcanzar un cierto nivel de ganancias, cierra la posición en lotes para bloquear parte de las ganancias, mientras que mantiene las posiciones restantes para seguir la tendencia.

  8. Indicadores emocionales integradosIntroducir indicadores de sentimiento del mercado como VIX o amplitud del mercado, ajustar parámetros de estrategia o suspender la negociación en caso de sentimiento extremo.

Resumir

La estrategia de recobro de la pirámide impulsora de tendencias es un sistema integral que combina varias ideas de negociación, principalmente mediante el juicio de tendencias cruzados por EMA, la absorción de señales de confirmación de la forma y la combinación de un innovador mecanismo de recuperación de la pirámide para administrar el riesgo y optimizar la eficiencia de los fondos. La ventaja central de la estrategia es la capacidad de adaptarse a diferentes entornos de mercado, al tiempo que proporciona un mecanismo de control de riesgo perfectamente desarrollado.

Esta estrategia es especialmente adecuada para los comerciantes que tienen un cierto conocimiento del análisis técnico y están dispuestos a aceptar un riesgo moderado para buscar un rendimiento estable a largo plazo. Mediante la implementación de las direcciones de optimización mencionadas, la estabilidad y adaptabilidad de la estrategia se pueden mejorar aún más, especialmente en un entorno de gran volatilidad en el mercado.

En general, esta estrategia representa un enfoque típico de la aplicación integrada de análisis técnico, gestión de riesgos y administración de fondos en el comercio cuantitativo moderno, que ofrece a los comerciantes un marco escalable que puede ser personalizado y optimizado según las necesidades personales y el entorno del mercado.

Código Fuente de la Estrategia
/*backtest
start: 2024-06-23 00:00:00
end: 2025-06-21 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=5
strategy("DJ30 Sniper (Trend + Reversal Buy + Pyramid Recovery + Trailing)", overlay=true, default_qty_value=1)

// === INPUTS ===
ema_fast = input.int(20, "EMA Fast")
ema_mid = input.int(50, "EMA Mid")
ema_slow = input.int(200, "EMA Slow")
rsi_period = input.int(14, "RSI Period")
sl_points = input.int(650, "Stop Loss (Points)")
tp_extra = input.int(200, "Extra TP Points")
tp_multiplier = 5
trailing_trigger = input.int(100, "Activate Trailing SL After (Points)")
trailing_stop = input.int(500, "Trailing Stop Size (Points)")

// === Recovery Settings ===
max_recovery = input.int(3, "Max Pyramid Levels", minval=1)
base_position = input.float(1000, "Base Order Size ($)")  // 🔁 doubled from 500 to 1000
pyramid_factor = input.float(2.0, "Recovery Multiplier")

// === MAs ===
ema20 = ta.ema(close, ema_fast)
ema50 = ta.ema(close, ema_mid)
ema200 = ta.ema(close, ema_slow)

// === Candle Filter ===
body = math.abs(close - open)
candle_range = high - low
body_ratio = candle_range != 0 ? body / candle_range : 0
not_indecision = body_ratio > 0.3

// === Buy Conditions ===
bull_trend = ema20 > ema50 and ema50 > ema200 and close > ema200
engulfing_bullish = close > open and close > close[1] and open < open[1]
buy_trend = bull_trend and engulfing_bullish and not_indecision

bear_trend = ema20 < ema50 and ema50 < ema200 and close < ema200
engulfing_bearish = close < open and close < close[1] and open > open[1]
buy_reversal = bear_trend and engulfing_bearish and not_indecision

buy_condition = buy_trend or buy_reversal

// === SL/TP ===
tp_points = sl_points * tp_multiplier + tp_extra
sl_buy = close - sl_points * syminfo.mintick
tp_buy = close + tp_points * syminfo.mintick

// === Recovery Logic ===
var int recovery_level = 0
var float position_size = base_position

if strategy.closedtrades > 0
    last_trade = strategy.closedtrades - 1
    last_profit = strategy.closedtrades.profit(last_trade)
    if last_profit > 0
        recovery_level := 0
    else
        recovery_level := math.min(recovery_level + 1, max_recovery)

position_size := base_position * math.pow(pyramid_factor, recovery_level)

// === Trade Execution ===
if buy_condition and strategy.opentrades == 0
    strategy.entry("Buy DJ30", strategy.long, qty=position_size)

// === Exit Logic ===
if strategy.opentrades > 0
    entry_price = strategy.opentrades.entry_price(0)
    unrealized_points = (close - entry_price) / syminfo.mintick

    if unrealized_points >= trailing_trigger
        strategy.exit("Trail Exit", from_entry="Buy DJ30", trail_points=trailing_stop, trail_offset=trailing_stop)
    else
        strategy.exit("Fixed Exit", from_entry="Buy DJ30", stop=sl_buy, limit=tp_buy)

// === Visual Markers ===
plotshape(buy_trend, location=location.belowbar, style=shape.labelup, color=color.green, text="TrendBuy")
plotshape(buy_reversal, location=location.belowbar, style=shape.labelup, color=color.orange, text="RevBuy")