A estratégia de volatilidade do ATR para o impulso de ruptura

Autora:ChaoZhang, Data: 2024-01-12 13:50:44
Tags:

img

Resumo

Esta estratégia utiliza uma combinação de média móvel simples, dupla estratégia de média móvel, complementada pelo índice de volatilidade ATR para determinar a volatilidade do mercado. Quando a linha média de curto prazo cruza acima da linha média de longo prazo, ela é determinada como um mercado de touros e uma posição longa é tomada. Quando a linha média de curto prazo cruza abaixo da linha média de longo prazo, ela é determinada como um mercado de ursos e uma posição curta é tomada. Ao mesmo tempo, a confiabilidade do sinal da média móvel é julgada combinando o preço médio ponderado por volume VWAP. Além disso, o indicador RSI é incorporado para evitar reversões.

Princípio da estratégia

O núcleo é a estratégia de média móvel dupla. A estratégia de média móvel dupla normalmente seleciona uma média móvel de curto prazo e uma média móvel de longo prazo, como a média móvel de 50 dias e a média móvel de 200 dias. Um sinal de compra é gerado quando a média móvel de curto prazo cruza acima da média móvel de longo prazo. Um sinal de venda é gerado quando a média móvel de curto prazo cruza abaixo da média móvel de longo prazo.

Esta estratégia seleciona a média móvel de 50 dias como a média móvel de curto prazo e a média móvel de 200 dias como a média móvel de longo prazo. Combinado com o preço médio ponderado pelo volume VWAP para determinar a confiabilidade do sinal da média móvel. Ou seja, apenas entre no mercado quando o sinal da média móvel estiver alinhado com o VWAP. Isso filtra alguns sinais falsos.

Além disso, o indicador RSI é incorporado para evitar overbuying e overselling.

Por fim, a amplitude média de flutuação do indicador ATR é usada para determinar a volatilidade e o nível de risco do mercado. Quando o valor ATR é maior que 1,18, ele é definido como alta volatilidade. Neste ponto, alterando a cor de fundo, o risco maior é solicitado e a negociação pode ser evitada temporariamente até que a volatilidade diminua.

Análise das vantagens

As principais vantagens desta estratégia refletem-se em três aspectos:

  1. A média móvel dupla capta o ponto de virada da tendência de médio e longo prazo no mercado e utiliza a negociação de tendência para obter lucros relativamente elevados.

  2. Combinar VWAP para filtrar sinais falsos e melhorar a confiabilidade do sinal.

  3. Introdução do indicador RSI para evitar a negociação contra o mercado, o que pode reduzir as perdas.

  4. A aplicação do índice de volatilidade ATR para determinar as condições de risco de mercado evita períodos de alta volatilidade, que podem reduzir as perdas.

  5. A combinação de vários indicadores é simples e fácil de compreender e implementar, adequada para a entrada quantitativa na negociação.

Análise de riscos

Esta estratégia tem também alguns riscos:

  1. A solução é reduzir o ciclo da média móvel para acelerar a velocidade de reação do indicador.

  2. O VWAP pode ter erros, resultando na filtragem de sinais de negociação corretos.

  3. No final da tendência, o RSI pode permanecer na área de sobrecompra/supervenda por um longo tempo, perdendo o ponto de virada da reversão da tendência.

  4. A solução é combinar o preço mais alto, o preço mais baixo, etc. para determinar a volatilidade do mercado.

  5. O rendimento pode não satisfazer as expectativas e os parâmetros devem ser ajustados em conformidade.

Direcção de otimização

Ainda há muito espaço para otimização nesta estratégia:

  1. Teste mais combinações de médias móveis para encontrar parâmetros ideais.

  2. Adicione mais indicadores auxiliares aos sinais de filtragem, como MACD, KDJ etc.

  3. Otimizar os parâmetros de stop loss e take profit para reduzir perdas e aumentar lucros.

  4. Avaliar a diferença nas estratégias de negociação entre ações fortes e fracas para a modelagem de classificação.

  5. Incorporar algoritmos de aprendizagem de máquina, como RNN, para otimizar automaticamente parâmetros e avaliar estratégias.

  6. Desenvolver sistemas de negociação automatizados e conectar a negociação ao vivo para backtesting.

Resumo

Em geral, esta estratégia é uma estratégia de rastreamento de tendências relativamente simples. O núcleo usa médias móveis duplas para determinar tendências de longo e curto prazo. Combina o VWAP e o RSI para processar sinais e aplicar o ATR para avaliar riscos. A ideia da estratégia é simples e fácil de entender e operar. Através de algum espaço de otimização, bons retornos podem ser obtidos.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Simple Moving Averages", overlay=true)

sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)
vwap = ta.vwap(close)
rsi = ta.rsi(close, 14)
[diPlus, diMinus, adx_val] = ta.dmi(14, 14)
atr_val = ta.atr(14)

plot(sma50, color=color.new(color.green, 0))
plot(sma200, color=color.new(color.red, 0))
plot(vwap)

longCondition = ta.crossover(sma50, sma200) and vwap > close
shortCondition = ta.crossunder(sma50, sma200) and vwap < close

if (longCondition)
    strategy.entry("Long", strategy.long)
    
if (shortCondition)
    strategy.entry("Short", strategy.short)

barcolor = sma50 > sma200 ? (vwap < close ? (rsi < 70 ? color.green : color.blue) : color.yellow) : (sma50 < sma200 ? (vwap > close ? (rsi > 30 ? color.red : color.orange) : color.yellow) : na)
barcolor(barcolor)
bgcolor(adx_val > 25 and atr_val > 1.18 ? color.new(color.gray, 50) : color.new(color.black, 50), transp=90)

// ADX and ATR Label Box
// label.new(bar_index, high, "ADX: " + str.tostring(adx_val, "#.##") + "\nATR: " + str.tostring(atr_val, "#.##"), color=color.new(color.white, 0), textcolor=color.new(color.black, 0), style=label.style_labeldown, yloc=yloc.price, xloc=xloc.bar_index, size=size.small, textalign=text.align_left)

// Exit conditions (optional)
strategy.close("Long", when = ta.crossunder(sma50, sma200))
strategy.close("Short", when = ta.crossover(sma50, sma200))

// Take Profit and Stop Loss
takeProfitPercentage = 5
stopLossPercentage = 3

strategy.exit("Take Profit / Stop Loss", "Long", profit = takeProfitPercentage, loss = stopLossPercentage)
strategy.exit("Take Profit / Stop Loss", "Short", profit = takeProfitPercentage, loss = stopLossPercentage)

Mais.