A estratégia de negociação de volatilidade é uma estratégia baseada em ação de preço única. Ela gera sinais de compra e venda analisando mudanças de preço e volume. Esta estratégia também pode ser combinada com alertas para desencadear ordens em outras bolsas ou sistemas.
Esta estratégia analisa os preços de fechamento, abertura, alto e baixo dos candelabros para determinar as tendências e o ímpeto dos preços.
Especificamente, verifica se os preços de fechamento dos três candelabros mais recentes são continuamente mais altos ou mais baixos do que os preços de abertura.
Além disso, essa estratégia rastreia o volume máximo durante um determinado período. Se o volume do candelabro atual exceder o valor máximo durante o período recente, sugere um volume de negociação crescente e forças fortes entrando no mercado.
Quando o preço quebra em três velas consecutivas e o volume de negociação se expande, a estratégia produzirá sinais de compra ou venda.
Trata-se de uma estratégia simples, mas eficaz, que utiliza ações de preços e sinais de volume.
Há também alguns riscos potenciais:
Para mitigar esses riscos, pode-se considerar a adição de stop loss móveis, a otimização de combinações de parâmetros ou a combinação com outros indicadores ou estratégias.
Como estratégia básica, ainda há muito espaço para otimização:
Em conclusão, esta é uma estratégia baseada na ação de preço muito prática. Tem os méritos de ser intuitivo, fácil de entender e implementar a baixos custos. Enquanto isso, também tem certa cegueira e precisa de mais otimizações e combinações para melhorar o desempenho.
/*backtest start: 2022-12-04 00:00:00 end: 2023-03-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("SPAS", overlay=true, pyramiding=5, calc_on_order_fills=true) int signal_hh = 0 int signal_ll = 0 if close[1] >= open[1] and close[2] >= open[2] and close[3] >= open[3] signal_hh := 1 if close[1] <= open[1] and close[2] <= open[2] and close[3] <= open[3] signal_ll := 1 plotchar(signal_hh, char='H', size=size.tiny, location=location.abovebar) plotchar(signal_ll, char='L', size=size.tiny, location=location.abovebar) int signal_vol = 0 float max_volume = 0.0 int vol_length = input(title="Volume length", type=input.integer, defval=3) for i = vol_length to 1 if volume[i] > max_volume max_volume := volume[i] if volume[0] > max_volume signal_vol := 1 plotchar(signal_vol, char='V', size=size.tiny, location=location.bottom) int signal_buy = 0 int signal_sell = 0 if signal_hh and signal_vol signal_buy := 1 label.new(bar_index, high, "B", color=color.green) strategy.entry("buy", strategy.long, 5)//, when=strategy.position_size <= 0) if signal_ll and signal_vol signal_sell := 1 label.new(bar_index, low, "S", color=color.red) strategy.entry("sell", strategy.short, 5)//, when=strategy.position_size > 0) //plotchar(signal_buy, char='B', color=color.green, size=size.tiny, location=location.abovebar) plotarrow(signal_buy, colorup=color.green, colordown=color.orange, transp=0, maxheight=20) //plotchar(signal_sell, char='S', color=color.red, size=size.tiny, location=location.abovebar) plotarrow(signal_sell * -1, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)