Pecah Momentum Strategi Purata Pergerakan 200 Hari pada Akhir Bulan


Tarikh penciptaan: 2023-12-08 16:02:08 Akhirnya diubah suai: 2023-12-08 16:02:08
Salin: 1 Bilangan klik: 795
1
fokus pada
1621
Pengikut

Pecah Momentum Strategi Purata Pergerakan 200 Hari pada Akhir Bulan

Gambaran keseluruhan

Strategi ini berdasarkan pada titik waktu akhir bulan untuk menilai sama ada harga saham telah menembusi purata bergerak 200 hari untuk menangkap arah trend harga saham.

Prinsip Strategi

  1. Menggunakan purata bergerak mudah 200 hari (dma200) sebagai penunjuk untuk menilai trend harga
  2. Pada hari perdagangan terakhir setiap bulan, tentukan sama ada harga penutupan pada hari itu lebih tinggi daripada dma200
  3. Jika harga penutupan melepasi garis purata 200 hari, anda boleh membuat kedudukan teratas penuh pada hari perdagangan berikutnya.
  4. Jika harga penutupan jatuh di bawah garis purata 200 hari, penutupan dibuka pada hari perdagangan berikutnya
  5. Ini boleh mencapai kesan trend-following, meletakkan kedudukan apabila harga saham memasuki trend menaik, mengelakkan trend turun

Analisis kelebihan

  1. Kelebihan strategi ini ialah ia mudah, berkesan, mudah difahami dan dilaksanakan.
  2. Mengambil kesempatan untuk membuat simpanan pada akhir bulan untuk mengurangkan kekerapan transaksi, kos transaksi dan kesan slippage
  3. Garis purata 200 hari adalah petunjuk trend jangka panjang yang sangat biasa digunakan dan berkesan untuk kebanyakan saham
  4. Pengunduran strategi dan penurunan maksimum adalah kecil, risiko boleh dikawal

Analisis risiko

  1. Garis purata 200 hari mungkin tidak sensitif untuk beberapa saham dan tidak dapat menangkap perubahan harga dalam masa yang tepat
  2. Hanya satu tempat dagangan yang telah membuat deposit pada penghujung bulan dan mungkin terlepas peluang untuk turun di pertengahan bulan.
  3. Strategi ini mungkin tidak dapat menilai dengan betul apabila trend keseluruhan saham tidak pasti.
  4. Ia perlu dikombinasikan dengan penilaian lain untuk mengurangkan risiko ini.

Arah pengoptimuman

  1. Anda boleh mempertimbangkan untuk menambah tempat letak jawatan pada awal atau pertengahan bulan untuk meningkatkan kekerapan strategi.
  2. Menambah indikator seperti Binance untuk menilai pergerakan harga dan mengelakkan perdagangan yang salah
    1. Menilai keserasian parameter garis rata yang berbeza untuk saham yang berbeza, mencari kombinasi parameter terbaik
  3. Mekanisme pengurusan kedudukan dinamik boleh ditubuhkan, yang secara aktif menghentikan kerugian apabila penarikan balik terlalu besar

ringkaskan

Strategi ini secara keseluruhannya lebih mudah dan praktikal, dengan cara menembusi garis purata 200 hari pada akhir bulan, dengan berkesan menangkap trend harga jangka panjang saham, penarikan balik dan risiko yang lebih kecil. Dengan menggabungkan lebih banyak penilaian indikator dan pengoptimuman dinamik, kestabilan strategi dan kadar pulangan dapat ditingkatkan lagi.

Kod sumber strategi
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © muscleriot
//200 dma
//2000-2016 backtested 
//1 signal per month only at end of month
//If > 200DMA enter long
//If < 200DMA goto cash
//results: 318% drawdown 17% vs 125% with 55% drawdown for buy and hold
//@version=5
strategy("200DMA last DOM - ajh", overlay =true,default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Use 100% of  equity always

dma200 = ta.sma(close, 200)
plot(dma200, color=color.red, linewidth = 2)
//e =dayofmonth(time)
// backtesting date range
from_day = input.int(defval=1, title="From Day", minval=1, maxval=31)
from_month = input.int(defval=1, title="From Month", minval=1, maxval=12)
from_year = input.int(defval=2018, title="From Year", minval=1900)

to_day = input.int(defval=1, title="To Day", minval=1, maxval=31)
to_month = input.int(defval=1, title="To Month", minval=1, maxval=12)
to_year = input.int(defval=9999, title="To Year", minval=1900)

time_cond = time > timestamp(from_year, from_month, from_day, 00, 00) and 
   time < timestamp(to_year, to_month, to_day, 23, 59)



xLong = dayofmonth(time) == 30 and (close > dma200) ? true : na
xSell = dayofmonth(time) == 30 and (close < dma200) ? true : na
plotchar(xLong, "long","L", color=color.green)    
plotchar(xSell, "Sell","S", color=color.red)    
if (xLong == true) and time_cond
    strategy.entry("long", strategy.long)
if (xSell == true) and time_cond
    strategy.close("long")