Estrategia de reversión de la media de la banda de Bollinger con índice de intensidad intradiaria

El autor:¿ Qué pasa?, Fecha: 2024-02-20 15:07:59
Las etiquetas:

img

Resumen general

Esta estrategia es una estrategia de reversión media basada en las bandas de Bollinger y el índice de intensidad intradiaria. Utiliza las rupturas de precios de las bandas de Bollinger superior e inferior, combinadas con el indicador de volumen del índice de intensidad intradiaria para determinar el momento de entrada. Las ventajas de esta estrategia incluyen: obtener ganancias de la reversión media de los precios y filtrar señales con indicadores de volumen.

Principio de la estrategia

La estrategia primero calcula la banda media, la banda superior y la banda inferior de las bandas de Bollinger. La banda media es el promedio móvil simple o promedio móvil exponencial del precio de cierre. Las bandas superior e inferior se construyen agregando / restando dos desviaciones estándar en la banda media. Cuando el precio atraviesa la banda inferior, se considera una oportunidad para la reversión media, tomando una posición larga. Cuando el precio atraviesa la banda superior, se considera una desviación excesiva de la media, tomando una posición corta.

Como indicador asistido para el juicio, la estrategia introduce el Índice de Intensidad Intradiaria. Este indicador combina información de precio y volumen. Cuando el índice es positivo, indica que el poder adquisitivo se está fortaleciendo, dando una señal larga. Cuando el índice es negativo, indica que el poder de venta se está fortaleciendo, dando una señal corta.

Para las posiciones de apertura, la estrategia requiere tanto la ruptura del precio de la banda de Bollinger Bands como el juicio del indicador del índice de intensidad intradiario.

Análisis de ventajas

La mayor ventaja de esta estrategia es la utilización de la inversión media de los precios a la ganancia. Cuando los precios tienen grandes desviaciones de la media, de acuerdo con las leyes estadísticas, la probabilidad de que los precios vuelvan a la media es relativamente grande. Esto proporciona la base teórica para las operaciones de la estrategia.

El índice de intensidad intradiaria es un indicador de volumen que permite filtrar las señales de precios, evitando así las señales erróneas generadas por algunas violentas fluctuaciones de precios con volúmenes bajos.

Análisis de riesgos

Aunque esta estrategia se basa en el evento de probabilidad de las reversiones de la media de precios, el movimiento aleatorio de los precios de mercado todavía puede desencadenar una parada de pérdida, lo que conduce a pérdidas.

Otro riesgo importante es que el proceso de reversión de los precios es un ciclo relativamente largo. Para los inversores, el capital puede mantenerse durante algún período de tiempo. Tal riesgo temporal puede hacer que los inversores pierdan otras mejores oportunidades de inversión.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Optimizar los parámetros de las bandas de Bollinger, ajustar las métricas de ciclo y desviación para adaptarse a la volatilidad de los diferentes mercados

  2. Pruebe otros tipos de promedios móviles, como promedio móvil ponderado para aumentar la suavidad

  3. Pruebe otros tipos de indicadores de volumen, buscando mejores señales de confirmación de volumen-precio

  4. Añadir estrategias de stop loss/profit taking, controlar la pérdida máxima por orden

Conclusión

En conclusión, esta estrategia es una estrategia típica de reversión de la media. Se beneficia de eventos de probabilidad, pero los riesgos son obvios también. Se pueden obtener mejores resultados mediante ajustes de parámetros y optimizaciones de indicadores. Pero para los inversores, reconocer los atributos correctamente de esta estrategia también es la clave.


/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/

// Bollinger Bands Strategy with Intraday Intensity Index
// by SparkyFlary

//For Educational Purposes
//Results can differ on different markets and can fail at any time. Profit is not guaranteed.
strategy(title="Bollinger Bands Strategy with Intraday Intensity Index", shorttitle="Bollinger Bands Strategy", overlay=true)

BBlength = input(20, title="Bollinger Bands length")
BBmaType = input("SMA", title="Bollinger Bands MA type", type=input.string, options=["SMA", "EMA"])
BBprice = input(close, title="source")
timeStop = input(10, title="Time-based stop length")
BBmult = input(2.0, title="Bollinger Bands Standard Deviation")
withIII = input(true, title="with Intraday Intensity Index?")
IIIlength = input(21, title="Intraday Intensity Index length")

//function for choosing moving averages
f_ma(type, src, len) =>
    float result = 0
    if type == "SMA"
        result := sma(src, len)
    if type == "EMA"
        result := ema(src, len)
    result

//Intraday Intensity Index
k1 = (2 * close - high - low) * volume
k2 = high != low ? high - low : 1
i = k1 / k2
iSum = sum(i, IIIlength)

//Bollinger Bands
BBbasis = f_ma(BBmaType, BBprice, BBlength)
BBdev = BBmult * stdev(BBprice, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev

plot(BBupper, title="Bollinger Bands Upper Line")
plot(BBlower, title="Bollinger Bands Lower Line")
plot(BBbasis, title="Bollinger Bands Mid line", color=color.maroon)

//Strategy
buy = close[1]<BBlower[1] and close>BBlower and (withIII ? iSum>0 : 1)
sell = close>BBbasis or buy[timeStop] or (strategy.openprofit>0 and buy==0 and buy[1]==0 and buy[2]==0 and buy[3]==0)
short = close[1]>BBupper[1] and close<BBupper and (withIII ? iSum<0 : 1)
cover = close<BBbasis or short[timeStop] or (strategy.openprofit>0 and short==0 and short[1]==0 and short[2]==0 and short[3]==0)

strategy.entry(id="enter long", long=true, when=buy)
strategy.close(id="enter long", comment="exit long", when=sell)
strategy.entry(id="enter short", long=false, when=short)
strategy.close(id="enter short", comment="exit short", when=cover)

Más.