Indicateur de stockage inverse de la transformation aléatoire de Fisher

Auteur:ChaoZhang est là., Date: 2024-01-02 11h14 et 12h
Les étiquettes:

img

Résumé

L'idée de base de cette stratégie est de combiner la transformation aléatoire de Fisher et l'indicateur Temporary Stop Reverse STOCH pour prendre des décisions d'achat et de vente.

Principe de stratégie

Cette stratégie calcule d'abord l'indicateur STOCH standard, puis effectue une transformation Fisher sur celui-ci pour obtenir l'INVLine. Lorsque l'INVLine franchit le seuil inférieur dl, un signal d'achat est généré. Lorsque l'INVLine franchit le seuil supérieur ul, un signal de vente est généré.

Plus précisément, la logique de base de cette stratégie est la suivante:

  1. Calcul de l'indicateur STOCH: utiliser la formule standard pour calculer la valeur STOCH rapide du stock
  2. Transformation de Fisher: effectuer une transformation de Fisher sur la valeur STOCH pour obtenir INVLine
  3. Générer des signaux de trading: Acheter lorsque la ligne INVLine dépasse le niveau dl, vendre lorsqu'elle dépasse le niveau ul
  4. Arrêt de suivi: activer un mécanisme de suivi temporaire de l'arrêt pour un arrêt de perte rapide

Analyse des avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. La transformation de Fisher améliore efficacement la sensibilité de l'indicateur STOCH et peut détecter les opportunités d'inversion de tendance plus tôt
  2. Le mécanisme d'arrêt temporaire peut contrôler efficacement les risques et garantir les bénéfices
  3. Il convient aux opérations à moyen terme, en particulier au trading quantitatif à haute fréquence actuellement populaire.
  4. Elle se porte bien dans des conditions de marché stables et présente des rendements stables

Analyse des risques

Cette stratégie comporte également des risques:

  1. L'indicateur STOCH est sujet à la génération de faux signaux, ce qui peut entraîner des transactions inutiles.
  2. La transformation de Fisher amplifie également le bruit de l'indicateur STOCH, ce qui entraîne plus de faux signaux
  3. Il est facile d'arrêter les pertes sur les marchés oscillants et de ne pas réaliser de bénéfices durables
  4. Des périodes de détention relativement courtes sont nécessaires pour obtenir Alpha.

Pour atténuer ces risques, il convient d'optimiser les aspects suivants:

  1. Ajustez les paramètres STOCH pour lisser la courbe et réduire le bruit
  2. Optimiser les positions de ligne de seuil pour réduire les probabilités de fausses opérations
  3. Ajouter des conditions de filtrage pour éviter de négocier sur des marchés oscillants
  4. Ajustez la durée du temps d'attente pour correspondre au cycle de fonctionnement

Directions d'optimisation

Les principales orientations d'optimisation de cette stratégie sont les suivantes:

  1. Optimiser les paramètres de la transformation de Fisher pour une courbe INVLine lisse
  2. Optimiser la longueur de la période STOCH pour trouver des combinaisons optimales de paramètres
  3. Optimiser les paramètres de la ligne de seuil pour réduire les probabilités de faux échanges
  4. Ajouter la confirmation du prix du volume pour éviter un arrêt de trail inutile
  5. Ajouter des filtres de rupture intradienne pour réduire les faux signaux sur les marchés oscillants
  6. Incorporer des indicateurs de tendance afin d'éviter les opérations contre tendance

Conclusion

Cette stratégie combine la transformation aléatoire de Fisher et l'indicateur STOCH pour mettre en œuvre une stratégie quantitative à court terme simple et pratique. Son avantage réside dans la fréquence d'opération élevée, ce qui convient au trading quantitatif à haute fréquence actuellement populaire. En même temps, cette stratégie comporte également certains risques techniques communs. Les paramètres et les conditions de filtrage doivent être optimisés pour réduire les risques et améliorer la stabilité. En général, cette stratégie fournit une bonne idée pour le trading quantitatif simple et mérite une recherche plus approfondie.


/*backtest
start: 2022-12-26 00:00:00
end: 2024-01-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("IFT Stochastic + Trailing Stop", overlay=false, pyramiding = 0, calc_on_order_fills = false, commission_type =  strategy.commission.percent, commission_value = 0.0454, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//INPUTS
stochlength=input(19, "STOCH Length")
wmalength=input(4, title="Smooth")
ul = input(0.64,step=0.01, title="UP line")
dl = input(-0.62,step=0.01, title="DOWN line")
uts = input(true, title="Use trailing stop")
tsi = input(title="trailing stop actiation pips",defval=245)                                                                       
tso = input(title="trailing stop offset pips",defval=20)

//CALCULATIONS
v1=0.1*(stoch(close, high, low, stochlength)-50)
v2=wma(v1, wmalength)
INVLine=(exp(2*v2)-1)/(exp(2*v2)+1)

//CONDITIONS
sell = crossunder(INVLine,ul)? 1 : 0
buy = crossover(INVLine,dl)? 1 : 0

//PLOTS
plot(INVLine, color=aqua, linewidth=1, title="STOCH")
hline(ul, color=red)
hline(dl, color=green)
bgcolor(sell==1? red : na, transp=30, title = "sell signal")
bgcolor(buy==1? lime : na, transp=30, title = "buy signal")
plotchar(buy==1, title="Buy Signal", char='B', location=location.bottom, color=white, transp=0, offset=0)
plotchar(sell==1, title="Sell Signal", char='S', location=location.top, color=white, transp=0, offset=0)

//STRATEGY
strategy.entry("BUY", strategy.long, when = buy==1)
strategy.entry("SELL", strategy.short, when = sell==1)

if  (uts)
    strategy.entry("BUY", strategy.long, when = buy)
    strategy.entry("SELL", strategy.short, when = sell)
    strategy.exit("Close BUY with TS","BUY", trail_points = tsi, trail_offset = tso)
    strategy.exit("Close SELL with TS","SELL", trail_points = tsi, trail_offset = tso)


Plus de