Stratégie de test arrière de la transformation de Fisher

Auteur:ChaoZhang est là., Date: 2023-12-04 13:43:05 Je vous en prie.
Les étiquettes:

img

Résumé

La stratégie de backtest de la transformation de Fisher calcule la transformation de Fisher des prix pour identifier les points d'inversion des prix et générer des signaux de trading en conséquence.

Principe de stratégie

Le noyau de cette stratégie est de traiter les prix en utilisant la formule de transformation de Fisher pour éliminer les caractéristiques non gaussiennes des distributions de prix naturelles.

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

Ici, x est le prix traité, obtenu en trouvant d'abord les prix les plus élevés et les plus bas au cours des périodes de longueur les plus récentes en utilisant les fonctions les plus élevées et les plus basses, puis en normalisant comme suit:

x = (prix - minimum) / (maximum - minimum) - 0,5

Les prix traités de cette façon approchent une distribution gaussienne. x est ensuite substitué dans la formule de transformation de Fisher pour obtenir la courbe de transformation de Fisher.

Lorsque la courbe de transformation de Fisher passe de positive à négative, un signal de vente est généré.

Analyse des avantages

  1. La transformée de Fisher élimine les caractéristiques non gaussiennes des prix, ce qui se traduit par des prix plus bien comportés et standardisés et moins de faux signaux.

  2. Capture les points d'inversion des prix, en évitant de courir après les hauts et les bas

  3. Réglage flexible des paramètres pour la sensibilité d'inversion de réglage

  4. Directionnalité personnalisable, s'adapte aux différents environnements du marché

  5. La logique est simple, facile à comprendre et à mettre en œuvre

Analyse des risques

  1. Des paramètres incorrects peuvent manquer des virages ou générer de faux signaux.

  2. Des glissades dans le trading en direct peuvent empêcher une exécution parfaite du signal

  3. Difficile d'identifier les virages lorsque les prix sont volatils

  4. Difficile à mettre en œuvre dans le commerce en direct avec besoin de confirmer les renversements

Les solutions:

  1. Optimiser les paramètres en ajustant la longueur

  2. Réduisez les critères d'entrée de manière appropriée pour assurer le remplissage

  3. Filtrer les faux signaux combinant d'autres indicateurs

  4. Suivre strictement les règles et gérer les risques

Directions d'optimisation

  1. Optimiser le paramètre Longueur pour trouver la meilleure combinaison

  2. Ajouter des filtres pour éviter les faux signaux, par exemple les moyennes mobiles, les indicateurs de volatilité, etc.

  3. Incorporer le stop loss dans la perte de contrôle par transaction

  4. Ajouter un mécanisme de réintégration pour suivre les tendances continues

Conclusion

La stratégie de backtest de la transformation de Fisher identifie les points d'inversion des prix en supprimant les caractéristiques non gaussiennes des prix. C'est une stratégie de réversion moyenne facilement implémentée. Ses avantages résident dans les paramètres flexibles pour attraper les tours tandis que sa principale faiblesse est la difficulté de la mise en œuvre en direct avec la nécessité de règles d'entrée strictes. Diverses méthodes peuvent être utilisées pour optimiser cette stratégie pour une applicabilité pratique.


/*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")

Plus de