Stratégie de cassure croisée


Date de création: 2023-10-12 16:47:55 Dernière modification: 2023-10-12 16:47:55
Copier: 0 Nombre de clics: 584
1
Suivre
1617
Abonnés

Aperçu

La stratégie de croisement des moyennes mobiles est une stratégie de trading quantitative très courante. Elle utilise les moyennes mobiles pour déterminer les tendances afin de réaliser des bénéfices. Le croisement des moyennes mobiles à court terme indique que le cours de l’action commence à augmenter et que vous pouvez faire plus; le croisement des moyennes mobiles à court terme indique que le cours de l’action commence à baisser et que vous pouvez faire moins.

Principe de stratégie

Cette stratégie est basée sur le mouvement de la ligne moyenne pour déterminer le moment d’achat et de vente. Utilisé dans le codeupOrDownetlongOrShortLes deux paramètres d’entrée de Boole sont utilisés pour juger de l’excès de blanchiment;percentInputParamètres d’entrée pour définir le pourcentage de dépréciation de la variation du cours de l’action; utilisationclosePositionDaysEntrez les paramètres pour définir le nombre de jours de tenue de position.

La logique centrale de la stratégie est la suivante: calculer la baisse ou la baisse d’aujourd’hui par rapport à la baisse d’hier et émettre un signal de transaction si le pourcentage de baisse de l’entrée est atteint. Si c’est un bullish, faire plus lorsque la hausse d’aujourd’hui par rapport à la baisse d’hier dépasse la baisse; Si c’est un bearish, faire un short lorsque la baisse de la baisse de la baisse de la baisse de la baisse de la baisse est supérieure à la baisse d’hier.

Si vous faites plus de blanchiment, vous marquerez ce jour et les 4 jours suivants avec des couleurs différentes sur le graphique.

Avantages stratégiques

  • L’utilisation d’une fourchette mobile est une méthode éprouvée et fiable pour déterminer les tendances du marché.
  • La logique de la stratégie est simple, claire et facile à comprendre.
  • La fréquence de la stratégie peut être contrôlée en ajustant les paramètres
  • Les mécanismes d’arrêt automatique des pertes permettent de contrôler efficacement les risques

Risque stratégique

  • Les moyennes mobiles sont retardées et risquent de manquer des moments de variation rapide des prix
  • Les cours des actions pourraient subir de fortes fluctuations à court terme, ce qui entraînerait des signaux de croisement inutiles.
  • Les paramètres paramétrables mal définis peuvent également affecter les effets de la stratégie
  • Incapacité à gérer efficacement les effets d’une urgence

Mesures de contrôle des risques :

  1. Optimisation des paramètres de la moyenne mobile, avec des cycles de prolongation appropriés pour aider à filtrer le bruit
  2. Augmentation du pourcentage de dépréciation des cours des actions et réduction des transactions inutiles
  3. Tester différents jours de détention pour contrôler les pertes individuelles
  4. Signal de tendance confirmé par d’autres indicateurs

Orientation de l’optimisation de la stratégie

  • On peut envisager de remplacer la moyenne mobile par une moyenne mobile d’indices tels que l’EMA, la DMA, etc. afin de la rendre plus sensible aux variations de prix
  • Augmentation des mécanismes de stop-loss, tels que des stop-loss immédiats en cas de rupture de la ligne moyenne
  • Ajout d’autres indicateurs techniques pour la combinaison, tels que MACD, KDJ, etc., pour améliorer le taux de réussite de la stratégie
  • Vous pouvez essayer des méthodes d’apprentissage automatique pour optimiser les paramètres
  • Optimisation des moments d’entrée et de sortie, comme le breakout entrada

Résumer

La stratégie de croisement des équilibres mobiles est une stratégie de trading quantitatif très simple et pratique. Elle profite de la tendance des cours d’actions en déterminant la relation entre les tendances à court et à long terme. La stratégie est facile à mettre en œuvre, logiquement claire et est à la base de nombreuses stratégies de trading quantitatif.

Code source de la stratégie
/*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")