
Esta estrategia se llama estrategia cuantitativa de Bollinger basada en la reversión de la banda de fluctuación. La estrategia utiliza el alza y bajada de la banda de Bollinger para realizar compras y ventas. Se compra cuando el precio de la acción está cerca de la banda de fluctuación y hay signos de ruptura hacia abajo, lo que indica que el precio de la acción podría estar en el momento de la reversión; se vende cuando el precio de la acción sube hasta cerca de la banda de fluctuación, lo que indica que el precio de la acción podría revertirse hacia abajo.
La estrategia utiliza el indicador RSI para determinar el momento de comprar. En concreto, determina si el precio de cierre de la barra más reciente es inferior al precio mínimo de las 6 barras anteriores, mientras que el ancho de banda de Brin (BBW) es mayor que el umbral establecido y el índice de banda de Brin (BBR) se encuentra en el rango establecido. Si se cumplen estas condiciones, indica que el precio de la acción puede estar en un momento de reversión, en el que se abre una posición de compra.
La salida es más simple, cuando el RSI es mayor que 70, lo que indica que el precio de las acciones está demasiado caliente, y se vende una posición cerrada.
La mayor ventaja de esta estrategia es que utiliza el alza y bajada de la banda de Bollinger para juzgar, cuando la banda de Bollinger se invierte, se compra y se vende, se puede aprovechar la oportunidad de reversión a corto plazo. En comparación con la simple estrategia RSI, esta estrategia es más rigurosa en el momento de comprar y evitar la probabilidad de una transacción errónea.
Además, la estrategia es más sensible a los parámetros y se puede optimizar para diferentes variedades ajustando los parámetros de BBW, BBR, para obtener mejores resultados.
El principal riesgo de esta estrategia es que las bandas de Brin no pueden predecir un cambio de precio del 100%, y si se hace en el momento equivocado, es fácil que se produzcan situaciones de pérdidas o pérdidas virtuales.
Además, las fluctuaciones a corto plazo en el precio de las acciones pueden conducir a una estrategia de apertura y liquidación frecuentes, aumentando los costos de transacción y los costos de deslizamiento. Si la reversión no es lo suficientemente fuerte, existe el riesgo de liquidación con pérdidas.
La estrategia puede ser optimizada en los siguientes aspectos:
Parámetros de optimización. Se pueden probar y optimizar los parámetros BBW, BBR, etc. con métodos más precisos, para seleccionar los parámetros óptimos para diferentes variedades de transacciones.
Se puede configurar un stop móvil o un stop temporal para controlar la máxima pérdida.
Se puede combinar con otros indicadores, como KDJ, MACD, etc., para que la señal de compra sea más precisa y confiable.
Mecanismos de salida optimizados. Los mecanismos de salida actuales son más simples y se pueden optimizar, por ejemplo, estableciendo paradas móviles adecuadas o retirándose de una situación de fluctuación.
Esta estrategia utiliza las características de las bandas de Bollinger para determinar el momento en que los precios pueden invertir, comprar y vender. En comparación con un solo indicador como el RSI, esta estrategia determina el momento con mayor precisión.
/*backtest
start: 2022-11-15 00:00:00
end: 2023-11-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//study(title = "Bolinger strategy", overlay=true)
strategy("Bolinger strategy",currency="SEK",default_qty_value=10000,default_qty_type=strategy.cash,max_bars_back=50)
len = 5
src = close
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
bbw3level = input(15, title="bbw3")
bbr3level = input(0.45, title="bbr3level")
bbrlower = input(0.4480, title="bbrlower")
bbrhigher = input(0.4560, title="bbrhigher")
sincelowestmin = input(7, title="sincelowestmin")
sincelowestmax = input(57, title="sincelowestmax")
length = input(20, minval=1)
mult = 20
src3 = close[3]
basis3 = sma(src3, length)
dev3 = mult * stdev(src3, length)
upper3 = basis3 + dev3
lower3 = basis3 - dev3
bbr3 = (src3 - lower3)/(upper3 - lower3)
bbw3 = (upper3-lower3)/basis3*100
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
bbr = (src - lower)/(upper - lower)
bbw = (upper-lower)/basis*100
criteriamet = 0
crossUnderB0 = crossunder(bbr,0)
since_x_under = barssince(crossUnderB0)
sincelowest = barssince(close[6] > close[3] and close[5] > close[3] and close[4] > close[3] and close[2] > close[3] and close[1] > close[3] and close > close[3] and bbw3 > bbw3level and bbr3 < bbr3level) // and bbr3 < 0
if sincelowest > sincelowestmin and sincelowest < sincelowestmax and bbr > bbrlower and bbr < bbrhigher
criteriamet := 1
else
criteriamet := 0
//plot (criteriamet)
//exit
exitmet = 0
if rsi > 70
exitmet := 1
else
exitmet := 0
if criteriamet == 1
strategy.entry("long", strategy.long)
if exitmet == 1
strategy.close("long")