Estratégia de negociação de indicadores líderes da Ehlers

Autora:ChaoZhang, Data: 31 de outubro de 2023 14:13:30
Tags:

img

Resumo

Esta estratégia é baseada nas ideias do mestre de análise técnica John Ehlers, usando o Ehlers Leading Indicator para julgar o ciclo histórico dos preços e gerar sinais de compra e venda.

Princípio da estratégia

A estratégia calcula primeiro o Preço Sintético Detendido (DSP), que é obtido subtraindo o valor de um filtro Butterworth de 3a ordem de um filtro Butterworth de 2a ordem para obter uma função que esteja em fase com o ciclo dominante de dados de preços reais.

Em seguida, calcula o Indicador Líder de Ehlers (ELI), que é obtido subtraindo a média móvel simples do preço sintético desvalorizado do preço sintético desvalorizado em si, e pode dar uma indicação avançada de um ponto de virada cíclica.

Por fim, quando a linha ELI cruza o DSP, são gerados sinais de compra e venda.

Análise das vantagens

A maior vantagem desta estratégia é usar o Ehlers Leading Indicator para julgar pontos de virada nas tendências de preços com antecedência.

Além disso, a combinação do preço desvalorizado para a geração de sinais comerciais filtra informações de baixa frequência irrelevantes nos preços, tornando a estratégia mais focada em padrões cíclicos dos preços sem ser perturbada pelo ruído do mercado a curto prazo.

Riscos e otimização

O principal risco desta estratégia é a possibilidade de o ELI identificar incorretamente os sinais, resultando em entrada prematura e perdas.

Os comerciantes também devem notar que esta estratégia só se aplica a produtos com padrões cíclicos óbvios. Seria menos eficaz para produtos com movimentos caóticos de preços.

Os riscos podem ser gerenciados confirmando sinais com outros indicadores, ou ajustando o tamanho da posição e estratégias de stop loss.

Resumo

Esta estratégia identifica a ciclicidade nos preços usando o indicador Ehlers Leading Indicator, entrando em posições cedo antes do início de novos ciclos, tornando-se uma estratégia típica de tendência.


/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/03/2017
// This Indicator plots a single
// Daily DSP (Detrended Synthetic Price) and a Daily ELI (Ehlers Leading
// Indicator) using intraday data.
// Detrended Synthetic Price is a function that is in phase with the dominant
// cycle of real price data. This one is computed by subtracting a 3 pole Butterworth
// filter from a 2 Pole Butterworth filter. Ehlers Leading Indicator gives an advanced
// indication of a cyclic turning point. It is computed by subtracting the simple
// moving average of the detrended synthetic price from the detrended synthetic price.
// Buy and Sell signals arise when the ELI indicator crosses over or under the detrended
// synthetic price.
// See "MESA and Trading Market Cycles" by John Ehlers pages 64 - 70. 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading
////////////////////////////////////////////////////////////
strategy(title="D_ELI (Ehlers Leading Indicator)", shorttitle="D_ELI (Ehlers Leading Indicator)")
Length = input(7, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=red, linestyle=line)
xHL2 = request.security(syminfo.tickerid, 'D', hl2)
xEMA1 = ema(xHL2, Length)
xEMA2 = ema(xHL2, 2 * Length)
xEMA1_EMA2 = xEMA1 - xEMA2
xResultEMA = ema(xEMA1_EMA2, Length)
nRes = xEMA1_EMA2 - xResultEMA
pos = iff(nRes > 0, 1,
	     iff(nRes < 0, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(request.security(syminfo.tickerid, "D", xEMA1_EMA2), color=blue, title="D_DSP")
plot(request.security(syminfo.tickerid, "D", nRes), color=green, title="D_ELI")

Mais.