Traverser la stratégie de rupture

Auteur:ChaoZhang est là., Date: 2023-10-12 16:47:55 Je suis désolé
Les étiquettes:

Résumé

La stratégie de croisement des moyennes mobiles est une stratégie de trading quantitative très courante. Elle utilise la croix d'or et la croix de la mort des moyennes mobiles pour déterminer les tendances et les bénéfices. Lorsque la moyenne mobile à court terme dépasse la moyenne mobile à long terme, elle indique une tendance haussière et une position longue peut être prise. Lorsque la moyenne mobile à court terme dépasse la moyenne mobile à long terme, elle indique une tendance baissière et une position courte peut être prise.

La logique de la stratégie

Cette stratégie est basée sur la croix d'or et la croix de la mort des moyennes mobiles pour déterminer les points d'entrée et de sortie.upOrDownetlongOrShortpour déterminer le long ou le court;percentInputfixer le pourcentage de seuil de variation des prix;closePositionDayspour définir le nombre de jours pour maintenir la position.

La logique de base est la suivante: calculer l'augmentation/diminution d'aujourd'hui par rapport à hier. S'il atteint le pourcentage de seuil d'entrée, un signal de négociation est déclenché. S'il s'agit d'un signal long, lorsque le prix d'aujourd'hui augmente plus que le seuil par rapport à hier, passez long. S'il s'agit d'un signal court, lorsque le prix d'aujourd'hui diminue plus que le seuil par rapport à hier, passez court.

Après avoir acheté, le jour d'entrée et les 4 jours suivants seront marqués en couleur sur le graphique.

Les avantages

  • L'utilisation de croisements de moyennes mobiles pour déterminer la tendance est une méthode mature et fiable
  • Logie stratégique simple et claire, facile à comprendre et à mettre en œuvre
  • La fréquence peut être contrôlée en ajustant les paramètres
  • Le mécanisme automatique d'arrêt des pertes contrôle efficacement les risques

Les risques

  • Les moyennes mobiles ont des effets de retard, peuvent manquer le meilleur moment des changements rapides des prix
  • Des fluctuations significatives des prix peuvent survenir à court terme, générant des signaux inutiles
  • Des paramètres inappropriés peuvent affecter les performances de la stratégie
  • Incapacité de réagir efficacement aux effets d'événements imprévus

Gestion des risques:

  1. Optimiser les paramètres de la moyenne mobile, les périodes plus longues aident à filtrer le bruit
  2. Augmenter le pourcentage de seuil pour réduire les transactions inutiles
  3. Testez différentes périodes de conservation pour contrôler les pertes uniques
  4. Combiner avec d'autres indicateurs pour confirmer davantage les signaux

Directions d'optimisation

  • Pensez à utiliser EMA, DMA au lieu de SMA pour le rendre plus sensible
  • Ajouter des mécanismes d'arrêt des pertes, par exemple un arrêt des pertes en cas de rupture de la moyenne
  • Ajouter d'autres indicateurs techniques comme MACD, KDJ pour la combinaison, améliorer le taux de gain
  • Essayez des méthodes d'apprentissage automatique pour optimiser automatiquement les paramètres
  • Optimiser les délais d'entrée et de sortie, tels que la fuite, etc.

Résumé

La stratégie de croisement de moyenne mobile est une stratégie de trading quantitative très simple et pratique. En jugeant la relation entre les tendances à court et à long terme, elle profite de la nature tendancielle des prix des actifs. Cette stratégie est facile à mettre en œuvre avec une logique claire et constitue la base de nombreuses stratégies de trading quantitative. Nous pouvons obtenir de meilleures performances grâce à l'ajustement et à l'optimisation des paramètres. Mais nous devons également gérer les risques et éviter les abus.


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

//@version=3
//  Created by Leon Ross

strategy(title = "DaysAfterCertainPercentChangev1", shorttitle = "DACPCv1", overlay = true, 
  pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, 
  calc_on_every_tick=true, initial_capital=100000)
  
//Inputs
longOrShort = input(title="Long=Checked Short=Unchecked", type=bool, defval=true) //long=true, down=false
upOrDown = input(title="Direction of Today vs. Previous day: Up=Checked Down=Unchecked", type=bool, defval=true) //up=true, down=false: this is the direction of days vs previous day
percentInput = input(title="Percent", type=float, defval=4.5)
closePositionDays = input(title="How Many Days to Close Position", defval=4)

//Conditions
//percentUpValue = (close / close[1]) - 1
//percentUp = percentUpValue >= (percentInput/100.0)
//upConditions = percentUp
//percentDownValue = 1- (close / close[1])
//percentDown = percentDownValue >= (percentInput/100.0)
//downConditions = percentDown
upValue = (close / close[1]) - 1
downValue = 1 - (close / close[1])
allConditions = if(upOrDown)
    upValue >= (percentInput/100.0)
else
    downValue >= (percentInput/100.0)
    
//Plots
bgcolor(allConditions ? (upOrDown ? green : red) : na, transp=70)
bgcolor(allConditions ? silver : na, transp=70, offset=1)
bgcolor(allConditions ? silver : na, transp=70, offset=2)
bgcolor(allConditions ? silver : na, transp=70, offset=3)
bgcolor(allConditions ? silver : na, transp=70, offset=4)
//bgcolor(downConditions == 1 ? red : na, transp=70)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=1)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=2)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=3)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=4)

//Entires
if(longOrShort)
    strategy.entry(id = "Long", long = true, when = allConditions) 
else
    strategy.entry(id = "Short", long = false, when = allConditions)

//Exits
if (barssince(allConditions) == closePositionDays)
    if(longOrShort)
        strategy.close("Long")
    else
        strategy.close("Short")




Plus de