Estrategia de negociación con bandas de volatilidad multicapa

SMA EMA SMMA WMA VWMA ATR
Fecha de creación: 2024-07-31 14:08:36 Última modificación: 2024-07-31 14:08:36
Copiar: 1 Número de Visitas: 583
1
Seguir
1617
Seguidores

Estrategia de negociación con bandas de volatilidad multicapa

Descripción general

La estrategia de comercio de bandas de fluctuación múltiple es un método de comercio cuantitativo basado en la volatilidad de los precios. La estrategia utiliza múltiples fluctuaciones para identificar zonas de sobrecompra y sobreventa en el mercado y para operar cuando los precios tocan estas zonas. La idea central de la estrategia es establecer posiciones cuando los precios se desvían de la media y obtener ganancias cuando los precios regresan.

Principio de estrategia

  1. Calculación de la línea media: la estrategia utiliza un tipo de línea media opcional (SMA, EMA, SMMA, WMA, VWMA) para calcular la línea de referencia.

  2. Configuración de la banda de oscilación: basado en la línea de referencia, el uso de la diferencia estándar multiplicada por un múltiplo para configurar la banda de oscilación de múltiples capas.

  3. Niveles de Fibonacci: utiliza los niveles de retracción de Fibonacci ((23.6%, 38.2%, 50%, 61.8%) para segmentar las bandas de fluctuación y crear más oportunidades de negociación.

  4. Ajuste dinámico: se puede optar por utilizar un multiplicador dinámico para ajustar automáticamente el ancho de banda de oscilación según el ATR (la amplitud real promedio).

  5. Logía de entrada: la estrategia establece una posición en esa dirección cuando el precio toca o cruza una banda de fluctuación.

  6. Mecanismo de acopio: Si el precio continúa moviéndose en dirección negativa, la estrategia aumenta la posición en niveles de banda de fluctuación más lejanos, lo que refleja la idea de la estrategia de Martingale.

  7. Lógica de salida: se puede elegir la posición cerrada para obtener ganancias cuando el precio regresa a la línea de referencia. También se puede establecer una posición cerrada cuando el precio cruza la línea de referencia.

Ventajas estratégicas

  1. Entrada múltiple: La estrategia ofrece más oportunidades de negociación mediante la configuración de varias bandas de volatilidad y niveles de Fibonacci para capturar las fluctuaciones del mercado en diferentes niveles de precios.

  2. Flexibilidad: Las estrategias permiten a los usuarios elegir diferentes tipos de líneas medias, períodos y parámetros para adaptarse a diferentes entornos de mercado y variedades de operaciones.

  3. Adaptación dinámica: la función de multiplicador dinámico opcional permite que la estrategia se ajuste automáticamente a la volatilidad del mercado, lo que mejora la adaptabilidad de la estrategia.

  4. Gestión de riesgos: La estrategia trata de reducir el precio promedio de entrada y aumentar la probabilidad de obtener ganancias finales mediante el aumento de posiciones en situaciones adversas.

  5. La idea de regreso al promedio: la estrategia se basa en la idea de que el precio finalmente regresará al promedio, lo que funciona bien en muchos mercados y marcos de tiempo.

  6. Personalización: El usuario puede ajustar los parámetros de acuerdo con sus preferencias de riesgo y estilo de negociación, como el número de acciones, el equilibrio de Fibonacci.

Riesgo estratégico

  1. Riesgo de pérdidas continuas: en un mercado de tendencia fuerte, los precios pueden romper varias bandas de fluctuación continuamente, lo que lleva a una acumulación continua de pérdidas y pérdidas masivas.

  2. Presión de gestión de fondos: Las estrategias de acrecentamiento de fondos de tipo Martingale pueden provocar un aumento drástico de la demanda de fondos más allá de la capacidad de las cuentas.

  3. Exceso de operaciones: Las bandas de fluctuaciones múltiples pueden generar demasiadas señales de operaciones en mercados convulsionados, aumentando los costos de las operaciones.

  4. Sensibilidad de parámetros: el rendimiento de la estrategia depende en gran medida de la configuración de los parámetros, y los parámetros incorrectos pueden causar un mal rendimiento de la estrategia.

  5. Punto de deslizamiento y riesgo de liquidez: en un mercado con gran volatilidad, es posible que se enfrente a un punto de deslizamiento grave, especialmente cuando se acumula una posición.

  6. Riesgo de retirada: Aunque la estrategia apunta a reducir el costo promedio mediante la acumulación de capital, es posible una retirada importante en condiciones extremas de mercado.

Dirección de optimización de la estrategia

  1. Introducción de filtros de tendencia: se puede agregar un indicador de tendencia a largo plazo, abrir posiciones solo en la dirección de la tendencia y evitar el uso frecuente de operaciones contraproducentes en una tendencia fuerte.

  2. Gestión de posiciones dinámicas: ajuste dinámico del número de acciones por transacción según el tamaño de la cuenta y la volatilidad del mercado para un mejor control del riesgo.

  3. Mecanismos de salida optimizados: se puede considerar la introducción de trailing stops o paros dinámicos basados en la volatilidad para bloquear mejor los beneficios y controlar el riesgo.

  4. Aumentar el filtro de tiempo: agregar restricciones a las ventanas de tiempo de negociación para evitar períodos de mayor volatilidad o menor liquidez.

  5. Integración de indicadores de sentimiento del mercado: en combinación con indicadores de volatilidad como VIX, ajustar los parámetros de la estrategia o suspender la negociación durante la alta volatilidad.

  6. Introducción al aprendizaje automático: Parámetros de optimización dinámica de algoritmos de aprendizaje automático para mejorar la adaptabilidad de las estrategias a los cambios en el mercado.

  7. Aumento de filtros básicos: Combinación de datos básicos para permitir transacciones solo bajo ciertas condiciones básicas, mejorando la calidad de las transacciones.

Resumir

La estrategia de comercio de bandas de ondas múltiples es un sistema de comercio complejo que combina análisis técnico, teoría de la probabilidad y gestión de riesgos. Trata de capturar ganancias en la fluctuación de los precios a través de puntos de entrada de múltiples niveles y un método de acopio de tipo Martingale. La ventaja de la estrategia reside en su flexibilidad y el uso de la regresión al promedio, pero también en el riesgo en mercados de fuerte tendencia.

Para aplicar con éxito esta estrategia, los operadores necesitan una profunda comprensión de las características del mercado, establecer cuidadosamente los parámetros y aplicar una estricta gestión de riesgos. Con la optimización y la retroalimentación continuas, combinadas con la comprensión del mercado, esta estrategia tiene el potencial de ser una herramienta de negociación efectiva. Sin embargo, dada su complejidad y los riesgos potenciales, se recomienda realizar una prueba de simulación y una evaluación de riesgos adecuadas antes de la negociación en vivo.

En general, la estrategia de trading de bandas de ondas múltiples ofrece un marco interesante y desafiante para los operadores cuantitativos, y su aplicación exitosa requiere habilidades de análisis técnico, habilidades de gestión de riesgos y optimización estratégica continua.

Código Fuente de la Estrategia
/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © abtov

//@version=5
strategy("Spider Strategy", overlay=true)

ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "Bollinger Bands" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

stdev = input.int(56, "STDEV", group="Stdev")
mult = input.float(2.3, "Multiplier", group="Stdev")
ma_len = input.int(230, "Basis Length", group="Stdev")
ma_type = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Stdev")
auto_mult = input.bool(true, "Dynamic Mult.", group="Stdev")
basis_exit = input.bool(false, "Basis Exit", group="Stdev")

col_int = input.int(12, "Collective Value", group="Collective")
col_input = input.bool(true, "Collective Input", group="Collective")


fib1 = input.float(0.236, "Fibonacci Level 1", group = "Fibonacci")
fib2 = input.float(0.382, "Fibonacci Level 2", group = "Fibonacci")
fib3 = input.float(0.5, "Fibonacci Level 3", group = "Fibonacci")
fib4 = input.float(0.618, "Fibonacci Level 4", group = "Fibonacci")

atr_len = input.int(30, "ATR", group="ATR")
atr_bias = input.float(0.72, "Bias", group="ATR")

shares = input.int(1, "Shares Amount", group="Strategy")

if(col_input == true)
    stdev := col_int
    ma_len := col_int
    atr_len := col_int

if(auto_mult == true)
    mult := ma(ta.tr(true), atr_len, ma_type) * atr_bias


basis = ma(close, ma_len, ma_type)
lower = basis - stdev * mult
upper = basis + stdev * mult

lower2 = basis - stdev * mult * fib1
upper2 = basis + stdev * mult * fib1

lower3 = basis - stdev * mult * fib2
upper3 = basis + stdev * mult * fib2

lower4 = basis - stdev * mult * fib3
upper4 = basis + stdev * mult * fib3

lower5 = basis - stdev * mult * fib4
upper5 = basis + stdev * mult * fib4


var lowerAct = false
var lower2Act = false
var lower3Act = false
var lower4Act = false
var lower5Act = false

var upperAct = false
var upper2Act = false
var upper3Act = false
var upper4Act = false
var upper5Act = false


plot(upper, "limit short", color.red)
plot(upper2, "limit 1 short", color.red)
plot(upper3, "limit 2 short", color.red)
plot(upper4, "limit 3 short", color.red)
plot(upper5, "limit 4 short", color.red)
plot(basis, "basis", color.white)
plot(lower, "limit long", color.green)
plot(lower2, "limit 1 long", color.green)
plot(lower3, "limit 2 long", color.green)
plot(lower4, "limit 3 long", color.green)
plot(lower5, "limit 4 long", color.green)


if(lowerAct == false)
    if(close < lower)
        strategy.entry("long", strategy.long, shares)
        lowerAct := true
else
    if(low > basis)
        lowerAct := false


if(lower2Act == false)
    if(close < lower2)
        strategy.entry("long", strategy.long, shares)
        lower2Act := true
else
    if(low > basis)
        lower2Act := false


if(lower3Act == false)
    if(close < lower3)
        strategy.entry("long", strategy.long, shares)
        lower3Act := true
else
    if(low > basis)
        lower3Act := false


if(lower4Act == false)
    if(close < lower4)
        strategy.entry("long", strategy.long, shares)
        lower4Act := true
else
    if(low > basis)
        lower4Act := false


if(lower5Act == false)
    if(close < lower5)
        strategy.entry("long", strategy.long, shares)
        lower5Act := true
else
    if(low > basis)
        lower5Act := false





if(upperAct == false)
    if(close > upper)
        strategy.entry("short", strategy.short, shares)
        upperAct := true
else
    if(high < basis)
        upperAct := false


if(upper2Act == false)
    if(close > upper2)
        strategy.entry("short", strategy.short, shares)
        upper2Act := true
else
    if(high < basis)
        upper2Act := false


if(upper3Act == false)
    if(close > upper3)
        strategy.entry("short", strategy.short, shares)
        upper3Act := true
else
    if(high < basis)
        upper3Act := false


if(upper4Act == false)
    if(close > upper4)
        strategy.entry("short", strategy.short, shares)
        upper4Act := true
else
    if(high < basis)
        upper4Act := false


if(upper5Act == false)
    if(close > upper5)
        strategy.entry("short", strategy.short, shares)
        upper5Act := true
else
    if(high < basis)
        upper5Act := false


if((ta.crossover(close, basis) and basis_exit == true))
    strategy.close("short")
    strategy.close("long")