
La estrategia de penetración es un sistema de comercio cuantitativo basado en el promedio móvil ponderado por volumen de transacciones (VWMA) durante el día. La estrategia es especialmente adecuada para el marco de tiempo de 1 minuto, generando señales de compra y venta mediante la supervisión de la relación entre el precio y el VWMA reajustado para cada día de negociación. La lógica central de la estrategia es activar las señales de comercio cuando el precio se rompe completamente el VWMA, en concreto, generando una señal de compra cuando el precio más bajo del gráfico está por encima del VWMA y generando una señal de venta cuando el precio más alto del gráfico está por debajo del VWMA. Según la descripción de la estrategia, el rendimiento de la señal de venta de la estrategia es excepcional, con una tasa de éxito superior al 65%, especialmente adecuada para entrar en el mercado temprano.
El principio central de la estrategia es utilizar el VWMA recalculado cada día de negociación como una línea de referencia dinámica para identificar oportunidades de negociación potenciales a través de la relación de la posición relativa del precio con la línea de referencia. El principio de trabajo detallado de la estrategia es el siguiente:
VWMA calculado en el momento de la transacciónLa estrategia utiliza el indicador VWMA de 55 días de duración, pero a diferencia del tradicional VWMA, el indicador se recomputará al comienzo de cada día de negociación para asegurar que el VWMA refleje con mayor precisión el sentimiento del mercado del día.
Mecanismo de generación de señales:
Lógica de control de transaccionesLa estrategia consiste en implementar un mecanismo de control de transacciones inteligente que evita la entrada repetida de señales simultáneas consecutivas, es decir, después de comprar una señal, debe haber una señal de venta para poder comprar nuevamente, y viceversa.
Cancelación automática de las posicionesEstrategia: Automatizar la liquidación de todas las posiciones a las 15:29 (hora estándar de la India) todos los días, asegurando que no haya posiciones nocturnas y evitando el riesgo nocturno.
Gestión de múltiples posicionesLas estrategias que se utilizan son: La estrategia que permite la acumulación de posiciones en forma de pirámide de hasta 10 niveles, y la administración de fondos que utiliza el 10% de los intereses de la cuenta para el control de posiciones.
Después de analizar el código en profundidad, la estrategia muestra las siguientes ventajas:
Adaptabilidad temporalLa estrategia se adapta mejor a las condiciones del mercado diario y no se ve afectada por los datos históricos al restablecer el cálculo VWMA en cada día de negociación.
Una clara señal de entradaLa estrategia de requerir que el precio rompa completamente la VWMA para activar la señal, reduciendo el error de juicio en casos de falsas rupturas y movimientos bruscos.
Control de dirección: La estrategia evita la entrada continua en la misma dirección a través de la lógica de control de transacciones, y requiere que haya un cambio de dirección para volver a entrar, lo que reduce el riesgo de transacciones frecuentes.
Control de riesgosEl mecanismo de liquidación automática de hora fija diaria evita el riesgo de la noche a la mañana y es adecuado para los operadores de línea corta durante el día.
Potencial de alta tasa de éxitoSegún la descripción de la estrategia, las señales de venta, en particular, se han mostrado excelentes, con una tasa de éxito superior al 65%, lo que ofrece a los operadores una mayor probabilidad de éxito.
Administración de posiciones flexibleLa estrategia de la pirámide de posicionamiento es capaz de aumentar las posiciones y maximizar el potencial de ganancias si la tendencia continúa.
A pesar de las ventajas de esta estrategia, existen los siguientes riesgos potenciales:
Limitaciones en el marco de tiempo: La estrategia indica claramente que el marco de tiempo de 1 minuto es el más adecuado, y puede no funcionar bien en otros marcos de tiempo, lo que limita las situaciones de aplicación de la estrategia.
Las señales de compra son relativamente débiles.La descripción de la estrategia menciona que las señales de compra requieren la configuración de paradas y puntos de parada fijos, lo que sugiere que las señales de compra son menos confiables que las de venta, lo que puede limitar la rentabilidad de las operaciones de compra.
Dependencia de las condiciones del mercadoLa VWMA como indicador principal puede generar una gran cantidad de falsas señales en mercados de oscilación horizontal, y la estrategia puede funcionar mejor en mercados de fuerte tendencia.
Riesgo de liquidación en tiempo fijoLa fijación de la posición en par en 15:29 puede conducir a una salida anticipada en condiciones favorables y a la pérdida de algunas oportunidades de ganancias.
Sensibilidad de los parámetros:La longitud VWMA 55 es un parámetro fijo, que puede requerir diferentes configuraciones de parámetros en diferentes entornos de mercado, y los parámetros fijos pueden no adaptarse a todas las condiciones de mercado.
Las medidas para mitigar el riesgo:
Basado en el análisis de código, la estrategia se puede optimizar en las siguientes direcciones:
Aumentar el filtro de las condiciones del mercadoIntroducción de un indicador de volatilidad o de intensidad de tendencia como condición de filtración, generando señales solo en un entorno de mercado adecuado, por ejemplo, se puede juzgar si el mercado actual es adecuado para la estrategia a través de un indicador ATR o ADX.
Optimización de los parámetros VWMA: Hacer posible la adaptación de la longitud VWMA, ajustando los parámetros de acuerdo con la dinámica de la volatilidad del mercado, para que la estrategia se adapte mejor a diferentes entornos de mercado. Esto se puede lograr mediante la asociación de la longitud VWMA con la tasa de volatilidad del mercado.
Mecanismo de confirmación de señales mejoradasIntroducción de indicadores técnicos adicionales o modelos de precios como condición de confirmación para mejorar la calidad de la señal. Por ejemplo, se puede combinar con indicadores como el RSI, MACD para la confirmación de la señal.
Mejorar las estrategias de liquidaciónAparte de las posiciones cerradas a tiempo fijo, se agregaron reglas de posición cerrada dinámicas basadas en las condiciones del mercado, como la retirada de ganancias, el cumplimiento de objetivos o la reversión de indicadores técnicos.
Tratamiento de señales de compra y venta diferenciadasDesarrollar estrategias de gestión específicas para las diferentes características de rendimiento de las señales de compra y venta, como una gestión de posición más conservadora y una estrategia de stop loss más estricta para las señales de compra.
Optimización de la gestión de fondos• Implementar un mecanismo de gestión de fondos más flexible que ajuste la proporción de fondos en cada transacción en función de la intensidad de las señales, la volatilidad del mercado y la dinámica de la evolución histórica.
Estas orientaciones de optimización tienen como objetivo mejorar la solidez y la adaptabilidad de las estrategias, manteniendo sus características originales de alta tasa de éxito.
La estrategia de penetración de precios dinámicos VWMA arriba y abajo durante el período de negociación es un sistema de negociación intradiario de ingenioso diseño que genera señales de negociación mediante el uso de VWMA reubicado diariamente como línea de referencia dinámica, combinado con la condición de que el precio rompa completamente esa línea de referencia. La estrategia es especialmente adecuada para el marco de tiempo de 1 minuto, y su señal de venta es particularmente excelente, con una tasa de éxito superior al 65%.
Las principales ventajas de las estrategias residen en su adaptabilidad a las condiciones del mercado en el día, sus condiciones de entrada claras y sus mecanismos de control de riesgos efectivos. Sin embargo, las estrategias también presentan riesgos potenciales como limitaciones de marco de tiempo, señales de compra relativamente débiles y dependencia de las condiciones del mercado.
La estrategia tiene el potencial de mejorar aún más su estabilidad y rentabilidad mediante la adición de filtros de entornos de mercado, la implementación de parámetros de adaptación, la mejora de los mecanismos de confirmación de señales y la mejora de las estrategias de liquidación. En general, es una estrategia de negociación estructurada y lógica, especialmente adecuada para los comerciantes diarios que buscan una alta rentabilidad y control de riesgo.
Para los operadores que deseen aplicar esta estrategia, se recomienda realizar pruebas completas en un entorno simulado, con especial atención al rendimiento de las señales de compra, y ajustar la configuración de los parámetros y las reglas de gestión de fondos en función de su capacidad de asumir riesgos y objetivos comerciales.
/*backtest
start: 2024-02-29 00:00:00
end: 2025-02-26 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("SVWMA Lx", overlay=true, initial_capital=100000,
default_qty_type=strategy.percent_of_equity, default_qty_value=10, pyramiding=10, calc_on_every_tick=true)
//──────────────────────────────
// Session VWMA Inputs
//──────────────────────────────
vwmaLen = input.int(55, title="VWMA Length", inline="VWMA", group="Session VWMA")
vwmaColor = input.color(color.orange, title="VWMA Color", inline="VWMA", group="Session VWMA", tooltip="VWMA resets at the start of each session (at the opening of the day).")
//──────────────────────────────
// Session VWMA Calculation Function
//──────────────────────────────
day_vwma(_start, s, l) =>
bs_nd = ta.barssince(_start)
v_len = math.max(1, bs_nd < l ? bs_nd : l)
ta.vwma(s, v_len)
//──────────────────────────────
// Determine Session Start
//──────────────────────────────
newSession = ta.change(time("D")) != 0
//──────────────────────────────
// Compute Session VWMA
//──────────────────────────────
vwmaValue = day_vwma(newSession, close, vwmaLen)
plot(vwmaValue, color=vwmaColor, title="Session VWMA")
//──────────────────────────────
// Define Signal Conditions (only on transition)
//──────────────────────────────
bullCond = low > vwmaValue // Bullish: candle low above VWMA
bearCond = high < vwmaValue // Bearish: candle high below VWMA
// Trigger signal only on the bar where the condition first becomes true
bullSignal = bullCond and not bullCond[1]
bearSignal = bearCond and not bearCond[1]
//──────────────────────────────
// **Exit Condition at 15:29 IST**
//──────────────────────────────
sessionEnd = hour == 15 and minute == 29
// Exit all positions at 15:29 IST
if sessionEnd
strategy.close_all(comment="Closing all positions at session end")
//──────────────────────────────
// **Trade Control Logic** (Prevents consecutive same-side signals)
//──────────────────────────────
var bool lastTradeWasBuy = false // Track last trade direction **Reset Direction At Session End**
var bool lastTradeWasSell = false // Track last trade direction **Reset Direction At Session End**
// Reset at new session
if newSession
lastTradeWasBuy := true
lastTradeWasSell := true
//──────────────────────────────
// **Position Management: Entry & Labels**
//──────────────────────────────
if bullSignal and not lastTradeWasBuy //
if strategy.position_size < 0
strategy.close("Short", comment="Exit Short on Bull Signal")
strategy.entry("Long", strategy.long, comment="Enter Long: Buy Call & Sell Put at ATM")
else
strategy.entry("Long", strategy.long, comment="Add Long: Buy Call & Sell Put at ATM")
// Add BUY Label above entry candle
label.new(x=bar_index, y=low - ta.atr(5) * 0.5, text="BUY", color=color.green, textcolor=color.white, size=size.small, style=label.style_label_up, xloc=xloc.bar_index)
lastTradeWasBuy := true // Mark that the last trade was a Buy
if bearSignal and lastTradeWasBuy //
if strategy.position_size < 0
strategy.close("Long", comment="Exit Long on Bear Signal")
strategy.entry("Short", strategy.short, comment="Enter Short: Buy Put & Sell Call at ATM")
else
strategy.entry("Short", strategy.short, comment="Add Short: Buy Put & Sell Call at ATM")
// Add SELL Label below candle
label.new(x=bar_index, y=high + ta.atr(5) * 0.5, text="SELL", color=color.red, textcolor=color.white, size=size.small, style=label.style_label_down, xloc=xloc.bar_index)
lastTradeWasBuy := false // Mark that the last trade was a Sell
//──────────────────────────────
// **Updated Alert Conditions**
//──────────────────────────────
alertcondition(bullSignal and not lastTradeWasBuy,
title="Long Entry Alert",
message="Bullish signal: BUY CALL & SELL PUT at ATM. Entry allowed.")
alertcondition(bearSignal and lastTradeWasBuy,
title="Short Entry Alert",
message="Bearish signal: BUY PUT & SELL CALL at ATM. Entry allowed.")