Stratégie de contre-test basée sur l'indicateur de transformation de Fisher

Auteur:ChaoZhang est là., Date: 2024-01-25 14:22:36 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie est une stratégie de backtesting basée sur l'indicateur de transformation de Fisher. La formule de transformation de Fisher peut convertir les données de prix en une distribution normale pour identifier les extrêmes de prix et les points tournants.

Principe de stratégie

  1. Calcul de l'indicateur HL2
  2. Calculer le maximum xMaxH et le minimum xMinL de HL2 au cours des périodes de longueur les plus récentes
  3. Calculer l'indicateur de transformation de Fisher:
    • nValue1 est 0,33×(HL2 normalisé) + 0,67×nValue1 de la période précédente
    • nValue2 limite nValue1 entre -0,99 et 0,99
  4. Déterminer si nFish est positif ou négatif pour déterminer la direction de position
  5. Si le signal de position est possig, si la négociation inverse est réglée, prendre la position opposée
  6. Signal d'entrée: possig=1 pour long, possig=-1 pour court

Analyse des avantages

  1. L'indicateur de transformation de Fisher peut identifier les prix extrêmes et les points tournants pour déterminer avec précision les tendances
  2. Filtrer les fluctuations en combinant les indicateurs HL2 augmente le taux de réussite
  3. La négociation inverse peut être réglée pour s'adapter à différents environnements de marché
  4. Le trading automatisé sans jugement manuel réduit les coûts de trading

Analyse des risques

  1. L'indicateur de transformation de Fisher a un décalage et peut manquer les changements de prix à court terme.
  2. Risque élevé d'arrêt des pertes dans les tendances volatiles
  3. Des réglages de négociation inversés inappropriés peuvent entraîner des transactions systématiquement erronées
  4. En l'absence de vérification du cycle croisé, il existe un certain risque de faux positifs

Solution au risque:

  1. Ajuster les paramètres de manière appropriée pour réduire les retards
  2. Augmenter la plage de stop-loss pour contrôler les pertes d'une seule transaction
  3. Optimiser les opérations inversées combinées à d'autres indicateurs pour le filtrage
  4. Augmenter les mécanismes de vérification multiples des tendances, des niveaux de prix, des cycles, etc.

Directions d'optimisation de la stratégie

  1. Combiner les indicateurs de tendance pour assurer la cohérence des principales tendances
  2. Augmenter les indicateurs cycliques pour améliorer la précision du jugement sur l'inversion des prix
  3. Vérification dans plusieurs délais pour éviter les faux positifs
  4. Réglage dynamique de la plage de stop loss
  5. Optimiser les paramètres pour maximiser le taux de victoire et le facteur de profit

Les optimisations ci-dessus peuvent encore améliorer le taux de gain de la stratégie, verrouiller les bénéfices, contrôler les risques et obtenir des résultats commerciaux plus stables et plus efficaces.

Résumé

La stratégie de backtesting de l'indicateur de transformation de Fisher intègre l'indicateur de transformation de Fisher pour déterminer les points d'inversion des prix et les directions de tendance. Cette stratégie a des jugements précis et un haut degré d'automatisation. Grâce à l'optimisation des paramètres, des résultats de trading stables et efficaces peuvent être obtenus. Mais il existe également certains risques tels que le retard et les faux positifs. Une optimisation supplémentaire est nécessaire en introduisant plusieurs mécanismes de vérification et des méthodes d'ajustement dynamique pour rendre la stratégie plus flexible et robuste.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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(1, color=white)
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