Volatilidad del momentum siguiendo la estrategia


Fecha de creación: 2023-11-28 16:57:28 Última modificación: 2023-11-28 16:57:28
Copiar: 1 Número de Visitas: 630
1
Seguir
1619
Seguidores

Volatilidad del momentum siguiendo la estrategia

Descripción general

La estrategia es una estrategia de seguimiento de la dinámica de las fluctuaciones del mercado basada en las bandas de Brin. Combina los indicadores de las bandas de Brin para determinar las tendencias del mercado y los puntos de inflexión, y sigue las fluctuaciones del mercado mediante la configuración de posiciones de más de un lado.

Principio de estrategia

El indicador central de la estrategia es la banda de Brin. La banda de Brin se compone de la media, la media y la media. La media es una media móvil de n días, la media y la media es la desviación de la diferencia estándar de la media y la media.

La estrategia incorpora al mismo tiempo posiciones de construcción de tendencia y posiciones de construcción de reversión, que corresponden a diferentes oportunidades de negociación. La construcción de posición de tendencia requiere que la trayectoria media actúe como referencia de resistencia de soporte, lo que crea un efecto de desviación de ruptura.

Análisis de las ventajas

La estrategia combina las características de sobrecompra y sobreventa de las bandas de Brin con el criterio de punto de inflexión. Esto permite que se aplique simultáneamente en mercados de tendencia y en mercados de convulsión, capturando diferentes tipos de oportunidades de negociación. La configuración de Exit Stop Loss de la estrategia evita que las pérdidas se extiendan.

En comparación con la estrategia simple de la banda de Bryn, el juicio lógico de la tendencia incluida en esta estrategia hace que la posición sea más estable, y al mismo tiempo aprovecha las oportunidades de reversión. Esto mejora la relación de confianza-ruido. En segundo lugar, la negociación bidireccional de múltiples espacios también aprovecha de manera más completa las oportunidades de negociación en diferentes mercados.

Análisis de riesgos

La estrategia depende principalmente de las características de sobrecompra y sobreventa de las bandas de Brin. Por lo tanto, cuando los precios fluctúan fuertemente, los intervalos de las bandas de Brin aumentan continuamente, lo que puede conducir a múltiples pérdidas en las operaciones. Este es un punto de riesgo potencial. Además, el juicio inverso sigue teniendo cierta incertidumbre y errores, lo que puede causar pérdidas y pérdidas en las operaciones.

En caso de fallo de la banda de Brin, se puede reducir el parámetro de n días para que la banda de Brin sea más sensible. O reducir su amplitud para reducir la posibilidad de causar pérdidas. Para el juicio de la curva de reversión, se puede reducir el error optimizando los parámetros de la ruptura.

Dirección de optimización

La estrategia se puede optimizar en las siguientes áreas:

  1. Los parámetros de la cinta de Brin se pueden ajustar según los diferentes mercados para encontrar la combinación óptima de parámetros.
  2. La magnitud de la desviación de la tendencia y el método de cálculo de la media pueden ser probados en otras opciones.
  3. Añadir más filtros para juzgar las señales de construcción de la bodega, reduciendo la probabilidad de error.
  4. Se pueden probar otros modos de deterioro, como el deterioro del sendero.
  5. Se pueden ajustar los parámetros para una variedad o ciclo específico.

Resumir

La estrategia es una extensión y optimización efectiva de la estrategia estándar de las bandas de Bryn. La inclusión de un juicio de desviación de tendencia mejora la estabilidad y aprovecha las oportunidades de reversión. La configuración de comercio bidireccional y de parada de pérdidas también hace que la estrategia sea más robusta.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy("Noro's Bollinger Strategy v1.3", shorttitle = "Bollinger str 1.3", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)

//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 ohlc4 >= basis and ohlc4 < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and ohlc4 <= basis and ohlc4 > 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, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1 or dn2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()