Esta estratégia usa uma combinação de EMA de atraso zero e EMA de casco para implementar o seguimento da tendência.
Primeiro, calcule a EMA de atraso zero:EMA1 = ema(close, Period) EMA2 = ema(EMA1, Period) Difference = EMA1 - EMA2 ZeroLagEMA = EMA1 + Difference
Onde ZeroLagEMA é a EMA de atraso zero.
Calcule a curva suavizada Hull EMA:
```
n2ma = 2*wma(ZeroLagEMA, round(S_period/2))
nma = wma(ZeroLagEMA, S_period)
n1 = wma(n2ma - nma, sqn)
```
Finalmente, determinar a direcção da tendência com base na relação de magnitude entre a actual Hull EMA (n1) e a Hull EMA (n2) dos períodos anteriores e formular a estratégia de negociação.
A maior vantagem desta estratégia é a capacidade de capturar com precisão as direções da tendência.
A EMA de atraso zero elimina o problema de atraso da EMA regular e pode capturar mudanças de preço mais rapidamente.
A duplicação da EMA do casco suaviza os preços e filtra algum ruído para capturar as tendências com mais clareza.
Em comparação com a utilização da EMA ou da Hull EMA isoladamente, a combinação aproveita os pontos fortes de ambos para uma estratégia mais precisa e fiável.
Os principais riscos desta estratégia são:
As definições inadequadas dos parâmetros Periodo e S_period podem fazer com que a estratégia seja insensível ao mercado e perca oportunidades de negociação.
Em mercados variáveis, a EMA e a Hull EMA podem produzir mais falsos sinais de cruzamento que exigem cautela.
Não pode gerir eficazmente as diferenças de preços do dia para o dia.
Por conseguinte, é necessário um teste cuidadoso dos parâmetros, os sinais dos indicadores devem ser interpretados com prudência e os riscos de diferença de preços devem ser evitados.
A estratégia pode ser otimizada nos seguintes aspectos:
Combinações de parâmetros de ensaio em diferentes mercados e prazos para melhor adaptabilidade.
Adicionar outros indicadores para filtrar falsos sinais de ruptura, tais como KDJ, MACD etc., para melhorar a estabilidade.
Adicionar stop loss para controlar a perda de uma única transação.
Otimizar o tempo de entrada para melhorar ainda mais a taxa de ganhos, por exemplo, evitando negociações contrárias à tendência.
Esta estratégia usa o combo Zero Lag Hull EMA para capturar com precisão e sensibilidade as tendências do mercado para tendências de baixo risco após a negociação. Melhorias adicionais na estabilidade podem ser alcançadas através da otimização de parâmetros, filtragem de sinal, stop loss etc. No geral, a estratégia é simples, prática e adequada para pares e índices de moedas em tendência.
/*backtest start: 2023-08-19 00:00:00 end: 2023-09-18 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // Zero Lag EMA combined with Hull moving average for smoothing purposes. // author: email: sbginter@gmail.com strategy("Ujanja", overlay=true) Period = input(title="Period",defval=30, minval=1) S_period=input(title="Smoother Period",defval=176) EMA1= ema(close,Period) EMA2= ema(EMA1,Period) Difference= EMA1 - EMA2 ZeroLagEMA= EMA1 + Difference n2ma=2*wma(ZeroLagEMA,round(S_period/2)) nma=wma(ZeroLagEMA,S_period) diff=n2ma-nma sqn=round(sqrt(S_period)) n2ma1=2*wma(ZeroLagEMA[1],round(S_period/2)) nma1=wma(ZeroLagEMA[1],S_period) diff1=n2ma1-nma1 sqn1=round(sqrt(S_period)) n1=wma(diff,sqn) n2=wma(diff1,sqn) c=n1>n2?green:red ma=plot(n1,color=c) longCondition = n1>n2 if (longCondition) strategy.entry("Long", strategy.long) shortCondition = longCondition != true if (shortCondition) strategy.entry("Short", strategy.short)