Strategi mengikuti tren berdasarkan rata-rata pergerakan


Tanggal Pembuatan: 2023-12-20 14:23:49 Akhirnya memodifikasi: 2023-12-20 14:23:49
menyalin: 0 Jumlah klik: 771
1
fokus pada
1621
Pengikut

Strategi mengikuti tren berdasarkan rata-rata pergerakan

Ringkasan

Strategi ini didasarkan pada model stock picking yang dibuat oleh Mark Mneveny, yang menggabungkan indikator moving average untuk menentukan tren harga saham, dan memungkinkan pembelian dan penghentian otomatis. Strategi ini terutama menilai apakah saham berada dalam tren naik, dan apakah mereka telah menembus rata-rata bergerak yang penting, sehingga menghasilkan sinyal pembelian.

Prinsip Strategi

Strategi ini terutama menilai kondisi-kondisi berikut, yang menghasilkan sinyal beli ketika kondisi-kondisi tersebut terpenuhi secara bersamaan:

  1. Harga saham saat ini lebih tinggi dari rata-rata bergerak 150 dan 200 hari
  2. Rata-rata bergerak 150 hari lebih tinggi dari rata-rata bergerak 200 hari
  3. Rata-rata bergerak 200 hari naik dalam satu bulan terakhir
  4. Rata-rata bergerak 50 hari lebih tinggi dari rata-rata bergerak 150 dan 200 hari
  5. Harga saham saat ini lebih tinggi dari rata-rata bergerak 50 hari
  6. Harga saham saat ini naik lebih dari 25% dari harga terendah 52 minggu.
  7. Harga saham saat ini mendekati harga tertinggi dalam 52 minggu.

Ketika kondisi di atas terpenuhi, strategi menilai bahwa harga saham berada pada tahap kenaikan, menghasilkan sinyal beli.

Selain itu, strategi ini juga menetapkan garis stop loss, yang dilakukan ketika harga saham mundur 5% atau naik 10% dari titik tertinggi.

Keunggulan Strategis

  1. Menggunakan Ide Pemilihan Saham Mark Menevney untuk Meningkatkan Probabilitas Keuntungan
  2. Menggunakan multiple moving averages untuk mengkonfirmasi tren dan menghindari kehilangan titik beli
  3. Menetapkan mekanisme stop loss untuk menghindari kerugian besar

Analisis risiko

  1. Harga saham dapat mengalami perubahan dalam waktu dekat, yang menyebabkan stop loss dipicu.
  2. Rata-rata bergerak tidak dapat sepenuhnya menilai tren, dan mungkin akan terjadi false breaks.
  3. Stop loss yang disetel tidak sempurna, mungkin stop loss terlalu dini atau memperluas kerugian

Arah optimasi

  1. Kombinasi rata-rata bergerak yang dapat diuji dengan parameter yang berbeda
  2. Indikator teknis lainnya dapat digunakan untuk menentukan kapan tepat untuk membeli.
  3. Pengaturan rasio yang dapat mengoptimalkan stop loss

Meringkaskan

Strategi ini secara keseluruhan mengikuti pemikiran perdagangan tren, menghasilkan sinyal beli dengan mengkonfirmasi tren kenaikan harga saham. Pada saat yang sama, mengatur mekanisme pengendalian risiko. Dengan mengoptimalkan berbagai parameter rinci, stabilitas dan profitabilitas strategi dapat ditingkatkan lebih lanjut. Namun, strategi apa pun sulit untuk sepenuhnya menghindari risiko pasar dan perlu diperhatikan oleh investor.

Kode Sumber Strategi
/*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)