
La estrategia de trading cuantificativo de brechas en bandas estrechas de medias móviles inclinadas es un sistema de trading avanzado basado en los principios de Oliver Velez, que combina elementos centrales del análisis técnico y el trading dinámico. La estrategia utiliza principalmente la relación entre las medias móviles simples (SMA) a corto plazo (en 20 ciclos) y largo plazo (en 200 ciclos), combinando la dinámica de los precios, la volatilidad y la forma de la caída, para buscar oportunidades de brechas con alta probabilidad en las zonas estrechas de las bandas. La característica central de la estrategia es que, dentro de las zonas estrechas de las bandas estrechamente relacionadas con las medias móviles, se identifican los “pilares elefantes” y las señales de color con una fuerte orientación, mientras que se aprovechan los niveles de stop loss y stop loss para administrar el porcentaje de riesgo de retorno previsto.
El principio central de la estrategia se basa en la sinergia de los siguientes factores clave:
Sistema de promedios móviles doblesLa estrategia utiliza el SMA de 20 y el SMA de 200 ciclos para crear un marco de negociación. Cuando las dos líneas medias están relativamente separadas (en un estado de banda estrecha, la diferencia es inferior al 1.5%), el sistema busca señales de negociación potenciales.
Verificación de la pendiente mediaLa estrategia consiste en calcular el ángulo del SMA de 20 ciclos (con la función de recta inversa) para asegurar que el mercado tenga suficiente dinámica y considerar la entrada solo si el ángulo es mayor a 30 grados.
Tipo de señal de entrada:
El marco de gestión de riesgos:
El estado del mercadoLa estrategia para juzgar el estado del mercado es calcular la distancia relativa entre las dos líneas medias:
Requisitos de entrada múltiple: estado de banda estrecha + inclinación efectiva + precio de cierre más alto que SMA20 + SMA20 más alto que SMA200 + forma de columna de elefante. Requisitos de entrada sin cabeza: estado de banda estrecha + inclinación efectiva + precio de cierre por debajo de SMA20 + SMA20 por debajo de SMA200 + forma de columna de elefante.
A través de un análisis en profundidad del código, la estrategia tiene las siguientes ventajas:
Mecanismo de confirmación múltipleLa estrategia combina factores de confirmación de varias dimensiones, como la relación de la línea media, la pendiente de la línea media, la posición del precio y las formas especiales de la caída, para filtrar eficazmente las señales de mala calidad y mejorar la calidad de las transacciones.
Adaptación a las condiciones del mercadoAl distinguir entre los estados de banda estrecha y banda ancha, la estrategia puede buscar oportunidades en las condiciones de mercado más adecuadas y evitar perseguir a los más bajos en una tendencia que ya se ha expandido.
Gestión de riesgos dinámicosUtiliza el ATR como una herramienta de medición de la volatilidad, asegurando que los objetivos de stop loss y profit se ajusten a la dinámica de la volatilidad del mercado actual, en lugar de usar un número fijo de puntos.
Estrategias para obtener ganancias por categoríasLa adopción de una estrategia de dos etapas, la obtención de una parte de las ganancias y la obtención de la ganancia final, garantiza el bloqueo de una parte de las ganancias en condiciones favorables y no pierde la tendencia al salir de la competencia demasiado pronto.
Mecanismo inteligente para aumentar la posición: Ofrece oportunidades de alza de posición a través de señales de cambio de color, permitiendo un máximo de dos posiciones adicionales en la misma tendencia, optimizando la eficiencia de la utilización del capital.
Protección de pérdidas móvilCuando el precio alcanza el primer objetivo de ganancias, el stop loss se transfiere automáticamente al punto de equilibrio de ganancias y pérdidas, lo que permite una operación de “riesgo cero” y protege los beneficios obtenidos.
Ayuda visualLa estrategia proporciona claras indicaciones visuales y un panel de instrumentos para ayudar a los operadores a identificar de forma intuitiva las señales y el estado del mercado, simplificando el proceso de toma de decisiones.
Indicadores de comportamiento de precios y técnicas integradosEn la página web de la empresa, se puede encontrar la siguiente imagen: “Combina la filosofía del comportamiento de los precios de Oliver Velez con los indicadores tecnológicos tradicionales para crear un sistema de negociación más sólido”.
A pesar de la buena concepción de la estrategia, existen los siguientes riesgos y desafíos potenciales:
Sensibilidad de los parámetrosEl rendimiento de la estrategia depende en gran medida de la configuración de parámetros clave, como el ciclo SMA, la longitud del ATR y la relación de retorno al riesgo. Diferentes mercados y marcos de tiempo pueden requerir diferentes combinaciones de parámetros, lo que requiere una adecuada revisión y optimización histórica.
Riesgo de una falsa brechaLas brechas en zonas de banda estrecha a veces son falsas, especialmente en entornos de mercado de baja volatilidad. Aunque la estrategia requiere el uso de la “columna de elefantes” para reducir las falsas brechas, no se puede evitar por completo.
Punto de deslizamiento y riesgo de ejecuciónEn las operaciones en el mercado real, especialmente cuando hay mucha volatilidad, es posible que se produzca un problema de puntos de deslizamiento, lo que hace que el precio de entrada real no coincida con el precio ideal, lo que afecta a la estructura general de riesgo-rentabilidad.
El desafío de administrar el dineroEl uso fijo del 10% de los fondos y la posibilidad de dos prórrogas pueden conducir a un riesgo excesivo en caso de pérdidas continuas o fuertes fluctuaciones en el mercado.
Exceso de confianza en la mediaLa estrategia depende principalmente de la dirección de la tendencia de los SMA, pero en un mercado de oscilación intermedia, las medias pueden cruzarse con frecuencia y generar demasiadas señales falsas.
Falta de filtros en el entorno del mercado: La estrategia no se adapta a diferentes entornos de mercado macro (por ejemplo, alta o baja volatilidad, mercado alcista o bajista) y puede no funcionar bien en ciertas fases del mercado.
Retiro de la curva de fondosComo la estrategia permite el alza de posiciones, un reverso repentino de la tendencia puede dar lugar a retiros de cuentas más grandes, especialmente cuando el mercado se invierte después de dos alzas.
Las soluciones incluyen: la adición de filtros de entornos de mercado adicionales, el ajuste de la proporción de administración de fondos, el ajuste dinámico de los parámetros en función de las diferentes condiciones de mercado y la consideración de la adición de otros indicadores técnicos para confirmar la señal.
Basado en el análisis de código, la estrategia puede ser optimizada en las siguientes direcciones:
Límites de banda estrecha dinámicosLa estrategia actual utiliza un límite fijo de 1,5% y 2% como límite de juicio para el estrecho y el ancho de banda. Se puede considerar ajustar estos límites en función de la dinámica de la fluctuación histórica para que la estrategia se adapte mejor a diferentes entornos de mercado. Razones de optimización: Los diferentes mercados y marcos de tiempo tienen diferentes características de fluctuación, y los límites fijos pueden no ser lo suficientemente flexibles.
Mejora del sistema de línea mediaSe puede considerar la adición de una media intermedia (como el SMA de 50 ciclos) para formar un sistema de tres medias, o intentar sustituir la media móvil (EMA) por un índice para aumentar la sensibilidad a los cambios de precio. Motivo de optimización: La adición de puntos de referencia intermedia puede proporcionar una visión más completa del mercado, mientras que la EMA es más sensible a las reacciones a los cambios de precios más recientes.
Mejora en el cálculo de la pendiente: El cálculo de la pendiente actual es relativamente sencillo, se puede considerar el uso de la pendiente de regresión lineal o el cambio de la pendiente de varios períodos para obtener una indicación de dirección más estable. Reasones para la optimización: el cálculo de la pendiente de un solo punto es susceptible a las fluctuaciones a corto plazo, y la mejora puede mejorar la estabilidad de los juicios de dirección.
Acompañamiento de la confirmación de la entrega: Aumentar las condiciones de volumen de transacción en las señales de entrada, como la exigencia de que el “pilar del elefante” se acompañe de una ruptura superior a la cantidad promedio de transacciones. Motivo de la optimización: El volumen de transacciones es un factor de confirmación importante de la efectividad de los cambios en los precios, lo que puede reducir significativamente las falsas rupturas.
Dinámica de la relación de riesgo-retorno: Dinámico ajuste de la rentabilidad del riesgo en función de la volatilidad del mercado o el porcentaje de ATR. Utilice un RR más alto en mercados de baja volatilidad y un ajuste más conservador en mercados de alta volatilidad. Motivo de optimización: El potencial de ganancias es diferente en diferentes entornos de volatilidad, y el ajuste dinámico puede optimizar los rendimientos esperados de cada operación.
Optimización de las condiciones de alzaLas condiciones de alza de la posición son más flexibles en la actualidad, por lo que se puede considerar agregar una confirmación de la fuerza de la tendencia o alzar la posición solo cuando el precio retrocede a un soporte / resistencia clave. Motivo de optimización: Las condiciones de alza de la posición más estrictas pueden aumentar la tasa de éxito de las posiciones adicionales y reducir el riesgo general.
El filtro del entorno del mercado: Añadir filtros de entornos de mercado macroeconómicos, como indicadores de volatilidad (como VIX) o indicadores de intensidad de tendencia, para reducir o suspender el comercio en un entorno de mercado desfavorable. Motivo de optimización: El rendimiento de las estrategias en diferentes fases del mercado es muy variable, y los filtros ambientales evitan el comercio en condiciones desfavorables.
Estrategias de detención de pérdidas adaptadasDesarrollar estrategias de stop-loss adaptativas basadas en la estructura del mercado, como el uso de puntos altos y bajos previos, porcentajes de volatilidad o estructura de precios como puntos de referencia de stop-loss dinámicos. Motivo de optimización: los stop-loss con multiplicadores de ATR fijos a veces no coinciden bien con la estructura del mercado, y los métodos adaptativos pueden ser más adecuados para el comportamiento real de los precios.
La estrategia de comercio de banda estrecha de cuantificación de brecha de la banda estrecha de las medias móviles es un sistema de comercio integral que combina varios elementos de análisis técnico para proporcionar a los comerciantes una forma estructurada de participación en el mercado a través de condiciones de entrada bien definidas, mecanismos de confirmación en varios niveles y un marco de gestión de riesgos completo. La estrategia se basa en conceptos básicos de análisis técnico como SMA, ATR y comportamiento de precios, pero integra estos elementos en un sistema de comercio claro y regulado a través de la metodología de Oliver Velez.
La ventaja central de la estrategia es su capacidad para identificar oportunidades de ruptura de alta probabilidad en zonas de bandas estrechas de medias móviles y confirmar la efectividad de las señales a través de patrones de precios específicos como “columnas de elefantes” y “cambios de color”. Al mismo tiempo, una estructura de gestión de riesgos perfectamente desarrollada garantiza la seguridad de los fondos y la protección de las ganancias.
Sin embargo, la estrategia también se enfrenta a problemas como la sensibilidad de los parámetros, el riesgo de falso avance y los desafíos de la gestión de fondos. La solidez y la adaptabilidad de la estrategia se pueden mejorar aún más mediante la optimización de los umbrales de banda estrecha, la mejora del sistema de medias, la mejora del cálculo de la pendiente, la incorporación de la confirmación de la transacción, la implementación de la proporción de retorno de riesgo dinámico, la optimización de las condiciones de alza de posición, la adición de filtros de entorno de mercado y el desarrollo de estrategias de suspensión de pérdidas adaptativas.
En general, se trata de una estrategia de comercio cuantitativa diseñada de manera razonable, lógica y clara, adecuada para los inversores con cierta experiencia en el comercio, especialmente aquellos que prefieren el análisis técnico y métodos de comercio sistematizados. Con la optimización de los parámetros adecuados y la gestión del riesgo, la estrategia tiene el potencial de lograr un rendimiento comercial estable en una variedad de entornos de mercado.
/*backtest
start: 2024-05-13 00:00:00
end: 2025-05-12 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Oliver Velez Advanced Strategy v2", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, pyramiding=2, calc_on_order_fills=true, calc_on_every_tick=true)
// === INPUTS ===
smaLen1 = input.int(20, title="SMA Short")
smaLen2 = input.int(200, title="SMA Long")
atrLen = input.int(14, title="ATR Length")
rr1 = input.float(2.5, title="RR for Partial Profit", step=0.1)
rr2 = input.float(4.0, title="RR for Final Profit", step=0.1)
// === INDICATORS ===
sma20 = ta.sma(close, smaLen1)
sma200 = ta.sma(close, smaLen2)
atr = ta.atr(atrLen)
angle = math.atan(sma20 - sma20[1]) * 180 / math.pi
// === STATES ===
isNarrow = math.abs(sma20 - sma200) / sma200 < 0.015
isWide = math.abs(sma20 - sma200) / sma200 >= 0.02
validSlope = angle > 30
// === CANDLE PATTERNS ===
elephant_long = close > open and (close - open) > 1.5 * atr and high > high[1]
elephant_short = close < open and (open - close) > 1.5 * atr and low < low[1]
color_change_long = close > open and close[1] < open[1]
color_change_short = close < open and close[1] > open[1]
// === LONG ENTRY ===
long_primary = isNarrow and validSlope and close > sma20 and sma20 > sma200 and elephant_long
long_add = isNarrow and color_change_long and close > sma20
long_entry_price = close
long_stop = math.min(low, close - 2 * atr)
long_risk = long_entry_price - long_stop
long_tp1 = long_entry_price + rr1 * long_risk
long_tp2 = long_entry_price + rr2 * long_risk
// === SHORT ENTRY ===
short_primary = isNarrow and validSlope and close < sma20 and sma20 < sma200 and elephant_short
short_add = isNarrow and color_change_short and close < sma20
short_entry_price = close
short_stop = math.max(high, close + 2 * atr)
short_risk = short_stop - short_entry_price
short_tp1 = short_entry_price - rr1 * short_risk
short_tp2 = short_entry_price - rr2 * short_risk
// === LONG EXECUTION ===
if (long_primary)
strategy.entry("Long Entry", strategy.long, comment="Elephant Bar Long")
strategy.exit("Long TP1", from_entry="Long Entry", limit=long_tp1, stop=long_stop)
strategy.exit("Long TP2", from_entry="Long Entry", qty_percent=50, limit=long_tp2)
if (long_add)
strategy.entry("Long Add", strategy.long, comment="Color Change Long")
strategy.exit("Add TP1", from_entry="Long Add", limit=long_tp1, stop=long_stop)
strategy.exit("Add TP2", from_entry="Long Add", qty_percent=50, limit=long_tp2)
// === SHORT EXECUTION ===
if (short_primary)
strategy.entry("Short Entry", strategy.short, comment="Elephant Bar Short")
strategy.exit("Short TP1", from_entry="Short Entry", limit=short_tp1, stop=short_stop)
strategy.exit("Short TP2", from_entry="Short Entry", qty_percent=50, limit=short_tp2)
if (short_add)
strategy.entry("Short Add", strategy.short, comment="Color Change Short")
strategy.exit("Short TP1 Add", from_entry="Short Add", limit=short_tp1, stop=short_stop)
strategy.exit("Short TP2 Add", from_entry="Short Add", qty_percent=50, limit=short_tp2)
// === BREAKEVEN CHECK ===
var float breakeven_price = na
long_breakeven_trigger = high >= long_tp1
short_breakeven_trigger = low <= short_tp1
breakeven_price := long_breakeven_trigger or short_breakeven_trigger ? close : breakeven_price
// === ALERTS ===
alertcondition(long_primary, title="Long Elephant", message="Elephant Bar Long Entry Triggered!")
alertcondition(long_add, title="Color Change Long", message="Color Change Long Entry Triggered!")
alertcondition(long_breakeven_trigger, title="Long Breakeven", message="Move SL to Breakeven for Long")
alertcondition(short_primary, title="Short Elephant", message="Elephant Bar Short Entry Triggered!")
alertcondition(short_add, title="Color Change Short", message="Color Change Short Entry Triggered!")
alertcondition(short_breakeven_trigger, title="Short Breakeven", message="Move SL to Breakeven for Short")
// === PLOTTING ===
plot(sma20, color=color.orange, title="SMA 20")
plot(sma200, color=color.blue, title="SMA 200")
bgcolor(isNarrow ? color.new(color.green, 85) : na)
plotshape(long_primary, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, text="E")
plotshape(long_add, style=shape.circle, location=location.belowbar, color=color.lime, size=size.tiny, text="A")
plotshape(short_primary, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, text="E")
plotshape(short_add, style=shape.circle, location=location.abovebar, color=color.maroon, size=size.tiny, text="A")
// === DASHBOARD ===
var label dash = na
label.delete(dash)
dash := label.new(x=bar_index, y=high, text=
"Oliver Velez Strategy\n" +
"SMA 20 Slope: " + str.tostring(angle, "#.##") + "°\n" +
"State: " + (isNarrow ? "NARROW" : "WIDE") + "\n" +
"Last Entry: " + (long_primary ? "Long E-Bar" : long_add ? "Long Add" : short_primary ? "Short E-Bar" : short_add ? "Short Add" : "None") + "\n" +
"Breakeven: " + (breakeven_price != na ? str.tostring(breakeven_price, "#.##") : "No"), style=label.style_label_left, color=color.new(color.black, 85), textcolor=color.white)