Trend Mengikut Strategi Berdasarkan Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2023-12-20 14:23:49
Tag:

img

Ringkasan

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.

Prinsip Strategi

Strategi ini terutamanya menilai syarat-syarat berikut dan menghasilkan isyarat beli apabila mereka dipenuhi pada masa yang sama:

  1. Harga saham semasa berada di atas kedua-dua garis purata bergerak 150 hari dan 200 hari.
  2. Purata bergerak 150 hari berada di atas purata bergerak 200 hari.
  3. Purata bergerak 200 hari telah meningkat selama sekurang-kurangnya 1 bulan.
  4. Purata bergerak 50 hari berada di atas purata bergerak 150 hari dan 200 hari.
  5. Harga saham semasa berada di atas purata bergerak 50 hari.
  6. Harga saham semasa sekurang-kurangnya 25% di atas paras terendah 52 minggu.
  7. Harga saham semasa berada dalam sekurang-kurangnya 25% daripada tertinggi 52 minggu.

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.

Analisis Kelebihan

  1. Gunakan idea pemilihan saham Mark Minervini untuk meningkatkan keuntungan.
  2. Gunakan pelbagai purata bergerak untuk mengesahkan trend dan mengelakkan kehilangan titik beli.
  3. Tetapkan mekanisme stop-loss untuk mengelakkan kerugian besar.

Analisis Risiko

  1. Harga saham boleh menyesuaikan diri dalam jangka pendek, mencetuskan stop loss.
  2. Purata bergerak tidak dapat menentukan trend sepenuhnya, dan pecah palsu mungkin berlaku.
  3. Nisbah stop loss dan mengambil keuntungan yang ditetapkan tidak sempurna, boleh mengambil keuntungan atau memperluas kerugian lebih awal.

Pengoptimuman

  1. Uji kombinasi purata bergerak dengan parameter yang berbeza.
  2. Tambah penunjuk teknikal lain untuk menentukan masa kemasukan.
  3. Mengoptimumkan tetapan stop loss dan mengambil keuntungan.

Ringkasan

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)

Lebih lanjut