Stratégie de négociation quantitative basée sur l'indicateur de la STI et la moyenne mobile de la coque

Auteur:ChaoZhang est là., Date: 2023-12-18 16h56 et 22h
Les étiquettes:

img

Résumé

Cette stratégie s'appelle Quantitative Trading Strategy Based on TSI Indicator and Hull Moving Average. L'idée principale est d'identifier les tendances des actions, des crypto-monnaies ou du forex en combinant l'indicateur TSI et la moyenne mobile de Hull, et de générer des signaux de trading lorsqu'une tendance commence.

La logique de la stratégie

La stratégie utilise l'indicateur TSI pour déterminer les tendances et l'élan des prix. L'indicateur TSI est basé sur la moyenne mobile doublée lissée du taux de variation des prix. Il génère des signaux d'achat lorsque la valeur TSI dépasse sa moyenne mobile et des signaux de vente lorsqu'elle dépasse sa moyenne mobile.

La stratégie utilise également la moyenne mobile de Hull pour déterminer les tendances des prix. La moyenne mobile de Hull est construite avec des moyennes mobiles doubles pondérées et peut filtrer efficacement le bruit du marché.

Lorsque l'indicateur TSI génère un signal, si la moyenne mobile Hull confirme la tendance dans le même sens, les signaux de trading correspondants seront déclenchés.

Analyse des avantages

En combinant des indicateurs de tendance, de dynamique et de moyennes mobiles, cette stratégie permet d'identifier efficacement le début des tendances du marché et d'éviter les faux signaux excessifs.

Comparée aux stratégies à indicateur unique, cette stratégie filtre les signaux en combinant plusieurs indicateurs, ce qui peut grandement améliorer la qualité des signaux.

Analyse des risques

Bien que cette stratégie puisse identifier efficacement les débuts de tendance, elle peut générer de faux signaux et des sur-negotiations lors des consolidations du marché.

Pour réduire les risques, les paramètres de la période de coque ou des STI peuvent être ajustés en conséquence. Des arrêts peuvent également être ajoutés aux pertes de contrôle. Lors de l'optimisation, une attention particulière doit être accordée pour assurer un rapport signal-bruit élevé pour les meilleurs paramètres.

Directions d'optimisation

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

  1. Optimiser les paramètres de la moyenne mobile de la coque pour lisser les courbes et filtrer les faux signaux
  2. Optimiser les paramètres de la STI pour équilibrer la sensibilité et la stabilité
  3. Ajouter des stratégies de stop loss pour contrôler la taille des pertes
  4. Ajustez la longueur du signal pour filtrer le bruit à court terme
  5. Essai sur différents produits et délais
  6. Incorporer d'autres indicateurs pour la vérification du signal

Conclusion

Cette stratégie combine l'indicateur TSI et la moyenne mobile de Hull pour générer des signaux de trading après avoir confirmé les tendances du marché. La stratégie a un temps et une qualité de signal élevés. Grâce à l'optimisation des paramètres et à la combinaison de la stratégie, la rentabilité peut être considérablement améliorée tout en réduisant les risques.


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

//@version=2
strategy("TSI/HullMA/VWMA strategy", shorttitle="TSI/HullMA/VWMA", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=420, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0)
TP = input(defval=200.00, title="TargetPoint in $", type=float, step=1)
SL = input(defval=-2000.00, title="StopLoss in $", type=float, step=1)
signal = input(title="Signal Length",  defval=6)
keh=input(title="HullMA cross",defval=2)
a=input(title="VWMA",defval=2)
long=35,short=35,linebuy=4,linesell=-4,ot=1,p=ohlc4[0]
double_smooth(src, long, short) =>
    fist_smooth = ema(src, long)
    ema(fist_smooth, short)
pc = change(p)
rvwma=vwma(p,round(a))
rvwma2=vwma(p,round(a*2))
n2ma=2*wma(p,round(keh/2))
nma=wma(p,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(p[1],round(keh/2))
nma1=wma(p[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
hullbuy=n1>n2 and n1>n2[1] and rvwma>rvwma2
hullsell=n1<n2 and n1<n2[1] and rvwma<rvwma2
candlebuy=ohlc4[0]>ohlc4[1] and ohlc4[0]>ohlc4[2] and ohlc4[0]>ohlc4[3]
candlesell=ohlc4[0]<ohlc4[1] and ohlc4[0]<ohlc4[2] and ohlc4[0]<ohlc4[3]
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
strategy.entry("buy", true, na, when = tsi_value>ema(tsi_value, signal) and candlebuy and hullbuy)
strategy.entry("sell", false, na, when = tsi_value<ema(tsi_value, signal) and candlesell and hullsell)
strategy.close_all(when = strategy.openprofit>TP or strategy.openprofit<SL)

Plus de