Ehlers Fisher transforme sa stratégie de négociation

Auteur:ChaoZhang est là., Date: 2024-01-08 16h51 et 10h
Les étiquettes:

img

Résumé

Cette stratégie est basée sur l'indicateur Fisher Transform conçu par le maître de l'analyse technique John Ehlers pour identifier automatiquement les points d'inversion de la tendance des prix pour les transactions longues/courtes.

La logique de la stratégie

Cette stratégie utilise la formule de transformation de Fisher pour normaliser les prix et générer une séquence de prix de distribution proche de Gauss. La formule de transformation de Fisher est: y = 0,5 * ln ((((1+x) /(1-x)). Grâce à cette transformation, les extrêmes de prix sont convertis en événements relativement rares. Lorsque la dernière valeur transformée de Fisher est plus / moins élevée que la période précédente, elle indique un renversement possible des prix. La stratégie génère des signaux de trading basés sur les points de basculement de cet indicateur.

Plus précisément, les étapes stratégiques sont les suivantes:

  1. Calculer le prix intermédiaire HL2;
  2. Calculer le prix le plus élevé xMaxH et le prix le plus bas xMinL sur la période de longueur;
  3. Calculer le prix normalisé nValue1=(xHL2 - xMinL) / (xMaxH - xMinL) - 0,5;
  4. Lisser nValue1 pour obtenir nValue2, en évitant les extrêmes;
  5. Appliquer la formule de transformation de Fisher sur nValue2 pour obtenir l'indicateur de Fisher nFish;
  6. Comparez nFish avec la valeur précédente pour déterminer si un virage s'est produit et définissez la direction de trading pos;
  7. Mettre en place une position longue/courte basée sur la position pos pour générer des signaux de trading.

Analyse des avantages

Le plus grand avantage de cette stratégie est l'exactitude et la rapidité de ses signaux de trading. Parce que la séquence de prix transformée de Fisher s'approche d'une distribution gaussienne, les renversements de prix peuvent être rapidement identifiés et réagis par l'indicateur de Fisher.

Analyse des risques

Le plus grand risque de cette stratégie est que la séquence de prix transformée de Fisher ne soit pas parfaitement conforme à la distribution théorique de Gauss.

Pour atténuer ce risque, nous pouvons envisager de combiner d'autres indicateurs pour le filtrage des signaux, en évitant les transactions lors de marchés anormaux.

Directions d'optimisation

Cette stratégie peut être optimisée dans les aspects suivants:

  1. Optimiser le paramètre Longueur pour trouver les meilleures combinaisons pour différentes conditions de marché;
  2. ajouter des mécanismes de stop loss pour limiter les pertes à la baisse;
  3. Ajouter des filtres de négociation pour éviter les transactions incorrectes sur les marchés anormaux;
  4. Combiner avec d'autres indicateurs pour améliorer la précision du signal.

Conclusion

Cette stratégie tire parti de l'indicateur Ehlers Fisher Transform pour identifier rapidement et précisément les points d'inversion des prix pour les entrées commerciales opportunes. Sa plus grande force réside dans l'exactitude et la rapidité des signaux de trading.


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

Plus de