La estrategia de ruptura del rango de barras internas es una estrategia de acción de precios que toma decisiones comerciales basadas en patrones de barras internas. Ocurre cuando el rango de la barra actual, medido por la diferencia entre alto y bajo, es menor que el de la barra anterior, lo que indica consolidación o indecisión en el mercado.
La estrategia utiliza los siguientes indicadores y variables:
Las decisiones de entrada se basan en las rupturas del rango más allá de los altos/bajos de las barras anteriores. Específicamente, la entrada larga cuando ocurre una ruptura ascendente y el mínimo actual está por encima de la liquidezBajo, y la entrada corta cuando ocurre una ruptura descendente y el máximo actual está por debajo de la liquidez.
El stop loss utiliza el ATR multiplicado por el rango.
Las ventajas de esta estrategia incluyen:
Riesgos de esta estrategia:
Áreas de optimización:
La estrategia de breakout dentro del rango de barras capitaliza en la expansión del rango de la consolidación al entrar cuando el precio se rompe fuera del rango de barras anteriores. Los niveles de liquidez evitan quedar atrapados. Los ajustes razonables de stop loss y take profit permiten manejar el impulso después de la ruptura para alcanzar el objetivo de ganancia. La estrategia puede producir buenos resultados en plazos intermedios. Se pueden lograr ventajas y robustez del sistema mediante la optimización de parámetros y la mejora de los filtros de entrada.
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ilikelyrics560 //@version=5 strategy("Inside Bar Range Breakout Strategy", overlay=true) // Inputs lookback = input.int(20, "Lookback Period", minval=1) atrMult = input.float(1.5, "ATR Multiplier", step=0.1) atrLen = input.int(14, "ATR Length", minval=1) slMult = input.float(2, "Stop Loss Multiplier", step=0.1) tpMult = input.float(3, "Take Profit Multiplier", step=0.1) // Variables atr = ta.atr(atrLen) Range = high - low insideBar = Range < Range[1] breakoutUp = close > high[1] breakoutDown = close < low[1] liquidityUp = ta.highest(high, lookback) liquidityDown = ta.lowest(low, lookback) longEntry = breakoutUp and low > liquidityDown shortEntry = breakoutDown and high < liquidityUp longExit = close < low[1] shortExit = close > high[1] // Plotting plot(liquidityUp, "Liquidity Up", color.new(color.green, 30), 1) plot(liquidityDown, "Liquidity Down", color.new(color.red, 30), 1) bgcolor(longEntry ? color.new(color.green, 30) : na, title="Long Entry") bgcolor(shortEntry ? color.new(color.maroon, 30) : na, title="Short Entry") // Trading if (longEntry) strategy.entry("Long", strategy.long) strategy.exit("Long Exit", "Long", stop=low - slMult * atr, limit=high + tpMult * atr) if (shortEntry) strategy.entry("Short", strategy.short) strategy.exit("Short Exit", "Short", stop=high + slMult * atr, limit=low - tpMult * atr)