Estratégia de negociação de média móvel ATR adaptativa

Autora:ChaoZhang, Data: 2023-11-02 16:51:14
Tags:

img

Resumo

Esta estratégia combina o indicador de média móvel ATR adaptável e o seguimento da tendência para descobrir tendências no mercado e negociar ao longo da tendência. Ele usa a média móvel Hull para suavizar o ATR e formar médias móveis ATR suaves, em seguida, gera sinais de negociação com base na relação do preço com as médias móveis ATR. As médias móveis ATR podem efetivamente filtrar o ruído do mercado e identificar tendências significativas. A estratégia também define pontos de stop loss fixos e obtém lucro para controlar a relação risco / recompensa por negociação.

Estratégia lógica

O indicador central desta estratégia é a média móvel ATR. A ATR é uma importante ferramenta de medição de volatilidade, que mede a volatilidade do mercado e as flutuações de preços.

Especificamente, a estratégia primeiro calcula True Range, que é a diferença entre os preços altos e baixos do dia, e a diferença máxima entre o fechamento anterior e o preço mais alto/baixo atual.

Depois de calcular as médias móveis ATR, a estratégia compara o preço com as médias móveis ATR. Quando o preço cruza acima da média móvel ATR, ele sinaliza uma tendência de alta, e a estratégia vai longa.

Além disso, os intervalos fixos de stop loss e take profit são definidos após cada negociação. Quando o preço atinge o nível de stop loss, o comércio é interrompido. Quando o preço atinge o nível de take profit, o lucro é tomado. Isso limita a perda e bloqueia o lucro para cada negociação.

Em resumo, esta estratégia combina médias móveis ATR adaptativas e uma gestão rigorosa do risco para seguir tendências significativas e controlar as perdas por transação, a fim de alcançar um crescimento constante dos lucros.

Análise das vantagens

As principais vantagens desta estratégia são:

  1. Utilização de médias móveis ATR adaptativas para identificar efetivamente tendências significativas e filtrar o ruído do mercado para evitar ficar preso.

  2. Aplicar o método da média móvel Hull para calcular as médias móveis ATR mais suaves, evitando ser enganado por flutuações de alta frequência.

  3. Estabelecer um stop loss e um take profit fixos para limitar as perdas por transação e bloquear os lucros, garantindo a relação risco/recompensa.

  4. A tendência de seguir o estilo de negociação pode continuar a capturar tendências e aumentar o potencial de lucro.

  5. Uma lógica simples e clara, fácil de compreender, configurações flexíveis de parâmetros adequadas a diferentes produtos e mercados.

  6. Pode ser aplicado em qualquer produto para seguir a tendência.

Análise de riscos

Os principais riscos desta estratégia são:

  1. Possibilidade de sinais falsos das médias móveis ATR. Os preços podem flutuar violentamente e causar erros nos sinais das médias móveis ATR.

  2. Apertar perda sendo muito apertado aumenta a chance de ser parado fora.

  3. Considerar o take profit dinâmico baseado no ATR.

  4. Preço súbito de picos atingindo stop loss. necessidade de pausa de negociação durante tais eventos para evitar grandes perdas.

  5. A falha em sair em tempo hábil quando a tendência se inverte pode levar a perdas da tendência reversa.

  6. Os parâmetros necessitam de otimização para diferentes produtos e mercados, caso contrário, podem afetar o desempenho da estratégia.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Otimizar os parâmetros da média móvel ATR, incluindo o período ATR e os parâmetros de suavização, que afetam a média móvel ATR.

  2. Optimize a estratégia de stop loss e take profit. Considere paradas e metas dinâmicas baseadas no ATR, em vez de valores fixos.

  3. Adicionar regras para determinar a reversão da tendência, combinando outros indicadores, para evitar ser preso por reversões.

  4. Testar e otimizar parâmetros para diferentes produtos e ambientes de mercado para encontrar parâmetros ideais.

  5. Adicionar a detecção de eventos extremos, pausar a negociação quando ocorrem enormes picos de preços para controlar a perda.

  6. Optimize o tempo de entrada, considere entrar em retrações em vez de fugas para reduzir o risco.

  7. Optimização da combinação de parâmetros, teste de diferentes combinações de período ATR e parâmetros de suavização para encontrar a melhor correspondência.

Conclusão

Em resumo, esta estratégia usa médias móveis ATR adaptativas para identificar tendências e negocia as tendências com stop loss e take profit fixos. As médias móveis ATR identificam efetivamente tendências, e as paradas e alvos fixos controlam o risco / recompensa. As vantagens são lógica simples e clara, fáceis de entender, adaptáveis a diferentes produtos através do ajuste de parâmetros. Mas os riscos incluem sinais falsos, existem configurações de stop loss incorretas. Melhorias futuras podem ser feitas através da otimização dos parâmetros da média móvel ATR, estratégias de stop loss / take profit, adição de detecção de reversão de tendência etc. para melhorar ainda mais a estratégia de desempenho.


/*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"}]
*/

//@version=3
strategy("ATR(Hull)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= false, calc_on_every_tick=true, pyramiding=0)
length = input(title="Length", defval=14, minval=1)
price = input(close)
SL = input(50, title="Stop loss")
TP = input(150, title="Take profit")
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12) 
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) 
FromYear = input(defval = 2018, title = "From Year", minval = 2017) 
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) 
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) 
ToYear = input(defval = 9999, title = "To Year", minval = 2017) 
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) 
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) 
window() => true
p=price[1]
func_hma(style, length)=>
    return = wma((2*wma(p,length/2))-wma(p,length),round(sqrt(length)))
ATR=func_hma(tr(true), length)    
plot(ATR[0], title="ATR1",color=green,transp=0)
plot(ATR[1], title="ATR2",color=red,transp=0)
if (ATR>ATR[1])
    strategy.entry("long",strategy.long,comment="Long",when=window())
if (ATR<ATR[1])
    strategy.entry("short",strategy.short,comment="Short",when=window())
//strategy.close_all(when=strategy.openprofit<-eqSL and window())
//strategy.close_all(when=strategy.openprofit>eqTP and window())
strategy.exit("exit", "long", profit = TP, loss = SL)
strategy.exit("exit", "short", profit = TP, loss = SL)

Mais.