Ehlers Fisher Transform Trading Estratégia

Autora:ChaoZhang, Data: 2024-01-08 16:51:10
Tags:

img

Resumo

Esta estratégia baseia-se no indicador Fisher Transform projetado pelo mestre de análise técnica John Ehlers para identificar automaticamente pontos de reversão da tendência de preços para negociação longa/curta.

Estratégia lógica

Esta estratégia usa a fórmula de transformação de Fisher para padronizar os preços e gerar uma sequência de preços de distribuição quase gaussiana. A fórmula de transformação de Fisher é: y = 0.5 * ln ((((1+x) /(1-x)). Através desta transformação, os extremos de preço são convertidos em eventos relativamente raros. Quando o último valor transformado de Fisher é maior / menor do que o período anterior, ele indica uma possível reversão de preço. A estratégia gera sinais de negociação com base nos pontos de virada deste indicador.

Especificamente, as etapas da estratégia são as seguintes:

  1. Calcular o preço médio HL2;
  2. Calcular o preço mais elevado xMaxH e o preço mais baixo xMinL durante o período de comprimento;
  3. Calcular o preço normalizado nValue1=(xHL2 - xMinL) / (xMaxH - xMinL) - 0,5;
  4. Para obter o nValue2, utilizar o nValue1 sem problemas, evitando extremos;
  5. Aplicar a fórmula de transformação de Fisher em nValue2 para obter o indicador de Fisher nFish;
  6. Comparar o nFish com o valor anterior para determinar se ocorreu uma virada e definir a direção de negociação pos;
  7. Estabelecer uma posição longa/curta com base no posicionamento para gerar sinais comerciais.

Análise das vantagens

A maior vantagem desta estratégia é a precisão e a atualidade de seus sinais de negociação. Como a seqüência de preços transformada por Fisher se aproxima de uma distribuição gaussiana, as reversões de preços podem ser rapidamente identificadas e reagidas pelo indicador Fisher. Isso garante capturas oportunas de oportunidades de reversão. Além disso, a própria transformação de Ehlers Fisher também foi amplamente validada para sinais de reversão altamente confiáveis.

Análise de riscos

O maior risco desta estratégia é que a sequência de preços transformada por Fisher pode não estar perfeitamente em conformidade com a distribuição teórica de Gauss.

Para mitigar este risco, podemos considerar a combinação de outros indicadores para filtragem de sinais, evitando negociações durante mercados anormais.

Orientações de otimização

Esta estratégia pode ser otimizada nos seguintes aspectos:

  1. Otimizar o parâmetro de comprimento para encontrar as melhores combinações para diferentes condições de mercado;
  2. Adicionar mecanismos de stop loss para limitar a queda;
  3. Adicionar filtros de negociação para evitar negociações incorretas em mercados anormais;
  4. Combinar com outros indicadores para melhorar a precisão do sinal.

Conclusão

Esta estratégia aproveita o indicador Ehlers Fisher Transform para identificar rapidamente e com precisão os pontos de reversão de preços para entradas de negociação oportunas. Sua maior força reside na precisão e pontualidade dos sinais de negociação.


/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version = 2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/12/2016
// 	Market prices do not have a Gaussian probability density function
// 	as many traders think. Their probability curve is not bell-shaped.
// 	But trader can create a nearly Gaussian PDF for prices by normalizing
// 	them or creating a normalized indicator such as the relative strength
// 	index and applying the Fisher transform. Such a transformed output 
// 	creates the peak swings as relatively rare events.
// 	Fisher transform formula is: y = 0.5 * ln ((1+x)/(1-x))
// 	The sharp turning points of these peak swings clearly and unambiguously
// 	identify price reversals in a timely manner. 
//
// 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="Fisher Transform Indicator by Ehlers Backtest", shorttitle="Fisher Transform Indicator by Ehlers")
Length = input(10, minval=1)
reverse = input(false, title="Trade reverse")
xHL2 = hl2
xMaxH = highest(xHL2, Length)
xMinL = lowest(xHL2,Length)
nValue1 = 0.33 * 2 * ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5) + 0.67 * nz(nValue1[1])
nValue2 =   iff(nValue1 > .99,  .999,
	         iff(nValue1 < -.99, -.999, nValue1))
nFish = 0.5 * log((1 + nValue2) / (1 - nValue2)) + 0.5 * nz(nFish[1])
pos = iff(nFish > nz(nFish[1]), 1,
	   iff(nFish < nz(nFish[1]), -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(nFish, color=green, title="Fisher")
plot(nz(nFish[1]), color=red, title="Trigger")

Mais.