
Strategi KDJ Breakthrough Buy adalah strategi perdagangan kuantitatif berdasarkan indikator KDJ. Strategi ini terutama menggunakan indikator KDJ J line dan garis D untuk membentuk sinyal beli, melakukan multiple entry saat melewati garis D pada garis J. Strategi ini relatif sederhana, mudah diterapkan, dan cocok untuk pemula dalam perdagangan kuantitatif.
Indikator teknis utama yang digunakan dalam strategi ini adalah indikator KDJ. Indikator KDJ terdiri dari garis K, D, dan J. Di antaranya:
Nilai K = {harga penutupan hari - harga terendah dalam N hari} ÷ {harga tertinggi dalam N hari - harga terendah) × 100;
Moving average M-hari dengan nilai D = K;
J = 3K-2D.
Berdasarkan pengaturan indikator KDJ, ketika nilai J naik melewati nilai D, menunjukkan bahwa harga saham berbalik naik, Anda dapat melakukan lebih banyak; ketika nilai J turun melewati nilai D, menunjukkan bahwa harga saham berbalik turun, Anda dapat melakukan shorting.
Strategi ini adalah menggunakan aturan di atas, ketika melewati D di garis J, yaitu ketika garpu terbentuk, dinilai sebagai sinyal beli, masuk lebih banyak. ❚ exitsignal adalah garis J lebih besar dari 100 dan keluar dari posisi lebih banyak.
Menggunakan indikator KDJ untuk menentukan waktu pembelian, yang secara keseluruhan mempertimbangkan informasi harga saham yang turun dan turun, lebih dapat diandalkan.
Aturan penilaian sinyal strategi sederhana, jelas, mudah dipahami dan diterapkan, cocok untuk pemula dalam perdagangan kuantitatif.
Strategi Stop Loss telah diterapkan untuk mengontrol risiko secara efektif.
Ada banyak ruang untuk mengoptimalkan parameter kebijakan, dan implementasinya fleksibel.
Indeks KDJ mudah terbentuk sinyal palsu yang dapat menyebabkan kerugian.
Setelah membeli, koreksi short-line pasar dapat membuat stop loss keluar dan tidak dapat menangkap tren besar.
Setting parameter yang tidak tepat dapat menyebabkan perdagangan yang sering atau sinyal yang tidak jelas.
Perhatikan dampak biaya transaksi pada keuntungan keseluruhan.
Metode pengendalian risiko utama: parameter optimasi yang masuk akal, peningkatan indeks pelacakan, pelepasan jangkauan stop loss yang tepat, dll.
Mengoptimalkan parameter KDJ, mencari kombinasi parameter terbaik.
Tambahkan kondisi penyaringan untuk menghindari sinyal palsu.
Anda dapat memilih pengaturan parameter yang berbeda berdasarkan jenis pasar.
Stop loss dapat dikurangi dengan tepat untuk mengurangi kemungkinan penarikan stop loss.
Ini bisa digabungkan dengan analisis indikator seperti volume transaksi untuk menghindari penipuan.
Strategi KDJ Breakthrough Buying secara keseluruhan relatif sederhana, praktis, dan mudah diterapkan, terutama cocok untuk pemula yang berdagang kuantitatif. Strategi ini memiliki keuntungan perdagangan tertentu, tetapi juga memiliki beberapa risiko, yang perlu dioptimalkan secara khusus untuk sepenuhnya memanfaatkan nilai strategi. Secara keseluruhan, strategi ini layak untuk penelitian dan aplikasi.
/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// ## !<------------------ Script -------------------------->
//@version=5
strategy('KDJ NVDA', shorttitle='KDJ')
ilong = input(9, title='period')
isig = input(3, title='signal')
bcwsma(s, l, m) =>
_bcwsma = float(na)
_s = s
_l = l
_m = m
_bcwsma := (_m * _s + (_l - _m) * nz(_bcwsma[1])) / _l
_bcwsma
// profit strategy add
profit_m = input.float(1.20,"Profit Margin",minval=1.0,maxval=1.99,step=0.05)
stop_m = input.float(0.98,"Stop Loss Margin",minval=0.0,maxval=1,step=0.05)
// Make input options that configure backtest date range
startDate = input.int(title="Start Date", defval=1, minval=1,maxval=31)
startMonth = input.int(title="Start Month", defval=1,minval=1,maxval=12)
startYear = input.int(title="Start Year", defval=2023,minval=2018,maxval=2024)
endDate = input.int(title="End Date", defval=1, minval=1,maxval=31)
endMonth = input.int(title="End Month", defval=1,minval=1,maxval=12)
endYear = input.int(title="End Year", defval=2024,minval=2018,maxval=2099)
// intialization of variables
// Look if the close time of the current bar
// falls inside the date range
inDateRange = (time >= timestamp(syminfo.timezone, startYear,startMonth, startDate, 0, 0)) and (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))
c = close
h = ta.highest(high, ilong)
l = ta.lowest(low, ilong)
RSV = 100 * ((c - l) / (h - l))
pK = bcwsma(RSV, isig, 1)
pD = bcwsma(pK, isig, 1)
pJ = 3 * pK - 2 * pD
KDJ = math.avg(pD, pJ, pK)
go_long= ta.crossunder(pD,pJ)
if (inDateRange and go_long)
strategy.entry("S",strategy.long,comment="C")
// strategy.exit("S", limit=c*profit_m, stop=c*stop_m, comment="SL/SP")
if (inDateRange and pJ > 100)
strategy.close("S", comment="TP")
// Plot options
// plot(pK, color= #1E88E5)
// plot(pD, color=#FF6F00)
// plot(ma, color=color.yellow)
// bgcolor(pJ>pD? color.green : color.red)
plot(pK, title='% K', color=color.new(color.orange, 0))
plot(pD, title='% D', color=color.new(color.lime, 0))
plot(pJ, title='% J', color=color.new(color.fuchsia, 0))
plot(KDJ, title='KDJ', color=color.new(color.white, 0))
// </PINE> </SCRIPT>
// ## This source code is subject to the terms of the ozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// ## !<------------------ End Script -------------------------->