Estratégia de tendência baseada no cruzamento da SMA HULL e da EMA

Autora:ChaoZhang, Data: 2023-10-30 12:32:38
Tags:

img

Resumo

Esta estratégia gera sinais de compra e venda, calculando o cruzamento entre a linha da média móvel suavizada HULL e a linha da média móvel exponencial para determinar a direção da tendência do mercado.

Estratégia lógica

  1. Calcule a média móvel suavizada HULL (HULL SMA) de 5 períodos.

  2. Calcule a média móvel exponencial (EMA) de 5 períodos. A EMA dá mais peso aos preços recentes e é mais sensível do que a SMA no acompanhamento da tendência.

  3. Gerar sinais de compra e venda com base no cruzamento entre o HULL SMA e o EMA.

  • Quando a SMA HULL cruza acima da EMA, é gerado um sinal de compra, indicando que a tendência de curto prazo rompe acima da tendência de longo prazo, sugerindo um movimento de preços para cima.

  • Quando a SMA HULL cruza abaixo da EMA, é gerado um sinal de venda, indicando a tendência de curto prazo para baixo, sugerindo um movimento de preços para baixo.

  1. Usar a SMA HULL como linha rápida e a EMA como linha lenta para determinar as alterações nas tendências de curto e médio prazo com base no cruzamento, gerando sinais de negociação.

Análise das vantagens

  1. A SMA HULL é sensível às alterações de preços e pode detectar alterações de tendência mais cedo.

  2. A EMA suaviza o ruído do mercado e acompanha as tendências a longo prazo.

  3. Os sinais de cruzamento captam pontos de virada da tendência em tempo hábil.

  4. Os parâmetros podem ser ajustados para diferentes prazos de negociação.

  5. Captura as tendências ascendentes e descendentes de forma flexível.

Análise de riscos

  1. Podem ocorrer mais sinais falsos durante os mercados de gama.

  2. Incapacidade de determinar a força da tendência, pode levar a perdas repetidas em tendências fracas.

  3. Os movimentos de preços entre os intervalos de medição podem ser ignorados.

  4. Configurações incorretas de parâmetros afetam a qualidade do sinal.

  5. A alta frequência de negociação aumenta os custos e os riscos de deslizamento.

As melhorias podem ser feitas através de filtragem de sinais, avaliação da força da tendência, otimização de parâmetros, gestão de riscos, etc.

Orientações de otimização

  1. Adicione indicadores como MACD, RSI para confirmação do sinal.

  2. Incorporar indicadores de força da tendência como o ADX para evitar a negociação de tendências fracas.

  3. Otimizar os parâmetros da média móvel para as melhores combinações.

  4. Implementar stop loss para controlar a perda de uma única transação.

  5. Gerenciar a frequência e os custos do comércio.

  6. Incorporar análises de vários prazos para identificar tendências transversais.

  7. Desenvolver programas de otimização de parâmetros automáticos.

Resumo

Esta estratégia julga a tendência com base no cruzamento entre a SMA HULL rápida e a EMA lenta. É um sistema típico de cruzamento da média móvel. Em comparação com as médias móveis tradicionais, a SMA HULL mais responsiva fornece detecção mais cedo da mudança de tendência. Mas os parâmetros e indicadores suplementares devem ser otimizados para reduzir os falsos sinais. Com a gestão adequada do risco e do dinheiro, esta estratégia pode ser um sistema eficiente de tendência de médio prazo.


/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("HULL EMA Crossover", overlay = true, process_orders_on_close = true)

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © spiritedPerson95700

inSession = true


HULL_INP = input.int(5, "Hull EMA Value")
EMA_INP = input(5, "EMA Value")

/// Indicator
HULL_EMA = ta.hma(close, HULL_INP)
EMA = ta.ema(close, EMA_INP)

prevSignal = ''
if (prevSignal == '')  
    prevSignal := HULL_EMA > EMA ? 'buy' : 'sell'

/// buy and sell signal
buy = ta.crossover(HULL_EMA, EMA)
short = ta.crossover(EMA, HULL_EMA)

sell = short
cover = buy

if inSession
    if buy 
        prevSignal := 'na'
        strategy.entry("long", direction = strategy.long, comment = "Buy")

    if sell
        prevSignal := 'na'
        strategy.close("long", comment = "Sell")

    if short
        strategy.entry("short", direction = strategy.short, comment = "Short")

    if cover
        strategy.close("short", comment = "Cover")


plot(HULL_EMA, color = color.green)
plot(EMA, color = color.blue)

// if ( hour(time) == 15 and minute(time) > 25  )  
//     strategy.close("long", comment="EOD")
//     strategy.close("short", comment="EOD")
//     buy := false
//     sell := false
//     prevSignal := ''


Mais.