Estrategia de seguimiento inteligente de Doble B


Fecha de creación: 2024-01-18 15:41:20 Última modificación: 2024-01-18 15:41:20
Copiar: 2 Número de Visitas: 539
1
Seguir
1617
Seguidores

Estrategia de seguimiento inteligente de Doble B

Esta es una estrategia de negociación que utiliza el indicador de las bandas de Brin para identificar los momentos de fuerte fluctuación de los precios y tomar decisiones de compra o venta en consecuencia.

Principio de estrategia

La estrategia determina si el precio actual se encuentra en el rango de fluctuación para determinar el momento de abrir o cerrar una posición mediante el cálculo de las líneas de trayectoria superior, media y inferior de la banda de Bryn. Cuando el precio se acerca a la trayectoria superior, se considera como una zona de extremo de múltiples, la estrategia opta por vender una posición cerrada; cuando el precio se acerca a la trayectoria inferior, se considera como una zona de extremo de cabeza vacía, la estrategia opta por comprar una posición.

Además, la estrategia también introduce un factor de reversión de tendencia, que si se produce una señal de reversión, también desencadena una decisión de compra o venta correspondiente. En concreto, la lógica de la estrategia es la siguiente:

  1. Cálculo de las vías superiores, medias y inferiores de la banda de Bryn
  2. Determinar si el precio ha roto la órbita y las señales de inversión
    1. La ruptura de la órbita media como señal de tendencia
    2. Como señal de retorno cerca de la vía ascendente o descendente
  3. Emitir una orden de compra, venta o liquidación

Esta es la lógica de negociación básica de la estrategia. Utilizando las características de las bandas de Brin, combinadas con la tendencia y el factor de reversión, la estrategia trata de tomar el punto de reversión para negociar cuando la volatilidad se intensifica.

Ventajas estratégicas

En comparación con la estrategia de promedio móvil común, la estrategia tiene las siguientes ventajas:

  1. El precio de la carne de vacuno en el mercado mundial ha aumentado de forma exponencial en los últimos años, lo que ha permitido a los productores de carne de vacuno en todo el mundo.
  2. Al mismo tiempo, combina tendencias y factores de reversión para evitar pérdidas de reversión prematura.
  3. Tiene un efecto FILTER para evitar que las transacciones sean inútiles en zonas no fluctuantes
  4. Reducir el número de transacciones al determinar la dirección de las tendencias principales a través de la vía media
  5. Aumentar las condiciones de filtración inversa para reducir la probabilidad de error

En general, la estrategia combina muy bien las bandas de Brin y el juicio de las entidades de precios, para operar en los puntos de inflexión razonables, garantizando un cierto nivel de ganancias y controlando el riesgo.

Riesgo y optimización

Sin embargo, la estrategia también tiene sus riesgos, que se manifiestan principalmente en:

  1. Los parámetros de la banda de Bryn no están configurados correctamente para capturar las fluctuaciones de los precios
  2. Indicador de giro inexacto, error de giro o error de giro
  3. Cuando la tendencia no es clara, la señal de la vía media no funciona bien.

En consecuencia, en el futuro se puede optimizar en los siguientes aspectos:

  1. Optimización de los parámetros de la banda de Bryn según los parámetros de las diferentes variedades
  2. Aumentar la probabilidad de reversión de los juicios de los modelos de aprendizaje automático
  3. Cuando no se ve la tendencia, cambia a otros indicadores
  4. El precio de las monedas de divisas es el precio de las monedas de divisas.

Resumir

En general, esta estrategia es una típica plantilla de estrategia de comercio de la franja de Brin. Evita los inconvenientes de la mayor cantidad de operaciones ineficaces que se pueden generar fácilmente con el uso de la franja de Brin. Al introducir un juicio de reversión de tendencia para filtrar eficazmente las señales, en teoría se puede obtener un mejor rendimiento de la estrategia.

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

//Noro
//2018

//@version=3
strategy("Noro's Bollinger Strategy v1.2", shorttitle = "Bollinger str 1.2", overlay = true )

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")

length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(2.0, defval = 2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")

uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")

fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
showbands = input(true, defval = true, title = "Show Bollinger Bands")

//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev

//Lines
col = showbands ? black : na 
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)

//Body
body = abs(close - open)
abody = ema(body, 30)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0 
up1 = bar == -1 and close >= basis and close < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and close <= basis and close > lower and (close > strategy.position_avg_price or strategy.position_size == 0) and uset
up2 = close <= lower and usect
dn2 = close >= upper and usect
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open) and body > abody / 2

//Trading
if up1 or up2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

if dn1 or dn2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    
if exit
    strategy.close_all()