A estratégia usa uma combinação de EMAs de atraso de hora zero e EMAs de casco para realizar o acompanhamento de tendências. A EMA de atraso de hora zero elimina o atraso do EMA normal, enquanto a EMA de casco suaviza a curva de preços. A combinação dos dois permite capturar com mais precisão a tendência e realizar transações de acompanhamento de tendências de baixo risco.
Primeiro, calculemos a EMA com atraso de zero horas:
EMA1 = ema(close, Period) EMA2 = ema(EMA1, Period) Difference = EMA1 - EMA2 ZeroLagEMA = EMA1 + Difference
Entre eles, o ZeroLagEMA é um EMA com atraso de zero horas. Ele elimina o atraso do EMA comum.
Em seguida, calcule a curva de Hull EMA após o alinhamento:
n2ma = 2*wma(ZeroLagEMA, round(S_period/2)) nma = wma(ZeroLagEMA, S_period) n1 = wma(n2ma - nma, sqn)
Finalmente, calcule a relação entre o tamanho do EMA de casco atual (n1) e o EMA de casco do período anterior (n2), determine a direção da tendência e estabeleça uma estratégia de negociação.
A maior vantagem dessa estratégia é a capacidade de capturar com precisão a direção das tendências.
O EMA de atraso de zero horas elimina o atraso do EMA normal e permite capturar mudanças de preço mais rapidamente.
O Hull EMA foi duplamente lisado, eliminando parte do ruído e tornando a tendência de captura mais clara.
Em comparação com o uso de EMA ou Hull EMA isoladamente, a combinação dos dois pode exercer suas respectivas vantagens, tornando a estratégia mais precisa e confiável.
A estratégia tem os seguintes riscos:
Period e S_period são parâmetros mal definidos, o que pode levar a uma estratégia insensível à reação do mercado, perdendo o momento de negociação.
Em situações de choque, a EMA e a EMA do casco podem produzir mais sinais de cruzamento, o que requer uma falsa ruptura de alerta.
A falta de um sistema de gestão eficaz para lidar com o aumento dos preços durante a noite.
Portanto, é necessário testar cuidadosamente a configuração dos parâmetros, observar com cuidado os sinais indicadores e evitar o risco de salto de preço.
A estratégia pode ser otimizada em:
Testar combinações de parâmetros de otimização em diferentes mercados e períodos de tempo, para que a estratégia seja mais adequada a diferentes situações.
Em combinação com outros indicadores de filtragem de falsos sinais de ruptura, como KDJ, MACD, etc., aumenta a estabilidade da estratégia.
Aumentar as estratégias de stop loss para controlar as perdas individuais.
Otimizar o timing de entrada, melhorando ainda mais a taxa de vitória da estratégia. Por exemplo, combinando a direção da tendência, evitando a abertura de posições contrárias.
A estratégia usa uma combinação de Hull EMAs com atraso de zero horas para capturar com precisão e agilidade as tendências do mercado e realizar transações de acompanhamento de tendências de forma de baixo risco. A estabilidade da estratégia pode ser aumentada ainda mais por meio de otimização de parâmetros, filtragem de indicadores e parada de perdas.
/*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: [email protected]
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)