Stratégie de suivi de tendance basée sur les moyennes mobiles


Date de création: 2023-12-20 14:23:49 Dernière modification: 2023-12-20 14:23:49
Copier: 0 Nombre de clics: 771
1
Suivre
1621
Abonnés

Stratégie de suivi de tendance basée sur les moyennes mobiles

Aperçu

La stratégie est basée sur le modèle de sélection d’actions de Mark Mnevin, combinée à un indicateur de moyenne mobile pour juger de la tendance des prix des actions, permettant des achats et des arrêts automatiques. La stratégie détermine principalement si les actions sont en tendance haussière et si elles franchissent les moyennes mobiles critiques, générant ainsi un signal d’achat.

Principe de stratégie

La stratégie juge principalement les conditions suivantes, générant un signal d’achat lorsque les conditions sont remplies simultanément:

  1. Le cours actuel des actions est supérieur aux moyennes mobiles à 150 et 200 jours
  2. La moyenne mobile à 150 jours est supérieure à la moyenne mobile à 200 jours.
  3. La moyenne mobile quotidienne de 200 est en hausse depuis un mois
  4. Les moyennes mobiles à 50 jours sont supérieures aux moyennes mobiles à 150 et 200 jours.
  5. Le cours actuel des actions est supérieur à la moyenne mobile à 50 jours
  6. Le cours actuel des actions est en hausse de plus de 25% par rapport au plus bas de 52 semaines.
  7. Le cours de l’action est proche de son plus haut niveau en 52 semaines.

Lorsque les conditions ci-dessus sont remplies, la stratégie détermine que le cours de l’action est à la hausse, générant un signal d’achat.

En outre, la stratégie met en place une ligne de stop-loss, qui est utilisée lorsque le cours d’une action recule de 5% ou augmente de 10% par rapport à son sommet.

Avantages stratégiques

  1. Utilisez l’idée du stock-option de Marc Menevney pour augmenter vos chances de gagner
  2. Utilisez des moyennes mobiles multiples pour confirmer la tendance et éviter de manquer des points d’achat
  3. La mise en place d’un mécanisme d’arrêt des pertes pour éviter des pertes importantes

Analyse des risques

  1. Les cours des actions peuvent être ajustés à court terme, ce qui entraîne un déclenchement du stop loss.
  2. Les moyennes mobiles ne permettent pas de juger de la tendance et peuvent donner lieu à de fausses ruptures.
  3. La proportion de stop-loss n’est pas parfaite et peut provoquer un stop-loss prématuré ou une expansion des pertes

Direction d’optimisation

  1. Une combinaison de moyennes mobiles pour différents paramètres peut être testée
  2. D’autres indicateurs techniques peuvent être ajoutés pour déterminer le moment de l’achat
  3. Réglage de la proportion permettant d’optimiser le stop-loss

Résumer

La stratégie suit globalement l’idée du trading de tendance, générant un signal d’achat en supposant la confirmation d’une tendance à la hausse du prix des actions. En même temps, la mise en place d’un mécanisme de contrôle des pertes risque. En optimisant les paramètres détaillés, la stabilité et la rentabilité de la stratégie peuvent être encore améliorées.

Code source de la stratégie
/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Pure Mark Minervini 10%TP 5%CL", pyramiding = 0, commission_type=strategy.commission.percent, commission_value=0.08, overlay=true)

ma50 = sma(close,50)
ma150 = sma(close,150)
ma200 = sma(close,200)
ma200_22 = ma200[22]

high_loopback = input(260, "High Lookback Length")
low_loopback = input(260, "Low Lookback Length")
highest_price = highest(high, high_loopback)
lowest_price = lowest(low, low_loopback)
above52lo = ((close/lowest_price)-1)*100
below52hi = (1-(close/highest_price))*100
ep = strategy.position_avg_price

trigger = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3
var label maLabel = na
if (trigger)
    yLocation = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 ?
         yloc.abovebar :
         yloc.belowbar

    // labelStyle = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 ?
    //      label.style_labeldown :
    //      label.style_labelup

buy = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3
sell = close>ep*1.1 or close<ep*0.95

strategy.entry("TF", strategy.long, when = buy)
strategy.close("TF", when = sell)