Stratégie basée sur la moyenne mobile du trader de tendance

Auteur:ChaoZhang est là., Date: 2023-12-11 13:12:44 Je suis désolé
Les étiquettes:

img

Résumé

L'idée principale de cette stratégie est de juger les tendances des prix et de générer des signaux de trading à l'aide de moyennes mobiles et de bandes de Bollinger. Plus précisément, elle calcule d'abord la plage moyenne vraie (ATR) sur une certaine période pour obtenir une plage de volatilité, puis combine les prix les plus élevés et les plus bas pour former un canal limitant. Si le prix franchit ce canal, le prix de clôture est défini comme le prix du canal.

La logique de la stratégie

La stratégie calcule d'abord la plage ATR et forme un canal limitant combiné avec les prix les plus élevés et les plus bas. Le prix de clôture sera limité au prix du canal uniquement lorsqu'il franchit le canal. Après cela, elle calcule la moyenne mobile des prix de clôture limités, ce qui reflète la direction de la tendance à moyen et long terme. Enfin, dessinez une bande supérieure et une bande inférieure parallèles à la moyenne mobile du trader de tendance sous forme de bandes de Bollinger.

Le noyau du jugement de la tendance réside dans la moyenne mobile de Trend Trader, qui incarne la direction de la tendance à moyen et long terme.

Les avantages

  1. ATR et gamme de prix construisent un canal adaptatif pour suivre la volatilité du marché
  2. Trend Trade AVR évalue clairement la tendance à moyen et long terme
  3. Les bandes de Bollinger filtrent les fausses ruptures et améliorent la qualité du signal
  4. Le système reflète une forte tendance, la détention longue peut obtenir de bons rendements

Les risques

  1. La détention à long terme peut subir des pertes énormes en raison de certains événements soudains.
  2. Un paramètre mal défini peut entraîner une sur-échange, une augmentation des coûts de transaction et un glissement
  3. Les performances dépendent fortement du réglage des paramètres

Les solutions:

  1. Réduire correctement la période de détention et définir un stop loss
  2. Optimiser les paramètres pour donner aux signaux suffisamment de tampon
  3. Utiliser les données historiques et le trading en direct pour l'ajustement des paramètres

Directions d'optimisation

  1. Réglage des paramètres de recherche sur différents marchés et délais
  2. Testez si d'autres indicateurs peuvent filtrer les fausses éruptions
  3. Essayez d'intégrer le stop loss à la limite par perte de transaction

Conclusion

La stratégie est globalement un système de suivi de tendance fort. Elle peut juger de la tendance à moyen et long terme et générer des signaux de trading combinés avec des bandes de Bollinger. Grâce à l'optimisation des paramètres, elle peut obtenir un alpha stable. Mais le contrôle des risques est également important pour éviter d'énormes pertes dues à des événements soudains lors de la détention à long terme.


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

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/10/2018
// This is plots the indicator developed by Andrew Abraham 
// in the Trading the Trend article of TASC September 1998  
// It was modified, result values wass averages.
// And draw two bands above and below TT line.
////////////////////////////////////////////////////////////
strategy(title="Trend Trader Bands Backtest", overlay = true)
Length = input(21, minval=1),
LengthMA = input(21, minval=1),
BandStep = input(20),
Multiplier = input(3, minval=1)
reverse = input(false, title="Trade reverse")
avgTR      = wma(atr(1), Length)
highestC   = highest(Length)
lowestC    = lowest(Length)
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
ret = 0.0
ret :=  iff(close > hiLimit and close > loLimit, hiLimit,
         iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
nResMA = ema(ret, LengthMA)        
pos = 0.0
pos := iff(close < nResMA - BandStep , -1,
       iff(close > nResMA + BandStep, 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 ) 
barcolor(pos == -1 ? red: pos == 1 ? green : blue )
plot(nResMA, color= blue , title="Trend Trader AVR")
plot(nResMA+BandStep, color= red , title="Trend Trader UpBand")
plot(nResMA-BandStep, color= green, title="Trend Trader DnBand")

Plus de