
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.
La stratégie juge principalement les conditions suivantes, générant un signal d’achat lorsque les conditions sont remplies simultanément:
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.
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.
/*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)