KDJ Sunshine menerobos strategi pembelian

Penulis:ChaoZhang, Tanggal: 2024-02-01 10:28:12
Tag:

KDJ阳线突破买入策略

Pengamatan

Strategi KDJ adalah strategi perdagangan kuantitatif yang didasarkan pada indikator KDJ. Strategi ini terutama memanfaatkan penyeberangan emas garis J dan garis D dari indikator KDJ untuk membentuk sinyal pembelian, melakukan banyak entri ketika garis J melintasi garis D. Strategi ini lebih sederhana, mudah diterapkan, dan cocok untuk pemula perdagangan kuantitatif.

Prinsip Strategi

Indikator teknis utama yang digunakan dalam strategi ini adalah indikator KDJ. Indikator KDJ terdiri dari garis K, garis D, dan garis J. Di antaranya:

Nilai K = ((harga penutupan hari - harga terendah dalam N hari) ÷ ((harga tertinggi dalam N hari - harga terendah) × 100;

Nilai D = rata-rata pergerakan hari M dari nilai K;

J = 3K-2D.

Menurut pengaturan indikator KDJ, ketika nilai J naik dengan nilai D, menunjukkan bahwa harga saham terbalik naik, lebih banyak dapat dilakukan; ketika nilai J turun dengan nilai D, menunjukkan bahwa harga saham terbalik turun, dapat dilakukan kosong.

Strategi ini adalah menggunakan aturan di atas, ketika garis J melintasi garis D, yaitu saat pembentukan garpu emas, memutuskan untuk membeli sinyal dan melakukan banyak masuk; exitsignal untuk keluar dari posisi jika garis J lebih besar dari 100.

Keunggulan Strategis

  1. Dengan menggunakan indikator KDJ untuk menentukan waktu pembelian, indikator ini secara komprehensif memperhitungkan informasi penurunan harga saham dan lebih dapat diandalkan.

  2. Aturan penilaian sinyal strategis sederhana, jelas, dan mudah dipahami, cocok untuk pemula perdagangan kuantitatif.

  3. Dengan menggunakan strategi stop loss, risiko dapat dikendalikan secara efektif.

  4. Parameter strategi mengoptimalkan ruang yang besar dan implementasi yang fleksibel.

Risiko Strategis

  1. Indikator KDJ mudah terbentuk sinyal palsu, yang dapat menyebabkan kerugian.

  2. Penyesuaian garis pendek pasar setelah pembelian dapat membuat stop loss keluar dan tidak dapat menangkap tren besar.

  3. Pengaturan parameter yang tidak benar dapat menyebabkan transaksi yang sering atau sinyal yang tidak jelas.

  4. Perhatikan dampak biaya transaksi pada keuntungan keseluruhan.

Metode pengendalian risiko utama: optimasi parameter yang masuk akal, peningkatan indeks pelacakan, pelebaran jangkauan stop loss yang tepat, dll.

Optimasi arah

  1. Mengoptimalkan parameter KDJ untuk menemukan kombinasi parameter terbaik.

  2. Menambahkan kondisi penyaringan untuk menghindari sinyal palsu.

  3. Anda dapat memilih pengaturan parameter yang berbeda tergantung pada jenis pasar (Bull and Bear Market).

  4. Untuk mengurangi kemungkinan keluar dari stop loss, ukuran stop loss dapat dilepaskan dengan tepat.

  5. Analisis indikator seperti volume transaksi dapat dikombinasikan untuk menghindari penipuan.

Pengamatan

Strategi pembelian KDJ secara keseluruhan sederhana, praktis, dan mudah diterapkan, terutama cocok untuk pemula yang ingin melakukan transaksi kuantitatif. Strategi ini memiliki beberapa keuntungan perdagangan, tetapi juga ada beberapa risiko yang perlu dioptimalkan secara khusus untuk sepenuhnya memanfaatkan nilai strategi. Secara keseluruhan, strategi ini layak untuk penelitian dan penerapan.


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


Informasi lebih lanjut