Estrategia de negociación de índices basada en el canal de bandas de Bollinger


Fecha de creación: 2023-12-08 16:52:24 Última modificación: 2023-12-08 16:52:24
Copiar: 0 Número de Visitas: 667
1
Seguir
1621
Seguidores

Estrategia de negociación de índices basada en el canal de bandas de Bollinger

Descripción general

Esta estrategia se llama estrategia de comercio cuantitativo de la banda de Brin, y es una estrategia de comercio de índices y acciones basada en la mejora de los canales de la banda de Brin. La estrategia optimiza las posiciones largas y cortas al mismo tiempo mediante el ajuste de los parámetros de la banda de Brin, lo que permite obtener ganancias en los mercados de fluctuación.

Principio de estrategia

La lógica central de la estrategia se basa en el corredor de la banda de Brin. La banda de Brin se compone de un eje central, un eje superior y un eje inferior, el eje central es el promedio móvil de los precios de cierre de n días, el eje superior y el eje inferior son los desvíos respectivamente del eje central y el eje inferior. Cuando el precio se acerca al eje superior, representa que el mercado puede estar demasiado caliente, lo que generará oportunidades aéreas; cuando el precio se acerca al eje inferior, representa que el mercado puede estar infravalorado, lo que generará oportunidades aéreas múltiples.

Esta estrategia utiliza dos bandas de Brin, Brin 1 para hacer más y Brin 2 para hacer vacío. Los parámetros de Brin 1 están optimizados, con una longitud de 25 y una desviación de 2,9 veces; Los parámetros de Brin 2 también están optimizados, con una longitud de 36 y una desviación de 3,2 veces.

Análisis de las ventajas

En comparación con la estrategia tradicional de la franja de Bryn, esta estrategia tiene las siguientes ventajas:

  1. Se ha logrado un intercambio bilateral multispacio. Se puede utilizar en escenarios bilaterales para aprovechar las oportunidades de intercambio en diferentes fases del mercado.

  2. Los parámetros se optimizan. Los parámetros de los dos juegos de bandas de Brin se prueban minuciosamente para emitir señales de negociación efectivas.

  3. El riesgo es controlado. El método de parada móvil permite controlar eficazmente el riesgo unilateral.

Análisis de riesgos

La estrategia también tiene algunos riesgos potenciales:

  1. Riesgo de fallo de la correa de Bryn. La correa de Bryn puede fallar cuando el mercado está en una situación de gran volatilidad.

  2. El stop loss está cubierto por el riesgo. El stop loss móvil puede ser cubierto, lo que ampliará las pérdidas. Se puede tolerar el stop loss adecuadamente o evitar el stop loss a tiempo.

  3. El riesgo de una frecuencia de transacción excesiva. La configuración de los parámetros es demasiado sensible y puede conducir a un aumento de los costos de transacción debido a la frecuencia de las transacciones.

Dirección de optimización

La estrategia aún tiene espacio para ser mejorada:

  1. En combinación con otros indicadores de filtración de señales, evita el error de transacción cuando el binario falla. Por ejemplo, la forma de la línea K, el volumen de transacciones, etc.

  2. Ajuste dinámico de los parámetros para adaptar las franjas de Brin a las características del mercado en diferentes períodos. Por ejemplo, la adopción de franjas de Brin adaptables.

  3. Optimización de los métodos de detención de pérdidas, como el seguimiento de las pérdidas o el movimiento de las pérdidas por índice, para controlar eficazmente el riesgo.

  4. Combinación de algoritmos de aprendizaje automático para optimizar los parámetros.

Resumir

Esta estrategia general se basa en el canal de la banda de Brin, a través de la optimización de los parámetros, se logra la optimización de las operaciones bilaterales a corto y largo plazo. En comparación con la estrategia tradicional de la banda de Brin, tiene ventajas en el control de riesgos y de hacer más de la brecha, se aplica a la captura de oportunidades en diferentes fases del mercado, y tiene un cierto valor práctico. Pero también existe el riesgo de que la banda de Brin sea ineficaz, detener los pérdidas, etc.

Código Fuente de la Estrategia
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=4
strategy("BB NDX strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, calc_on_every_tick = true, commission_type = strategy.commission.percent, commission_value = 0.01)

source = close
length = input(25, minval=1, title="Length BB long")
mult = input(2.9, minval=0.001, maxval=50, step=0.1, title="MULT BB long")

length2 = input(36, minval=1, title="Length BB short")
mult2 = input(3.2, minval=0.001, maxval=50, step=0.1, title="MULT BB short")


basis = sma(source, length)
dev = mult * stdev(source, length)
dev2 = mult2 * stdev(source, length2)

upper = basis + dev2
lower = basis - dev

buyEntry = crossover(source, lower)
sellEntry = crossunder(source, upper)

longEntry=input(true)
shortEntry=input(true)

g(v, p) => round(v * (pow(10, p))) / pow(10, p)
risk     = input(100)
leverage = input(1.0, step = 0.5)
c = g((strategy.equity * leverage / open) * (risk / 100), 4)


tplong=input(0.065, step=0.005, title="Take profit % for long")
sllong=input(0.04, step=0.005, title="Stop loss % for long")
tpshort=input(0.025, step=0.005, title="Take profit % for short")
slshort=input(0.04, step=0.005, title="Stop loss % for short")

if(longEntry)
    strategy.entry("long",1,c,when=buyEntry)
    strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT',  alert_message = 'closeshort')
    strategy.close("long",when=sellEntry)
if(shortEntry)
    strategy.entry("short",0,c,when=sellEntry)
    strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT',  alert_message = 'closeshort')
    strategy.close("short",when=buyEntry)