Tendência seguindo a estratégia baseada na média móvel do casco e no intervalo verdadeiro

Autora:ChaoZhang, Data: 2024-01-15 15:26:08
Tags:

img

Resumo

A ideia central desta estratégia é identificar as direções da tendência do mercado combinando a média móvel de Hull e a faixa média verdadeira (ATR), e entrar em posições depois que a direção da tendência for confirmada. Especificamente, ele calcula a diferença entre as médias móveis de Hull de um determinado período e o período anterior. Quando a diferença aumenta, indica uma tendência de alta; quando a diferença diminui, indica uma tendência de baixa. Ao mesmo tempo, o índice ATR é usado para determinar a amplitude.

Estratégia lógica

Esta estratégia baseia-se principalmente em dois tipos de indicadores: média móvel do casco e ATR.

A média móvel de Hull é um indicador de tendência desenvolvido pelo comerciante americano de futuros Alan Hull. Semelhante às médias móveis, a média móvel de Hull tem maior sensibilidade e pode capturar mudanças de preço e tendências mais rapidamente. A estratégia define um parâmetro ajustável hullLength para controlar o período da média móvel de Hull.

A estratégia define parâmetros como atrLength e atrSmoothing para controlar o cálculo do ATR. E o ATR é traçado no gráfico como uma referência para as entradas.

Especificamente, a lógica estratégica é:

  1. Calcular a MA do casco do período em curso (HullLength) e a MA do casco do período anterior.
  2. Calcular a diferença: hullDiff = currentHullMA - previousHullMA
  3. Quando o hullDiff > 0, indica uma tendência de alta, quando o hullDiff < 0, indica uma tendência de baixa.
  4. Calcular o ATR (atrLength) de um período como referência de amplitude.
  5. Quando for identificada uma tendência de alta e o ATR > preço > preço dos períodos atrLength anteriores, vá para longo.
  6. Utilize o valor positivo/negativo do hullDiff para determinar sinais de aproximação.

Análise das vantagens

As vantagens desta estratégia:

  1. Combinando o julgamento da tendência e o índice de volatilidade, pode entrar em posições quando a tendência dos preços é clara e a volatilidade aumenta para evitar flutuações nos mercados de faixa.
  2. A Hull MA responde mais rapidamente às alterações de preços e pode identificar rapidamente novas direcções de tendência.
  3. O ATR reflete a volatilidade e a temperatura do mercado, fornecendo orientações para os horários de entrada.
  4. Múltiplos parâmetros ajustáveis podem ser otimizados para as melhores combinações de parâmetros.

Análise de riscos

Alguns riscos desta estratégia:

  1. Tanto o Hull MA como o ATR não podem evitar completamente falsas fugas e, portanto, corre o risco de ficarem presos.
  2. As definições inadequadas dos parâmetros podem conduzir a um excesso de negociação ou a uma sensibilidade insuficiente, prejudicando a eficácia da estratégia.
  3. Não pode lidar com ações violentas de preços como picos bruscos ou quedas de forma eficaz.

Soluções:

  1. Configure o stop loss adequado para evitar ser preso por falsas fugas.
  2. Teste e otimize os parâmetros para se adequarem aos diferentes ambientes de mercado.
  3. Suspenda a estratégia quando enfrentar uma volatilidade violenta.

Orientações de otimização

Ainda há muito espaço para otimização:

  1. Teste diferentes parâmetros de comprimento do casco para encontrar as configurações ideais para os mercados actuais.
  2. Testar combinações de períodos ATR para melhor captar o calor do mercado.
  3. Tente diferentes métodos de suavização ATR para ver qual é o melhor.
  4. Otimizar as condições de entrada com outros indicadores de volatilidade, como a reação combinada com o ATR.
  5. Optimize o stop loss para evitar ficar preso.

Conclusão

Esta estratégia integra a capacidade de seguir a tendência do Hull MA e a capacidade de julgamento de calor do ATR. Ele entra em posições quando a tendência é confirmada e a volatilidade aumenta para filtrar alguns sinais inválidos. Uma melhoria adicional pode ser alcançada por otimização de parâmetros e melhor gerenciamento de riscos.


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

//@version=3
//                                                Hull cross and ATR
strategy("Hull cross and ATR", shorttitle="H&ATR", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0)
keh=input(title="Hull Length",defval=50)
length = input(title="ATR Length", defval=50, minval=1)
smoothing = input(title="ATR Smoothing", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"])
p=input(ohlc4,title="Price data")
n2ma=2*wma(p,round(keh/2))
nma=wma(p,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(p[1],round(keh/2))
nma1=wma(p[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
ma_function(source, length) => 
    if smoothing == "RMA"
        rma(p, length)
    else
        if smoothing == "SMA"
            sma(p, length)
        else
            if smoothing == "EMA"
                ema(p, length)
            else
                wma(p, length)
plot(ma_function(tr(true), length), title = "ATR", color=black, transp=50)
closelong = n1<n2
if (closelong)
    strategy.close("buy")
closeshort = n1>n2
if (closeshort)
    strategy.close("sell")
if (ma_function(tr(true), length)<p and p>p[length] and n1>n2)
    strategy.entry("buy", strategy.long, comment="BUY")
if (ma_function(tr(true), length)>p and p<p[length] and n1<n2)
    strategy.entry("sell", strategy.short, comment="SELL")

Mais.