La estrategia se llama
La estrategia utiliza el indicador RSI para determinar entradas largas. Específicamente, verifica si el precio de cierre de la barra más reciente es menor que el precio más bajo de las 6 barras anteriores, mientras tanto, el ancho de banda de Bollinger (BBW) es mayor que un umbral y la relación de banda de Bollinger (BBR) está dentro de un rango. Si se cumplen estos criterios, indica que el precio puede estar invirtiendo, así que vaya largo.
La salida es sencilla. Cuando el RSI supera los 70, lo que indica que el precio está sobrecalentado, cierra la posición larga.
La mayor ventaja de esta estrategia es utilizar los rieles superiores e inferiores de las bandas de Bollinger para determinar las entradas. Cuando BB invierte la dirección, vaya largo o corto para atrapar oportunidades de reversión a corto plazo. En comparación con las estrategias simples de RSI, esta estrategia tiene criterios más prudentes para las entradas, evitando así operaciones incorrectas.
Además, la estrategia es sensible a los parámetros. Al ajustar BBW y BBR, se puede optimizar para diferentes productos y lograr mejores resultados.
El principal riesgo es que BB no predice perfectamente las reversiones de precios. Si el momento no es apropiado, fácilmente conduce a perder las mejores entradas o pérdidas flotantes.
Además, las fluctuaciones a corto plazo pueden desencadenar entradas y salidas frecuentes, aumentando los costos de las comisiones y deslizamientos.
La estrategia puede mejorarse en los siguientes aspectos:
Optimiza los parámetros: prueba y ajusta BBW, BBR y otros parámetros con mayor precisión para diferentes productos.
Añadir mecanismos de stop loss, como los de stop loss trasero y stop loss temporal, para limitar las pérdidas máximas.
Incorporar otros indicadores, como KDJ y MACD, para hacer que las entradas sean más confiables.
Mejorar la lógica de salida. La salida actual es simple. Puede optimizar con la obtención de ganancias o salidas basadas en la volatilidad.
Esta estrategia utiliza las características de las bandas de Bollinger para determinar puntos de reversión potenciales para entradas y salidas. En comparación con indicadores individuales como el RSI, tiene un tiempo más preciso. Con el ajuste de parámetros, stop losses y take profits, puede ser más confiable. Pero la predicción de BB
/*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")