
Strategi ini menggabungkan indikator KDJ dan RSI untuk menentukan masa untuk membeli dan menjual. Ia menghantar isyarat perdagangan apabila indikator KDJ dan RSI menghantar isyarat membeli / menjual.
Strategi ini menggunakan tanda silang KDJ dan RSI untuk menentukan masa beli dan jual.
Khususnya, apabila garis J KDJ melintasi garis K dari arah bawah dianggap sebagai isyarat beli, dan apabila garis J melintasi garis K dari arah atas dianggap sebagai isyarat jual. Ini menunjukkan bahawa saham dibeli ketika beralih dari keadaan oversold ke keadaan overbought, dan dijual ketika beralih dari keadaan overbought ke keadaan oversold.
Pada masa yang sama, strategi ini digabungkan dengan RSI untuk menilai isyarat yang kuat dan lemah. RSI kurang dari 30 adalah oversold, dan RSI lebih besar daripada 70 adalah overbought. Apabila KDJ mengeluarkan isyarat beli, jika RSI juga ditunjukkan sebagai oversold, ia meningkatkan kebolehpercayaan isyarat beli. Sebaliknya, apabila KDJ mengeluarkan isyarat jual, jika RSI juga ditunjukkan sebagai oversold, ia meningkatkan kebolehpercayaan isyarat jual.
Secara keseluruhannya, strategi ini memberi isyarat dagangan apabila:
Tanda-tanda untuk membeli:
Menjual isyarat:
Gabungan penunjuk KDJ dan penunjuk RSI menjadikan isyarat perdagangan lebih dipercayai.
Indeks KDJ menilai keadaan overbought dan oversold, dan RSI menilai keadaan kuat dan lemah.
Kombinasi pelbagai syarat untuk membeli/menjual untuk mengelakkan kehilangan peluang kerana satu indikator.
RSI mempunyai tiga set parameter iaitu 6, 12 dan 24 tempoh, yang digunakan untuk tahap kitaran yang berbeza, menjadikan strategi lebih luas.
Indeks KDJ dan RSI boleh menunjukkan isyarat palsu, yang menyebabkan perdagangan yang tidak perlu.
Keadaan berganda dalam transaksi menambah kerumitan operasi strategi dan memerlukan pengesahan yang teliti.
Strategi ini juga perlu diuji dan dioptimumkan di pasaran yang berbeza, dan parameter perlu disesuaikan.
Anda boleh menguji penambahan petunjuk lain seperti garis Brin, penguatan isyarat dagangan.
Parameter untuk indikator KDJ dan RSI boleh dioptimumkan untuk lebih sesuai dengan tahap kitaran yang berbeza.
Risiko boleh dikawal dengan meningkatkan standard pencegahan kerugian.
Mekanisme penangguhan automatik boleh ditambah.
Strategi ini menggabungkan kelebihan indikator KDJ dan indikator RSI, meningkatkan ketepatan isyarat perdagangan dengan menyeberang indikator ganda untuk menentukan masa pembelian dan penjualan. Sementara indikator RSI yang menggabungkan parameter yang berbeza menentukan keadaan kosong, menjadikan strategi ini lebih luas. Strategi ini berkesan mengelakkan risiko isyarat palsu yang mungkin dibawa oleh indikator tunggal.
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 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/
// © innocentChart76064
//@version=5
strategy(title = "buy/sell KDJ RSI", overlay=true)
//Define KDJ parameter
kdj_length = input(9, title = "KDJ length")
signal = input(3,title="signal")
// Calculate KDJ values
bcwsma(s,l,m) =>
_bcwsma = float(na)
_s = s
_l = l
_m = m
_bcwsma := (_m*_s+(_l-_m)*nz(_bcwsma[1]))/_l
_bcwsma
c = close
h = ta.highest(high, kdj_length)
l = ta.lowest(low,kdj_length)
RSV = 100*((c-l)/(h-l))
kdj_k = bcwsma(RSV, signal, 1)
kdj_d = bcwsma(kdj_k, signal, 1)
kdj_j = 3 * kdj_k-2 * kdj_d
//Define RSI parameter
rsi_length_1 = input(6)
rsi_length_2 = input(12)
rsi_length_3 = input(24)
price = close
//Calculate RSI values
rsi_1 = ta.rsi(price, rsi_length_1)
rsi_2 = ta.rsi(price, rsi_length_2)
rsi_3 = ta.rsi(price, rsi_length_3)
// Trading conditions
longCondition = ta.crossover(kdj_j,kdj_k) and rsi_1 > rsi_2 or ta.crossover(kdj_j,kdj_k) and ta.crossover(rsi_1,rsi_3) or ta.crossover(rsi_1,rsi_3) and rsi_1<40
shortCondition = ta.crossunder(kdj_j,kdj_k) and rsi_1 < rsi_2 or ta.crossunder(kdj_j,kdj_k) and ta.crossunder(rsi_1,rsi_3) or ta.crossunder(rsi_1,rsi_3) and rsi_1>60
// Enter long trade
strategy.entry("Long", strategy.long, when=longCondition)
// Enter short trade
strategy.entry("Short", strategy.short, when=shortCondition)