KDJ Golden Cross Long Entry Strategy

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

img

Ringkasan

Strategi KDJ Golden Cross Long Entry adalah strategi perdagangan kuantitatif berdasarkan penunjuk KDJ. Strategi ini terutamanya menggunakan salib emas garis J dan garis D penunjuk KDJ untuk menjana isyarat beli dan pergi lama apabila garis J melintasi di atas garis D. Strategi ini agak mudah dan mudah dilaksanakan, sesuai untuk pemula perdagangan kuantitatif.

Logika Strategi

Penunjuk teknikal utama yang digunakan dalam strategi ini adalah penunjuk KDJ. Penunjuk KDJ terdiri daripada garis K, garis D dan garis J. Di mana:

K = (Tutup semasa - Minimum Minimum selama N hari yang lalu) รท (Meningkatkan tertinggi selama N hari yang lalu - Minimum Minimum selama N hari yang lalu) x 100;

D = purata bergerak hari-hari K;

J = 3K - 2D.

Menurut peraturan penunjuk KDJ, apabila garisan J melintasi di atas garisan D, ia menunjukkan bahawa harga berbalik ke atas dan kedudukan panjang boleh diambil; apabila garisan J jatuh di bawah garisan D, ia menandakan bahawa harga berbalik ke bawah dan kedudukan pendek boleh dimulakan.

Strategi ini menggunakan peraturan di atas dan menghasilkan isyarat beli apabila garis J melintasi di atas garis D, iaitu bentuk salib emas, untuk pergi panjang. Isyarat keluar adalah apabila J pergi di atas 100 untuk menutup kedudukan panjang.

Kelebihan

  1. Menggunakan penunjuk KDJ untuk menentukan masa kemasukan yang menggabungkan pergerakan harga naik dan turun, dengan itu lebih dipercayai.

  2. Strategi ini mempunyai peraturan isyarat yang jelas dan mudah difahami dan dilaksanakan, sesuai untuk pemula.

  3. Diperkenalkan stop profit dan stop loss untuk mengawal risiko dengan berkesan.

  4. Ruang yang luas untuk pengoptimuman parameter dan pelaksanaan yang fleksibel.

Risiko

  1. Indikator KDJ cenderung menghasilkan isyarat palsu yang membawa kepada kerugian.

  2. Penyesuaian jangka pendek pasaran selepas membeli boleh mencetuskan keluar stop loss dan terlepas trend utama.

  3. Tetapan parameter yang tidak betul boleh membawa kepada overtrading atau isyarat yang tidak jelas.

  4. Perlu mempertimbangkan kos urus niaga kesan terhadap keuntungan keseluruhan.

Kaedah pengurusan risiko utama: Mengoptimumkan parameter dengan betul, mengesan indeks untuk meningkatkan, meluaskan julat stop loss dengan sewajarnya, dll.

Arahan pengoptimuman

  1. Mengoptimumkan parameter KDJ untuk mencari kombinasi parameter terbaik.

  2. Tambah keadaan penapisan untuk mengelakkan isyarat palsu.

  3. Boleh memilih tetapan parameter yang berbeza berdasarkan jenis pasaran (pasaran lembu atau lembu).

  4. Boleh meluaskan julat stop loss dengan sewajarnya untuk mengurangkan kebarangkalian keluar stop loss.

  5. Boleh menggabungkan jumlah dagangan dan penunjuk lain untuk analisis untuk mengelakkan terperangkap.

Ringkasan

Strategi KDJ Golden Cross Long Entry adalah agak mudah dan praktikal secara keseluruhan, mudah untuk pemula untuk memulakan dan melaksanakan. Strategi ini mempunyai kelebihan perdagangan tertentu tetapi juga mempunyai beberapa risiko. Ia memerlukan pengoptimuman yang disasarkan untuk merealisasikan sepenuhnya nilai strategi. Secara keseluruhan, strategi ini layak penyelidikan dan aplikasi utama.


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


Lebih lanjut