La stratégie de rupture de la fourchette interne est une stratégie d'action de prix qui prend des décisions commerciales basées sur des modèles de barres internes. Elle se produit lorsque la gamme de la barre actuelle, mesurée par la différence entre le haut et le bas, est plus petite que celle de la barre précédente, indiquant une consolidation ou une indécision sur le marché. Une rupture au-dessus ou au-dessous du haut ou du bas de la barre précédente fournit un signal d'entrée potentiel dans le sens de la rupture.
La stratégie utilise les indicateurs et les variables suivants:
Les décisions d'entrée sont basées sur les ruptures de gamme au-delà des barres précédentes haut/bas. Plus précisément, l'entrée longue lorsque la rupture ascendante se produit et que le bas actuel est au-dessus de la liquiditéDown, et l'entrée courte lorsque la rupture descendante se produit et que le haut actuel est au-dessous de la liquiditéUp.
Le stop loss utilise l'ATR multiplié par la plage, le take profit utilise l'ATR multiplié par la plage.
Les avantages de cette stratégie sont les suivants:
Les risques de cette stratégie:
Les domaines d'optimisation:
La stratégie de rupture de gamme de barres intérieures capitalise sur l'expansion de la gamme de la consolidation en entrant lorsque le prix sort de la gamme de barres précédentes. Les niveaux de liquidité évitent d'être piégés. Des paramètres d'optimisation des paramètres et l'amélioration des filtres d'entrée permettent d'obtenir de bons résultats.
/*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)