Estratégia de negociação de Ehlers baseada na transformação de Fisher


Data de criação: 2024-01-08 16:51:10 última modificação: 2024-01-08 16:51:10
cópia: 1 Cliques: 1062
1
focar em
1664
Seguidores

Estratégia de negociação de Ehlers baseada na transformação de Fisher

Visão geral

Esta estratégia é baseada no indicador de conversão de Fisher, concebido pelo mestre da análise técnica John Ehlers, para identificar automaticamente os pontos de reversão da tendência de preços e realizar negociações automáticas de posições longas e curtas. Sua maior vantagem reside na precisão e no tempo de identificação das reversões de preços.

Princípio da estratégia

Esta estratégia utiliza a fórmula de conversão de Fischer para padronizar os preços, gerando uma sequência de preços com uma distribuição Gaussian aproximada. A fórmula de conversão de Fischer é: y = 0,5 * ln (((1+x) / ((1-x))). Através desta conversão, é possível converter o valor máximo de preços para eventos relativamente mais raros. Quando o valor da última conversão de Fischer é maior ou menor que o do período anterior, indica que uma reversão de preços pode ocorrer.

A estratégia é a seguinte:

  1. Calcular o preço médio HL2;
  2. Calcule o valor máximo xMaxH e o mínimo xMinL no período de Length;
  3. Calcule o preço padronizado nValue1 = ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5;
  4. Processar nValue1 de forma suave, obtendo nValue2, evitando extremos;
  5. Aplicar a fórmula de conversão de Fisher para nValue2 e obter o indicador de conversão de Fisher nFish;
  6. Comparar o nFish com o valor do período anterior para determinar se ocorreu uma reversão e definir a direção do negócio;
  7. A partir da direção do posicionamento de uma posição vazia, é emitido um sinal de negociação.

Análise de vantagens

A maior vantagem desta estratégia reside na precisão e na oportunidade dos seus sinais de negociação. Uma vez que a sequência de preços produzida pela conversão de Fischer é aproximadamente compatível com a distribuição de Gauss, o indicador de conversão de Fischer é capaz de identificar rapidamente e reagir adequadamente quando ocorre uma reversão de preço. Isso garante a captura oportuna de oportunidades de reversão.

Análise de Riscos

O maior risco desta estratégia é que a sequência de preços após a conversão de Fischer não é necessariamente de acordo com a distribuição de Gauss da teoria da racionalidade. Quando o mercado apresenta flutuações anormais, como fendas, saltos e outras situações, isso pode levar o indicador de conversão de Fischer a emitir um sinal errado. Neste momento, se continuar a negociar mecanicamente, pode causar maiores perdas.

Para reduzir esse risco, pode-se considerar a filtragem de sinais de negociação em combinação com outros indicadores, evitando que ainda haja negociação em situações anormais no mercado. Ou pode-se ajustar adequadamente os parâmetros, reduzindo a frequência de negociação e o tamanho dos perdas individuais.

Direção de otimização

A estratégia pode ser melhorada em alguns aspectos:

  1. Optimizar os parâmetros de Length para encontrar a combinação de parâmetros mais adequada em diferentes condições de mercado;
  2. Aumentar os mecanismos de suspensão de perdas e limitar os prejuízos individuais;
  3. Aumentar a filtragem de transações para evitar transações erradas em mercados anormais;
  4. Combinação de estratégias com outros indicadores para melhorar a precisão do sinal.

Resumir

Esta estratégia é baseada no indicador de conversão de Fisher, projetado por Ehlers, que permite identificar com rapidez e precisão os pontos de reversão de preços, de modo a aproveitar as oportunidades de negociação em tempo hábil. Sua maior vantagem reside na precisão e no tempo dos sinais de negociação. Ao mesmo tempo, existe um certo risco, que requer otimização dos parâmetros e das regras de negociação para reduzir o risco.

Código-fonte da estratégia
/*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")