- Cuadrado
- Estrategia de gestión de posiciones y calendario dinámico basado en la volatilidad
Estrategia de gestión de posiciones y calendario dinámico basado en la volatilidad
El autor:
¿ Qué pasa?, Fecha: 2024-12-12 15:19:18
Las etiquetas:
El ATR
Resumen general
Esta estrategia es un sistema de negociación de tiempo dinámico basado en la volatilidad, que combina características de seguimiento de tendencias y gestión de riesgos. El núcleo de la estrategia utiliza un canal de volatilidad para identificar cambios en la tendencia del mercado mientras incorpora un mecanismo de gestión de posiciones dinámicas basado en ATR para lograr un control preciso de los riesgos comerciales.
Principios de estrategia
La lógica central de la estrategia se basa en los siguientes componentes clave:
- Cálculo del canal de volatilidad: utiliza el indicador ATR (Average True Range) para medir la volatilidad del mercado y construye un canal de volatilidad dinámica.
- Mecanismo de determinación de tendencia: Determina la dirección de la tendencia a través de la posición relativa del precio al canal de volatilidad.
- Sistema de gestión de posiciones: calcula dinámicamente el tamaño de la posición en función del capital inicial y del riesgo preestablecido por operación, combinado con una distancia de stop-loss en tiempo real, lo que garantiza una exposición al riesgo constante para cada operación.
- Mecanismo de control de riesgos: Implementa un stop-loss dinámico basado en el canal de volatilidad, cerrando automáticamente las posiciones cuando el precio alcanza el nivel de stop y forzando el cierre de las posiciones antes del cierre del mercado para evitar el riesgo de la noche a la mañana.
Ventajas estratégicas
- Una gran adaptabilidad: la estrategia ajusta automáticamente los parámetros de negociación en función de los cambios en la volatilidad del mercado, adaptándose a diferentes entornos de mercado.
- Control del riesgo: garantiza que la exposición al riesgo para cada operación se mantenga dentro de límites preestablecidos mediante una gestión dinámica de las posiciones y mecanismos de stop-loss.
- Captura de tendencias precisa: filtra de manera efectiva las fallas falsas utilizando el canal de volatilidad, mejorando la precisión del juicio de tendencias.
- Operación estandarizada: condiciones claras de entrada y salida reducen la incertidumbre del juicio subjetivo.
- Gestión científica del capital: incorpora una gestión de posiciones basada en el riesgo, evitando el riesgo excesivo de los tamaños fijos de las posiciones.
Riesgos estratégicos
- Riesgo de mercado alterado: puede dar lugar a operaciones frecuentes y pequeñas pérdidas consecutivas en mercados variados.
- Impacto del deslizamiento: puede enfrentar un riesgo significativo de deslizamiento durante períodos de alta volatilidad, lo que afecta al rendimiento de la estrategia.
- Sensibilidad de parámetros: la eficacia de la estrategia es sensible al período de ATR y a la selección del factor multiplicador, la selección incorrecta de parámetros puede afectar el rendimiento.
- Requisitos de capital: la gestión dinámica de posiciones puede requerir un capital inicial mayor para garantizar un control eficaz del riesgo.
Direcciones para la optimización de la estrategia
- Filtración del entorno del mercado: agregar indicadores de fuerza de tendencia para detener las operaciones en mercados variados, reduciendo las pérdidas en condiciones agitadas.
- Análisis de marcos de tiempo múltiples: Incorporar un juicio de tendencia de marcos de tiempo más largos para mejorar la precisión de la dirección de la negociación.
- Optimización de la obtención de ganancias: Diseñar condiciones dinámicas de obtención de ganancias basadas en la volatilidad para mejorar la captura de ganancias.
- Optimización del tiempo de entrada: agregar patrones de precios o indicadores de impulso como indicadores auxiliares para mejorar la precisión del tiempo de entrada.
- Control de extracción: añadir mecanismos dinámicos de control del riesgo basados en el capital de la cuenta para reducir el tamaño de la posición o pausar la negociación durante pérdidas consecutivas.
Resumen de las actividades
Este es un sistema de trading completo que combina volatilidad, seguimiento de tendencias y gestión de riesgos. La estrategia captura los cambios de tendencia a través de canales de volatilidad mientras emplea métodos científicos de gestión de capital para controlar el riesgo. Aunque el rendimiento puede ser subóptimo en mercados variados, a través de la optimización adecuada de parámetros y mecanismos de filtrado adicionales, puede operar de manera estable en la mayoría de los entornos de mercado.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("BNF FUT 5 min Volatility Strategy", overlay=true)
// Inputs
length = input.int(20, "Length", minval=2)
src = input.source(close, "Source")
factor = input.float(2.0, "Multiplier", minval=0.25, step=0.25)
initial_capital = input.float(100000, "Initial Capital ($)")
risk_per_trade = input.float(1.0, "Risk per Trade (%)", minval=0.1, maxval=10.0)
// Volatility Stop Function
volStop(src, atrlen, atrfactor) =>
if not na(src)
var max = src
var min = src
var uptrend = true
var float stop = na
atrM = nz(ta.atr(atrlen) * atrfactor, ta.tr)
max := math.max(max, src)
min := math.min(min, src)
stop := nz(uptrend ? math.max(stop, max - atrM) : math.min(stop, min + atrM), src)
uptrend := src - stop >= 0.0
if uptrend != nz(uptrend[1], true)
max := src
min := src
stop := uptrend ? max - atrM : min + atrM
[stop, uptrend]
// Calculate Volatility Stop
[vStop, uptrend] = volStop(src, length, factor)
// Plot Volatility Stop
plot(vStop, "Volatility Stop", style=plot.style_cross, color=uptrend ? #009688 : #F44336)
// Risk Management and Position Sizing
atr = ta.atr(length)
stop_distance = math.abs(close - vStop) // Distance to stop level
position_size = (initial_capital * (risk_per_trade / 100)) / stop_distance // Position size based on risk per trade
position_size := math.max(position_size, 1) // Ensure minimum size of 1
// Strategy Logic
if not na(vStop)
if uptrend and not uptrend[1] // Transition to uptrend
strategy.close("Short")
strategy.entry("Long", strategy.long, qty=position_size)
if not uptrend and uptrend[1] // Transition to downtrend
strategy.close("Long")
strategy.entry("Short", strategy.short, qty=position_size)
// Exit on Stop Hit
if strategy.position_size > 0 and low < vStop // Exit long if stop hit
strategy.close("Long", comment="Stop Hit")
if strategy.position_size < 0 and high > vStop // Exit short if stop hit
strategy.close("Short", comment="Stop Hit")
if (hour == 15 and minute == 15)
strategy.close_all()
Relacionados
Más.