Cette stratégie utilise le modèle de sélection des actions de Mark Minervini et les indicateurs de moyenne mobile pour déterminer les tendances des prix pour l'entrée et le stop-loss automatisés. Elle juge principalement si les prix des actions sont en hausse et s'ils ont franchi les moyennes mobiles clés pour générer des signaux d'achat.
La stratégie évalue principalement les conditions suivantes et génère un signal d'achat lorsqu'elles sont remplies en même temps:
Lorsque les conditions ci-dessus sont remplies, la stratégie juge que le prix de l'action est en hausse et génère un signal d'achat.
En outre, la stratégie définit également une ligne de stop-loss. Lorsque le prix de l'action baisse de 5% par rapport à son sommet ou augmente de 10%, il arrête la perte ou tire un profit.
La stratégie globale suit l'idée du trading de tendance, générant des signaux d'achat lorsque la tendance haussière des cours des actions est confirmée. Dans le même temps, un mécanisme de stop-loss est mis en place pour contrôler les risques. En optimisant divers paramètres détaillés, la stabilité et la rentabilité de la stratégie peuvent être encore améliorées. Cependant, aucune stratégie ne peut éviter complètement les risques du marché, les investisseurs doivent donc la traiter avec prudence.
/*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)