
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.
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:
Mecanismo de evaluación de tendencias:
Señales de entrada:
Selección:
Gestión de riesgos:
Mecanismo de recuperación de las pirámides:
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
/*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")