Akhir Bulan Breakout pada 200 Hari Moving Average Strategi

Penulis:ChaoZhang, Tanggal: 2023-12-08 16:02:08
Tag:

img

Gambaran umum

Strategi ini didasarkan pada price breakout dari 200 hari moving average pada akhir bulan untuk menangkap arah tren harga saham. posisi panjang akan ditetapkan ketika harga menembus 200 hari MA, jika tidak posisi akan dibersihkan.

Prinsip Strategi

  1. Gunakan rata-rata bergerak sederhana 200 hari dma200 sebagai indikator untuk menilai tren harga
  2. Pada hari perdagangan terakhir setiap bulan, menilai apakah harga penutupan lebih tinggi dari dma200
  3. Jika harga penutupan melewati MA 200 hari, buat posisi panjang penuh pada pembukaan hari perdagangan berikutnya
  4. Jika harga penutupan melanggar di bawah MA 200 hari, clear semua posisi pada pembukaan hari perdagangan berikutnya
  5. Hal ini dapat mencapai efek mengikuti tren, menetapkan posisi ketika harga saham memasuki tren naik dan menghindari tren turun

Analisis Keuntungan

  1. Keuntungan dari strategi ini adalah bahwa ia sederhana dan efektif, mudah dimengerti dan diterapkan
  2. Mengambil posisi pada akhir bulan dapat mengurangi frekuensi perdagangan dan meminimalkan biaya perdagangan dan dampak slippage
  3. MA 200 hari adalah indikator penilaian tren jangka menengah dan panjang yang sangat umum digunakan, efektif untuk sebagian besar saham
  4. Strategi ini memiliki drawdown yang relatif kecil dan penurunan maksimum, dengan risiko yang dapat dikendalikan

Analisis Risiko

  1. MA 200 hari mungkin tidak cukup sensitif bagi beberapa saham untuk menangkap pembalikan harga tepat waktu
  2. Hanya ada 1 titik perdagangan per bulan untuk mengambil posisi, yang mungkin kehilangan peluang naik/turun
  3. Strategi mungkin gagal menilai dengan benar ketika tren pasar secara keseluruhan tidak pasti
  4. Indikator lain harus dikombinasikan untuk mengurangi risiko ini

Arahan Optimasi

  1. Pertimbangkan untuk meningkatkan titik perdagangan di awal atau pertengahan bulan untuk meningkatkan frekuensi strategi
  2. Tambahkan indikator seperti Bollinger Bands untuk menilai fluktuasi harga dan menghindari perdagangan yang salah
  3. Mengevaluasi efek pencocokan dari parameter MA yang berbeda pada stok yang berbeda untuk menemukan kombinasi parameter yang optimal
  4. Menetapkan mekanisme ukuran posisi dinamis untuk menghentikan kerugian secara aktif ketika penarikan menjadi terlalu tinggi

Ringkasan

Strategi ini relatif sederhana dan praktis secara keseluruhan, secara efektif menangkap tren harga saham jangka menengah dan panjang melalui akhir bulan dari MA 200 hari, dengan penarikan dan risiko yang relatif kecil. Dengan menggabungkan lebih banyak indikator dan optimasi dinamis, stabilitas dan profitabilitas strategi dapat ditingkatkan lebih lanjut.


/*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")

Lebih banyak