A estratégia de negociação de volatilidade tem como objetivo capturar as quebras de preço resultantes do aumento da volatilidade do mercado. A estratégia usa o indicador Average True Range (ATR) para medir a volatilidade de um ativo durante um período especificado.
A estratégia primeiro calcula o ATR durante um período escolhido. Em seguida, usa o ATR para calcular um nível de ruptura superior e inferior. Quando o preço de fechamento quebra acima do nível superior, um sinal longo é gerado. Quando o preço de fechamento quebra abaixo do nível inferior, um sinal curto é gerado. Para confirmar ainda mais os sinais, a barra atual precisa fechar para sua parte do corpo.
Quando o preço de fechamento quebra os níveis superior ou inferior, a zona de ruptura é preenchida com uma cor que indica a direção da ruptura.
Quando um sinal longo é gerado e não há posição atual, a estratégia é longa.
A entrada de comprimento determina o período durante o qual a volatilidade é medida. Um valor de comprimento maior implica focar em movimentos de preço mais longos. Por exemplo, com comprimento definido em 20, cada negociação abrange cerca de 100 bares, capturando várias oscilações.
A redução do valor de comprimento permite direcionar movimentos de preços de curto prazo e potencialmente aumentar a frequência de negociação.
O indicador ATR calcula dinamicamente os níveis de ruptura em vez de usar parâmetros fixos.
Usando fechamentos de barras sólidas para confirmar sinais, filtra falsos breakouts.
A entrada de comprimento proporciona flexibilidade para otimizar a estratégia para condições específicas de mercado.
A negociação de breakout comporta o risco de ser interrompida.
Os sinais de ruptura podem gerar sinais falsos que levam a uma troca excessiva.
A otimização de parâmetros requer dados de negociação suficientes.
As bandas de Bollinger podem ser introduzidas dentro do período ATR para calcular novos níveis de ruptura.
As tendências podem ser acompanhadas depois das breakouts em vez de serem interrompidas imediatamente.
No mercado limitado a intervalos, podem ser considerados parâmetros diferentes ou evitar-se completamente os negócios para evitar os "whipsaws".
A estratégia de negociação de breakout de volatilidade capitaliza a volatilidade aumentada do mercado para entrar em movimentos de tendência quando os preços quebram significativamente. O indicador ATR define dinamicamente os níveis de breakout e as barras sólidas filtram falhas. A entrada de comprimento fornece flexibilidade para ajustar o período 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)