Strategi ini menggunakan templat pemilihan saham Mark Minervini dan penunjuk purata bergerak untuk menentukan trend harga untuk kemasukan automatik dan stop-loss. Ia terutamanya menilai sama ada harga saham berada dalam trend menaik dan sama ada mereka telah memecahkan purata bergerak utama untuk menjana isyarat beli. Pada masa yang sama, strategi menetapkan garis stop-loss untuk secara aktif menghentikan kerugian apabila harga jatuh kembali.
Strategi ini terutamanya menilai syarat-syarat berikut dan menghasilkan isyarat beli apabila mereka dipenuhi pada masa yang sama:
Apabila syarat-syarat di atas dipenuhi, strategi menilai bahawa harga saham berada dalam trend menaik dan menghasilkan isyarat beli.
Di samping itu, strategi ini juga menetapkan garis stop-loss. Apabila harga saham jatuh 5% dari puncaknya atau naik 10%, ia akan menghentikan kerugian atau mengambil keuntungan.
Strategi secara keseluruhan mengikuti idea perdagangan trend, menghasilkan isyarat beli apabila trend kenaikan harga saham disahkan. Pada masa yang sama, mekanisme stop-loss ditetapkan untuk mengawal risiko. Dengan mengoptimumkan pelbagai parameter terperinci, kestabilan dan keuntungan strategi dapat ditingkatkan lagi. Walau bagaimanapun, tidak ada strategi yang dapat sepenuhnya mengelakkan risiko pasaran, jadi pelabur perlu memperlakukannya dengan berhati-hati.
/*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)