Les ressources ont été chargées... Je charge...

La tendance du seuil dynamique de Fisher Transform est suivie par la stratégie

Auteur:ChaoZhang est là., Date: 2024-06-17 15h01 et 19h
Les étiquettes:

img

Résumé

La stratégie de suivi des tendances dynamiques de Fisher Transform utilise l'indicateur Fisher Transform pour identifier les changements dans les tendances des prix. La stratégie utilise la transformation de Fisher pour normaliser les prix à une échelle standard, ce qui facilite la détection de points de renversement de tendance potentiels. En ajustant dynamiquement les seuils, la stratégie s'adapte aux différentes conditions du marché et améliore la précision de la reconnaissance des tendances. Lorsque la valeur de la transformation de Fisher traverse des seuils positifs ou négatifs, la stratégie génère des signaux d'achat ou de vente pour suivre les tendances du marché.

Principe de stratégie

  1. Calculer la valeur de la transformation de Fisher: sur la base des prix élevés et bas historiques, normaliser le prix actuel pour obtenir une valeur de la transformation de Fisher comprise entre -0,999 et 0,999.
  2. seuil dynamique: ajustez dynamiquement le seuil des signaux d'achat et de vente en fonction de la volatilité historique de la valeur de la transformation de Fisher afin de l'adapter aux différentes conditions du marché.
  3. Détermination des tendances: déterminer les variations des tendances des prix en comparant la valeur actuelle de la transformation Fisher avec les valeurs des deux périodes précédentes.
  4. Signaux d'achat et de vente: Générer un signal d'achat lorsque la valeur de la transformation de Fisher franchit le seuil négatif depuis le bas, et générer un signal de vente lorsque la valeur de la transformation de Fisher franchit le seuil positif depuis le haut.

Analyse des avantages

  1. Ajustement dynamique des seuils: ajuster de manière adaptative les seuils d'achat et de vente en fonction de la volatilité du marché afin d'améliorer l'exactitude du jugement des tendances.
  2. Suivi des tendances: le jugement des tendances de l'indicateur Fisher Transform permet de capturer efficacement les tendances du marché et de négocier en fonction des tendances.
  3. Réduction du bruit des prix: la transformation de Fisher normalise les prix, contribuant à réduire l'impact du bruit des prix sur le jugement de la tendance.
  4. Affichage intuitif du graphique: La stratégie trace la courbe et les lignes de seuil de la transformation de Fisher sur le graphique, permettant aux traders d'observer visuellement les tendances du marché et les signaux d'achat / vente.

Analyse des risques

  1. Risque d'optimisation des paramètres: la performance de la stratégie dépend de la sélection de paramètres tels que la période de transformation de Fisher et la méthode de calcul dynamique du seuil.
  2. Décalage de la reconnaissance des tendances: l'indicateur Fisher Transform a un certain décalage dans le jugement des tendances des prix, qui peut manquer certains mouvements de tendance.
  3. Faibles performances sur les marchés instables: dans des conditions de marché instables, les changements de tendance fréquents peuvent entraîner la génération de plus de faux signaux par la stratégie, ce qui conduit à des performances commerciales sous-optimales.
  4. Risque de marché extrême: dans des conditions de marché extrêmes (telles que des changements rapides et substantiels), l'indicateur Fisher Transform peut échouer, ce qui entraîne une mauvaise prise de décisions de négociation par la stratégie.

Direction de l'optimisation

  1. Optimisation des paramètres: optimiser les paramètres clés tels que la période de transformation de Fisher et la méthode de calcul dynamique du seuil pour améliorer l'adaptabilité de la stratégie aux différents états du marché.
  2. Filtrage des signaux: en plus de la reconnaissance des tendances, introduire d'autres indicateurs techniques ou des indicateurs de sentiment du marché pour confirmer les signaux de négociation et améliorer la fiabilité des signaux.
  3. Stop-loss et take-profit: établir des règles raisonnables de stop-loss et take-profit pour contrôler le risque de transaction unique et améliorer le ratio risque/rendement de la stratégie.
  4. Gestion des positions: ajustement dynamique des positions en fonction de facteurs tels que la force de la tendance du marché et la volatilité des prix afin de réduire le risque de détention.

Résumé

La stratégie Fisher Transform Dynamic Threshold Trend Following identifie les changements dans les tendances des prix à l'aide de l'indicateur Fisher Transform et des seuils dynamiques, en s'adaptant aux différents états du marché. La stratégie capture efficacement les tendances du marché et permet le trading suivant la tendance. Ses avantages incluent l'ajustement dynamique des seuils, une réduction des interférences de bruit de prix et une affichage intuitif des graphiques. Cependant, elle fait également face à des défis tels que le risque d'optimisation des paramètres, le retard de reconnaissance des tendances, une mauvaise performance sur les marchés agités et un risque de marché extrême.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Qiuboneminer -  Fisher Transform", overlay=true)

// Parámetros
Len = input.int(10, minval=1)
mult1 = input.int(1, minval=1)
threshold = 2.6

// Función Fisher Transform
fish(Length, timeMultiplier) =>
    var float nValue1 = na
    var float nFish = na
    xHL2 = hl2
    xMaxH = ta.highest(xHL2, Length * timeMultiplier)
    xMinL = ta.lowest(xHL2, Length * timeMultiplier)
    nValue1 := 0.33 * 2 * ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5) + 0.67 * nz(nValue1[1])
    nValue2 = if nValue1 > 0.99
        0.999
    else if nValue1 < -0.99
        -0.999
    else
        nValue1
    nFish := 0.5 * math.log((1 + nValue2) / (1 - nValue2)) + 0.5 * nz(nFish[1])
    nFish

// Cálculo del Fisher Transform para mult1
Fisher1 = fish(Len, mult1)

// Condiciones de entrada y salida
longCondition = Fisher1 > nz(Fisher1[1]) and nz(Fisher1[1]) <= nz(Fisher1[2]) and Fisher1 < -threshold
shortCondition = Fisher1 < nz(Fisher1[1]) and nz(Fisher1[1]) >= nz(Fisher1[2]) and Fisher1 > threshold

// Estrategia de entrada
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)

// Ploteo del Fisher Transform
plot(Fisher1, color=(Fisher1 > nz(Fisher1[1]) ? color.rgb(34, 255, 0) : color.rgb(255, 0, 212)), title="Fisher TF:1")

// Ploteo de líneas de umbral
hline(threshold, "Umbral Superior", color=color.rgb(255, 0, 0), linestyle=hline.style_dotted)
hline(-threshold, "Umbral Inferior", color=#008704, linestyle=hline.style_dotted)


Plus de