
A estratégia de negociação de ruptura visa capturar preços de ruptura causados pelo aumento da volatilidade do mercado. A estratégia usa o índice de variação média real (ATR) para medir a volatilidade do ativo em um determinado período. Quando o preço quebra as duas linhas de ruptura acima e abaixo, determinadas pelo ATR, geram sinais de fazer mais e fazer menos.
A estratégia primeiro calcula o ATR dentro do período especificado. Em seguida, calcula-se o uptrend e o downtrend com base no ATR. Quando o preço de fechamento se aproxima do uptrend, é gerado um sinal de cotação; quando o preço de fechamento se aproxima do downtrend, é gerado um sinal de cotação. Para confirmar ainda mais o sinal, é necessário que a parte da entidade de forma de linha K atual seja fechada.
Quando o preço de fechamento quebra o trajeto ascendente e descendente, preencha a cor da brecha na direção da quebra. Esta característica ajuda a identificar rapidamente a direção da tendência atual.
Quando um sinal de curto-circuito é gerado e não há uma posição atual, a estratégia abre uma posição. Quando um sinal de curto-circuito é gerado e não há uma posição atual, a estratégia abre uma posição.
O parâmetro de comprimento determina a duração do período de medida da volatilidade. Um valor de comprimento mais alto significa que você está atento às flutuações de preços mais longas. Por exemplo, quando o comprimento é 20, cada transação atravessa cerca de 100 linhas K, contendo várias flutuações.
Reduzir o valor de Length pode se concentrar nas flutuações de preços mais curtos, aumentando a frequência de negociação. Não há correspondência rígida entre o valor de Length e a duração média da negociação, e é necessário encontrar o valor de Length ideal por meio de tentativa e erro.
A estratégia usa o princípio da ruptura para capturar a maior parte do mercado. O indicador ATR calcula dinamicamente os pontos de ruptura, evitando o uso de parâmetros fixos.
O sinal de confirmação de linha K real é usado para filtrar brechas falsas. A cor de preenchimento de brechas mostra a direção da tendência.
Os parâmetros de comprimento fornecem flexibilidade para ajustar a estratégia e podem ser otimizados de acordo com o mercado específico.
O risco de arbitragem de uma transação de ruptura. Pode-se definir um stop loss para controlar a perda individual.
Um sinal de ruptura pode causar um erro de transmissão que pode levar a uma transação de linha ultra curta. O parâmetro Length pode ser ajustado de forma apropriada para eliminar o erro.
A otimização de parâmetros requer o acúmulo de dados de transação suficientes para apoiá-los. A escolha inadequada dos parâmetros iniciais pode levar a um mau desempenho das transações.
Pode ser introduzida a faixa de Brin dentro do ciclo ATR, como uma nova forma de calcular o ponto de ruptura. A ruptura da faixa de Brin reduz a taxa de falha.
Pode-se continuar a seguir a tendência após a ruptura, sem parar imediatamente. Por exemplo, a inclusão da tendência com a parada de perda.
Pode-se considerar o uso de parâmetros diferentes em mercados de turbulência ou não negociar de todo, para evitar ser coberto.
A estratégia de negociação de ruptura aproveita a volatilidade do mercado para entrar na tendência quando os preços produzem uma grande ruptura. A dinâmica do indicador ATR determina o ponto de ruptura, a linha K da entidade filtra as falsas rupturas. O parâmetro Length oferece flexibilidade para ajustar o ciclo da estratégia.
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
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/
//@version=5
strategy("Volatility Breakout Strategy [Angel Algo]", overlay = true)
// Inputs
length = input(title="Length", defval=20)
// Calculate the average true range (ATR)
atr = ta.atr(length)
// Plot the ATR on the chart
plot(atr, color=color.blue, linewidth=2, title="ATR")
// Calculate the upper and lower breakouts
upper_breakout = high + atr
lower_breakout = low - atr
// Plot the upper and lower breakouts on the chart
ul = plot(upper_breakout[1], color = color.new(color.green, 100), linewidth=2, title="Upper Breakout Level")
ll = plot(lower_breakout[1], color = color.new(color.red, 100), linewidth=2, title="Lower Breakout Level")
// Create the signals
long_entry = ta.crossover(close, upper_breakout[1]) and barstate.isconfirmed
short_entry = ta.crossunder(close, lower_breakout[1]) and barstate.isconfirmed
active_signal_color =ta.barssince(long_entry) < ta.barssince(short_entry) ?
color.new(color.green,85) : color.new(color.red,85)
// Plot the signals on the chart
plotshape(long_entry and ta.barssince(long_entry[1]) > ta.barssince(short_entry[1]), location=location.belowbar, style=shape.triangleup,
color=color.green, size=size.normal, text = "Bullish breakout", textcolor = color.green)
plotshape(short_entry and ta.barssince(long_entry[1]) < ta.barssince(short_entry[1]), location=location.abovebar, style=shape.triangledown,
color=color.red, size=size.normal,text = "Bearish breakout", textcolor = color.red)
// Fill the space between the upper and lower levels with the color that indicates the latest signal direction
fill(ul,ll, color=active_signal_color)
long_condition = long_entry and strategy.position_size <= 0 and barstate.isconfirmed
short_condition = short_entry and strategy.position_size >= 0 and barstate.isconfirmed
if long_condition
strategy.entry("Volatility Breakout Long", strategy.long)
if short_condition
strategy.entry("Volatility Breakout Short", strategy.short)