Estratégia de ruptura dentro da faixa de barras

Autora:ChaoZhang, Data: 2023-12-11 15:16:53
Tags:

img

Resumo

A estratégia de breakout dentro do intervalo de barra é uma estratégia de ação de preço que toma decisões de negociação com base em padrões dentro da barra.

Estratégia lógica

A estratégia utiliza os seguintes indicadores e variáveis:

  • Intervalo real médio (ATR): o intervalo real médio ao longo dos últimos N bares calculado com a função ATR.
  • Intervalo: a diferença entre o alto e o baixo da barra de corrente.
  • insideBar: Uma variável booleana que é verdadeira se o intervalo da barra atual for menor que a barra anterior, indicando uma barra interna.
  • breakoutUp: Uma variável booleana que é verdadeira se o close for maior que o bars anterior, indicando um breakout ascendente.
  • breakoutDown: Uma variável booleana que é verdadeira se close for menor que o mínimo da barra anterior, indicando uma breakout descendente.
  • LiquidityUp: Máxima alta acima dos N bares anteriores, representando uma área de resistência potencial.
  • liquidez para baixo: Nível mais baixo do que os N bares anteriores, representando uma área de suporte potencial.

As decisões de entrada baseiam-se em breakouts de faixa além dos altos/baixos anteriores.

Stop loss usa ATR multiplicado por Range. Take profit usa ATR multiplicado por Range.

Análise das vantagens

As vantagens desta estratégia incluem:

  1. Captura a oportunidade de negociação da expansão do intervalo após a consolidação da barra interna.
  2. Evita ficar preso combinando a direcção da fuga e os níveis de liquidez.
  3. Regras claras de stop loss e take profit, fáceis de implementar.
  4. Forte direccionalidade, alta chance de atingir a meta de lucro após a ruptura do impulso.

Análise de riscos

Riscos desta estratégia:

  1. Usar stop loss razoável para limitar o valor da perda.
  2. Ajuste o período ATR para garantir a distância de parada adequada.
  3. Otimizar o período de revisão para refinar os critérios de entrada.
  4. Redução do multiplicador de lucro para a meta razoável.

Orientações de otimização

Áreas de otimização:

  1. Determinar o período ATR ideal para o máximo de desempenho.
  2. Teste diferentes multiplicadores de perda de parada para a distância ideal de parada.
  3. Teste diferentes multiplicadores de lucro para equilibrar tamanho e probabilidade.
  4. Otimizar o período de revisão para uma melhor precisão dos níveis de liquidez.
  5. Adicione filtros como volume para melhorar o tempo de entrada.
  6. Incorporar indicadores de tendência para adicionar tendência seguinte.

Resumo

A estratégia de breakout dentro do intervalo de barras capitaliza a expansão do intervalo da consolidação, entrando quando o preço sai da faixa de barras anteriores. Os níveis de liquidez evitam ficar presos. As configurações razoáveis de stop loss e take profit permitem montar o impulso após a quebra para atingir a meta de lucro. A estratégia pode produzir bons resultados em prazos intermediários.


/*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)

Mais.