Richard Bookstaber estratégia de ruptura

Autora:ChaoZhang, Data: 2023-11-02 15:12:46
Tags:

img

Resumo

A estratégia de ruptura de momento baseia-se no conceito proposto por Richard Bookstaber em 1984 de que, uma vez que há um grande movimento volátil, o mercado tende a segui-lo.

Estratégia lógica

A estratégia primeiro calcula o indicador ATR para medir a volatilidade do mercado. Em seguida, calcula o valor absoluto da mudança do preço de fechamento diário. Quando a mudança do preço de fechamento excede o valor ATR em vários múltiplos, são gerados sinais de negociação. Especificamente, se o preço de fechamento subir mais do que o trilho superior ATR, vá longo; se o preço de fechamento cair mais do que o trilho superior ATR, vá curto.

A estratégia usa o indicador ATR para determinar dinamicamente o limiar de ruptura. Quando a volatilidade do mercado aumenta, o limiar aumentará para reduzir os negócios errados. Quando a volatilidade do mercado diminui, o limiar diminuirá para capturar oportunidades de ruptura em tempo hábil.

Análise das vantagens

  • O ATR dinâmico de stop loss pode controlar efetivamente os riscos com o stop loss adaptativo com base na volatilidade do mercado.
  • Usar breakouts para gerar sinais de negociação pode capturar as rotações da tendência do mercado.
  • Grande espaço de otimização de parâmetros, pode ser ajustado para diferentes produtos e ciclos.
  • A lógica estratégica é simples e clara, fácil de compreender e implementar.

Análise de riscos

  • O indicador ATR reage lentamente a eventos repentinos, pode perder a fuga inicial.
  • Desequilibrado entre longo e curto, funciona significativamente melhor para um lado apenas do que para o comércio bidirecional.
  • Os parâmetros da estratégia são fáceis de adaptar, os resultados reais podem ser pobres.
  • Negociação frequente, custos de transacção podem ser elevados.

Considere a combinação de outros indicadores para selecionar oportunidades de negociação para melhorar a eficiência. Também selecione parâmetros ideais com base nas características do produto. Use técnicas como a Martingale para controlar a frequência de negociação.

Orientações de otimização

  • Considere a combinação de outros indicadores como RSI, MACD para determinar a direção da tendência e evitar negócios errados.
  • Pode adicionar um módulo de gestão de posições para ajustar as posições com base nas condições do mercado.
  • Pode selecionar conjuntos de parâmetros ideais para diferentes produtos.
  • Pode combinar técnicas de aprendizagem de máquina para otimizar automaticamente parâmetros.

Resumo

A estratégia de breakout de momento é simples e direta, gerando sinais de negociação a partir de breakouts. A estratégia de stop loss ATR permite que ela se adapte à volatilidade do mercado. A estratégia depende da otimização de parâmetros para resultados decentes. Mas também há alguns problemas como falta de breakouts iniciais, negociação frequente, etc. Mais melhorias por combinação com outras técnicas são necessárias para lucros estáveis em mercados complexos.


/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 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/
// © EduardoMattje

//@version=5
strategy("Volatility System", overlay=false, margin_long=0, margin_short=0, default_qty_type=strategy.percent_of_equity, 
 default_qty_value=100, process_orders_on_close=true, initial_capital=20000)

// Inputs

var averageLength = input.int(14, "Average length", 2)
var multiplier = input.float(2.0, "Multiplier", 0.0, step=0.1)

// Calculations

atr = ta.atr(averageLength) * multiplier
closingChange = ta.change(close, 1)

atrPenetration(int signal) =>
    res = closingChange * signal > atr[1]

longCondition = atrPenetration(1)
shortCondition = atrPenetration(-1)

// Order calls

if (longCondition)
    strategy.entry(strategy.direction.long, strategy.long)

if (shortCondition)
    strategy.entry(strategy.direction.short, strategy.short)

// Visuals

plot(atr, "ATR", color.white, 2)
plot(math.abs(closingChange), "Absolute close change", color.red)


Mais.