O recurso está a ser carregado... Carregamento...

Estratégia de teste de retrocesso da Fisher Transform

Autora:ChaoZhang, Data: 2023-12-04 13:43:05
Tags:

img

Resumo

A estratégia de backtest da Transformação de Fisher calcula a transformação de Fisher dos preços para identificar pontos de reversão de preços e gerar sinais de negociação em conformidade. A estratégia processa preços usando a fórmula de transformação de Fisher para remover características não-gaussianas das distribuições de preços, resultando em um indicador padronizado com uma distribuição gaussiana aproximada. A estratégia determina reversões de preços com base em pontos de inflexão da curva de transformação de Fisher e produz sinais longos e curtos.

Princípio da estratégia

O núcleo desta estratégia é processar preços usando a fórmula da transformação de Fisher para eliminar características não gaussianas das distribuições de preços naturais.

y = 0,5 * ln (((1+x) / (((1-x))

Aqui x é o preço processado, obtido primeiro encontrando os preços mais altos e mais baixos nos períodos de comprimento mais recentes usando as funções mais altas e mais baixas, e depois normalizando da seguinte forma:

x = (preço - mínimo) / (máximo - mínimo) - 0,5

Os preços processados dessa forma aproximam-se de uma distribuição gaussiana. x é então substituído na fórmula de transformação de Fisher para obter a curva de transformação de Fisher.

Quando a curva de transformação de Fisher passa de positiva para negativa, um sinal de venda é gerado.

Análise das vantagens

  1. A transformação de Fisher remove características não gaussianas dos preços, resultando em preços mais bem comportados e padronizados e menos sinais falsos

  2. Captura pontos de reversão de preços, evitando perseguir altos e baixos

  3. Ajuste flexível dos parâmetros para a sensibilidade de inversão de regulação

  4. Direcionalidade personalizável, adapta-se a vários ambientes de mercado

  5. Lógica simples, fácil de entender e implementar

Análise de riscos

  1. Ajustes de parâmetros incorretos podem perder curvas ou gerar sinais falsos

  2. O deslizamento na negociação ao vivo pode impedir a execução perfeita do sinal

  3. Difícil de identificar voltas quando os preços são voláteis

  4. Difícil de aplicar na negociação ao vivo com necessidade de confirmar reversões

Soluções:

  1. Optimize os parâmetros ajustando o comprimento

  2. Relaxar os critérios de entrada adequadamente para garantir preenchimentos

  3. Filtrar sinais falsos que combinem outros indicadores

  4. Seguir rigorosamente as regras e gerir os riscos

Orientações de otimização

  1. Optimize o parâmetro de comprimento para encontrar a melhor combinação

  2. Adicionar filtros para evitar sinais falsos, por exemplo, médias móveis, indicadores de volatilidade, etc.

  3. Incorporar o stop loss para controlar a perda por transação

  4. Adicionar um mecanismo de reentrada para acompanhar as tendências contínuas

Conclusão

A estratégia Fisher Transform backtest identifica pontos de reversão de preços removendo características de preços não gaussianas. É uma estratégia de reversão média facilmente implementável. Suas vantagens estão em parâmetros flexíveis para capturar voltas, enquanto sua principal fraqueza é a dificuldade de implementação ao vivo com a necessidade de regras de entrada rígidas. Vários métodos podem ser usados para otimizar essa estratégia para aplicabilidade prática.


/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version = 2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v2.0 22/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. 
//
//  For signal used zero. 
// 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")
hline(0, color=blue)
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 > 0, 1,
	   iff(nFish < 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(nFish, color=green, title="Fisher")
plot(nz(nFish[1]), color=red, title="Trigger")

Mais.