Tren Mengikuti Strategi Berdasarkan Rata-rata Bergerak

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

img

Gambaran umum

Strategi ini menggunakan templat pemilihan saham Mark Minervini dan indikator rata-rata bergerak untuk menentukan tren harga untuk entri otomatis dan stop-loss. Ini terutama menilai apakah harga saham berada dalam tren naik dan apakah mereka telah menembus rata-rata bergerak utama untuk menghasilkan sinyal beli. Pada saat yang sama, strategi menetapkan garis stop-loss untuk secara aktif menghentikan kerugian ketika harga turun kembali.

Prinsip Strategi

Strategi ini terutama menilai kondisi berikut dan menghasilkan sinyal beli ketika mereka terpenuhi pada saat yang sama:

  1. Harga saham saat ini berada di atas garis rata-rata bergerak 150 hari dan 200 hari.
  2. Rata-rata bergerak 150 hari berada di atas rata-rata bergerak 200 hari.
  3. Rata-rata bergerak 200 hari telah naik selama setidaknya 1 bulan.
  4. Rata-rata bergerak 50 hari berada di atas rata-rata bergerak 150 hari dan 200 hari.
  5. Harga saham saat ini di atas rata-rata bergerak 50 hari.
  6. Harga saham saat ini setidaknya 25% di atas 52 minggu terendah.
  7. Harga saham saat ini berada di dalam setidaknya 25% dari 52 minggu tertinggi.

Ketika kondisi di atas terpenuhi, strategi menilai bahwa harga saham berada dalam tren kenaikan dan menghasilkan sinyal beli.

Selain itu, strategi ini juga menetapkan garis stop-loss. Ketika harga saham turun 5% dari puncaknya atau naik 10%, ia akan menghentikan kerugian atau mengambil keuntungan.

Analisis Keuntungan

  1. Gunakan ide pilihan saham Mark Minervini untuk meningkatkan profitabilitas.
  2. Gunakan beberapa rata-rata bergerak untuk mengkonfirmasi tren dan menghindari kehilangan titik beli.
  3. Atur mekanisme stop-loss untuk menghindari kerugian besar.

Analisis Risiko

  1. Harga saham dapat menyesuaikan dalam jangka pendek, memicu stop loss.
  2. Rata-rata bergerak tidak dapat sepenuhnya menentukan tren, dan pecah palsu dapat terjadi.
  3. Rasio stop loss dan take profit yang ditetapkan tidak sempurna, dapat mengambil keuntungan atau memperluas kerugian secara prematur.

Optimalisasi

  1. Uji kombinasi moving average dengan parameter yang berbeda.
  2. Tambahkan indikator teknis lainnya untuk menentukan waktu masuk.
  3. Mengoptimalkan stop loss dan mengambil pengaturan rasio keuntungan.

Ringkasan

Strategi secara keseluruhan mengikuti gagasan perdagangan tren, menghasilkan sinyal beli ketika tren kenaikan harga saham dikonfirmasi. Pada saat yang sama, mekanisme stop-loss diatur untuk mengendalikan risiko. Dengan mengoptimalkan berbagai parameter rinci, stabilitas dan profitabilitas strategi dapat ditingkatkan lebih lanjut. Namun, tidak ada strategi yang dapat sepenuhnya menghindari risiko pasar, sehingga investor perlu memperlakukannya dengan hati-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 banyak