¿Podrían las velas mensuales potenciar tus operaciones diarias?

0
2
trading canales donchian

El swing trading se trata de capturar movimientos significativos sin el estrés constante de vigilar cada tick. Pero, ¿qué pasaría si existiera una forma de filtrar el ruido todavía más y mejorar drásticamente la calidad de tus operaciones? Ahí es donde entra en juego el análisis multi-marco temporal, específicamente el uso de señales de velas mensuales para guiar las entradas en el gráfico diario.

Pero, ¿realmente mejora los resultados?

En este artículo, analizaremos cómo funciona este enfoque, cómo implementarlo con Python, y compararemos el rendimiento que puedes esperar al combinar la visión general con entradas tácticas.

¿Por qué usar gráficos mensuales para operaciones diarias?

Los gráficos mensuales ofrecen una visión de alto nivel del sentimiento del mercado. Cada vela representa un mes completo de acción del precio, filtrando la volatilidad de corto plazo y resaltando los niveles importantes de soporte y resistencia.

Cuando detectas un patrón envolvente alcista, un martillo (hammer) o un doji en un gráfico mensual, es una señal fuerte de actividad institucional o de un cambio significativo de tendencia.

Los traders aprovechan esto a su favor:

  • Establecer un sesgo direccional utilizando patrones de velas mensuales.
  • Acercarse (hacer zoom) al gráfico diario para calcular con precisión el momento de entrada y salida.
  • Evitar el movimiento errático operando en alineación con la tendencia del marco temporal superior.

En esencia, estás dejando que el gráfico mensual sea tu brújula macro, mientras que el gráfico diario se convierte en tu campo de batalla táctico.

Beneficios asumidos del swing trading usando gráficos mensuales y diarios

Cuando combinamos dos marcos de tiempo para el análisis de posibles operaciones podemos obtener los siguientes beneficios:

  • Confirmación de tendencia: Las señales del marco temporal superior te ayudan a evitar operar en contra de la tendencia principal.
  • Reducción de ruido: Las velas mensuales son menos propensas a falsas señales (fakeouts) que las configuraciones intradiarias o diarias.
  • Mejora en la tasa de acierto: Cuando tus entradas se alinean con la tendencia dominante, tienen más probabilidades de tener éxito.
  • Niveles importantes: Los máximos/mínimos mensuales suelen actuar como zonas fuertes de soporte/resistencia.
  • Menos tiempo frente a la pantalla: No necesitas vigilar los gráficos todo el día — las señales mensuales reducen la necesidad de un monitoreo constante.
  • Permite el trading de poca frecuencia: Ideal para personas que solo pueden operar una vez por semana; basta con revisar los patrones mensuales y colocar operaciones según los disparadores diarios.

Sin embargo, esta estrategia conlleva ciertas desventajas obvias, sobre todo:

  • Menos operaciones: Es posible que solo consigamos pocas señales de alta calidad al año.
  • Stops más amplios: Los patrones mensuales suelen implicar movimientos más grandes, y por lo tanto, mayor riesgo.
  • Riesgo de sobreajuste (overfitting): Con menos operaciones, añadir demasiados filtros puede llevar a un ajuste excesivo a los datos históricos.

Aun así, para los traders pacientes, este enfoque puede ofrecer una curva de crecimiento de equidad mucho más estable.

Acciones vs. Forex: ¿Dónde PODRÍA funcionar mejor la estrategia?

Esta estrategia generalmente funciona mejor en acciones y ETFs que en Forex. Esto se debe a que:

  • Las acciones tienden a mostrar tendencias más fuertes y persistentes.
  • Los patrones mensuales son más confiables en índices bursátiles que en pares de divisas.
  • Los mercados de FX suelen revertir a la media y están impulsados por factores macro que distorsionan los aspectos técnicos de largo plazo.

Dicho esto, el concepto sigue siendo válido para los traders de divisas que incorporan fundamentos u otros filtros.

Ahora enfrentemos la realidad — Un backtest SIMPLIFICADO en Python

Así es como se puede realizar una prueba de backtesting de esta estrategia utilizando Python, pandas y yfinance que hace lo siguiente:

  • Descargar datos: Precios diarios y mensuales de una acción (por ejemplo, SPY).
  • Detectar señales mensuales: Ruptura a través del Canal Donchian de 20 meses.
  • Alineación con el gráfico diario: Operar solo las rupturas diarias cuando una señal mensual está activa.
  • Usar el Canal Donchian: Entrar en las rupturas diarias, salir con un stop dinámico (trailing stop).
  • Comparar resultados
import pandas as pd
import numpy as np
import yfinance as yf
import vectorbt as vbt


# Descargar datos de SPY
df = yf.download("SPY", start="2015-01-01", end="2025-01-01")

# Crear velas mensuales
df['Month'] = df.index.to_period('M')
monthly = df.resample('M').agg({'Open':'first','High':'max','Low':'min','Close':'last'})

# Patrón de vela mensual: Envolvente alcista (Bullish engulfing)
monthly['BullEngulf'] = (
    (monthly['Close'] > monthly['Open']) &
    (monthly['Close'].shift(1) < monthly['Open'].shift(1)) &
    (monthly['Open'] < monthly['Close'].shift(1)) & (monthly['Close'] > monthly['Open'].shift(1))
)
monthly['Doji'] = abs(monthly['Close'] - monthly['Open']) < 0.1*(monthly['High']-monthly['Low']) monthly['BullSignal'] = monthly['BullEngulf'] | monthly['Doji'] # Mapear la señal mensual al gráfico diario df['PrevMonth'] = (df.index.to_period('M') - 1) df['BullSignal'] = df['PrevMonth'].map(monthly['BullSignal'].to_dict()).fillna(False) # Lógica del Canal Donchian df['DonchianHigh'] = df['High'].rolling(20).max() df['DonchianLow'] = df['Low'].rolling(20).min() # Lógica de backtest usando vectorbt # Condición de entrada: El cierre diario rompe por encima del máximo Donchian y la señal mensual es True entries = (df['Close'] > df['DonchianHigh'].shift(1)) & df['BullSignal']

# Condición de salida: El cierre diario rompe por debajo del mínimo Donchian dinámico (trailing) de los últimos 10 días
donchian_trailing_stop = df['Low'].rolling(10).min()
exits = df['Close'] < donchian_trailing_stop.shift(1) # Crear el portafolio portfolio = vbt.Portfolio.from_signals( close=df['Close'], entries=entries, exits=exits, direction='long', freq='1D' ) # Imprimir resumen de desempeño print(portfolio.stats()) # Resumen print(f"Operaciones: {len(trades)}") print(f"Tasa de acierto: {np.mean([t>0 for t in trades]):.2%}")
print(f"Rendimiento promedio por operación: {np.mean(trades)*100:.2f}%")

Estos son los resultados al utilizar las señales de ruptura mensual como pre-filtro:

Ruptura de Donchian50 con pre-filtro de Donchian20 mensual

Ruptura de Donchian 50 con pre-filtro de Donchian 20 mensual

¿Cómo se vería sin el pre-filtro mensual?

Resultados sin filtro de Donchian 20

Resultados sin filtro de Donchian 20

Si comparamos los resultados obtenemos lo siguiente:

Con filtro Donchian mensual:

  • Operaciones más limpias y de mayor calidad: mayor tasa de acierto (75%) y un factor de beneficio (profit factor) masivo (9.54)
  • Drawdown mucho menor: 15% frente a 29%
    Las operaciones duran más tiempo (ganancia promedio: 330 días), lo que sugiere que captura tendencias macro más sólidas
    Menos operaciones, pero mayor rendimiento promedio por operación
    Excelentes métricas ajustadas por riesgo (Sharpe, Sortino, Expectativa)

Caso de uso: Ideal para traders de swing o de posición que buscan operaciones de alta convicción, poco estrés y menor frecuencia, con una curva de capital estable.

Sin filtro mensual:

  • Operaciones más frecuentes (12 vs. 5), por lo que hay más oportunidades, pero también más ruido
  • Rendimiento total y CAGR ligeramente más altos, pero a costa de:
    • Menor tasa de acierto (54.5%)
    • El doble de drawdown (29% vs. 15%)
    • Perfil de operación más riesgoso (la peor operación fue de -12%)
    • Duraciones más cortas en las operaciones ganadoras, lo que sugiere que podría estar saliendo prematuramente o por ruido

Caso de uso: Más adecuado para traders activos dispuestos a aceptar mayor volatilidad y a monitorear el mercado con más frecuencia.

Algunas observaciones:

El Buy & Hold sigue superando a ambos: El rendimiento del benchmark fue superior en ambos casos, un recordatorio de que el seguimiento de tendencia necesita ajustes finos para superar la inversión pasiva.

La calidad de la señal puede mejorarse:

trading canales donchian

Además, cambiar de un Canal Donchian de 20 meses a uno de 50 meses para las señales mensuales proporciona un filtro de tendencia más selectivo, lo que podría mejorar aún más la calidad de las operaciones.

  • Aún sin capitalización compuesta: Todos los rendimientos se basaron en un tamaño de posición fijo. Agregar capitalización compuesta o dimensionamiento de posición (por ejemplo, porcentaje de riesgo por operación) podría aumentar significativamente los rendimientos generales.
  • Se necesitan pruebas más amplias: Esta prueba se realizó únicamente sobre SPY. Los resultados pueden variar en acciones de crecimiento, materias primas o criptomonedas, y deberían validarse de forma cruzada en múltiples instrumentos para verificar su robustez.

Reflexiones finales

Usar una señal de ruptura de un marco temporal superior, como el filtro Donchian mensual, puede parecer restrictivo al principio — pero los números respaldan firmemente el argumento: menos operaciones, mejores operaciones, resultados más estables. Para los traders de largo plazo que valoran la preservación de capital y la tranquilidad mental, es una incorporación convincente a su caja de herramientas.

Deja que el panorama general guíe tus operaciones — y observa cómo tu estrategia sube de nivel.


 

Leave a reply