Estratégia de acompanhamento de oportunidades da EMA, Hull e RSI

Autora:ChaoZhang, Data: 2024-01-18 15:46:35
Tags:

img

Resumo

Esta estratégia constrói sinais de negociação com base em médias móveis, médias móveis de Hull e o índice de força relativa (RSI).

Estratégia lógica

  1. Calcular a média móvel exponencial (EMA) de 50 períodos como indicador para julgar a tendência.
  2. Calcule a média móvel de Hull de 7 dias como um indicador médio mais sensível e líder, atravessando a EMA para formar cruzes douradas e cruzes mortas.
  3. Defina a linha de sobrecompra e a linha de sobrevenda para o RSI em 60 e 45, respectivamente.
  4. Quando a sobrecompra ocorre ao mesmo tempo que uma penetração ascendente da EMA, é um sinal curto.
  5. Quando a sobrevenda ocorre ao mesmo tempo que uma penetração descendente da EMA, é um sinal longo.

Vantagens da estratégia

  1. Utiliza uma combinação de EMA, Hull e RSI para avaliar de forma abrangente as tendências do mercado, o ímpeto e as áreas de sobrecompra/supervenda, melhorando a precisão do sinal.
  2. A EMA avalia tendências de médio a longo prazo, o Hull lidera movimentos de curto prazo, o RSI identifica níveis de sobrecompra/supervenda.
  3. Os sinais de entrada devem satisfazer os critérios de tendência, dinâmica e zonas de sobrecompra/supervenda simultaneamente para desencadear, filtrando efetivamente os falsos sinais.

Riscos da Estratégia

  1. Usando apenas 3 indicadores pode perder algumas oportunidades de negociação.
  2. Os períodos EMA e Hull precisam de testes e otimização contínuos, seleções de parâmetros inadequadas podem afetar a qualidade do sinal.
  3. Os parâmetros do RSI também devem ser ajustados para diferentes ações e moedas que podem ter diferentes padrões de sobrecompra/supervenda.

Áreas de melhoria

  1. Podem ser introduzidos mais indicadores auxiliares, por exemplo, bandas de Bollinger, linhas de KC, etc., para criar uma tomada de decisão multi-resonância.
  2. Os parâmetros podem ser otimizados para diferentes produtos.
  3. A análise de prazos mais longos pode ser incorporada para evitar ser enganado por falsificações de curto prazo.
  4. As estratégias de stop loss podem ser implementadas para gerir o risco.

Resumo

Esta estratégia usa a combinação de EMA, Hull e RSI em todos os prazos para capturar oportunidades de negociação de médio e curto prazo. Os sinais de entrada devem atender a critérios de tendência, impulso e dimensões de sobrecompra / sobrevenda simultaneamente, a fim de filtrar sinais falsos. A estratégia pode ser melhorada através da otimização de parâmetros e introdução de mais indicadores auxiliares para melhorar a estabilidade e o desempenho comercial.


/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 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/
// © Bitduke

//@version=4
strategy(shorttitle="EHR", title="Simple EMA_Hull_RSI", overlay=false, 
     calc_on_every_tick=false, pyramiding=0, default_qty_type=strategy.cash, 
     default_qty_value=1000, currency=currency.USD, initial_capital=1000,
     commission_type=strategy.commission.percent, commission_value=0.075)

// EMA
len = input(minval=1, title="EMA Length", defval=50)
src = input(close, title="EMA Source")
final_ema = ema(src, len)
plot(final_ema, color=color.red, title="EMA")

overbought = input(60, title="overbought value")
oversold = input(45, title="oversold value")

overbought_signal = rsi(close, 14) > overbought
oversold_signal = rsi(close, 14) < oversold
barcolor(overbought_signal ? color.black : na)
barcolor(oversold_signal ? color.blue : na)
// Hull MA
n = input(title="Hull Length", defval=7)
n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))

n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))

n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?color.green:color.red
ma=plot(n1,color=c)

// Strategy Logic
longCondition =  overbought_signal and crossover(n1,final_ema) 
shortCondition = oversold_signal and crossover(final_ema,n1) 

strategy.entry("EHR_Long", strategy.long, when=longCondition)
strategy.entry("EHR_Short", strategy.short, when=shortCondition)


Mais.