Strategi ini menggabungkan penunjuk KDJ dan penunjuk RSI untuk menentukan masa pembelian dan penjualan. Ia menghasilkan isyarat perdagangan apabila penunjuk KDJ dan penunjuk RSI mengeluarkan isyarat beli / jual.
Strategi ini menggunakan persilangan penunjuk KDJ dan penunjuk RSI untuk menilai masa pembelian dan penjualan.
Secara khusus, apabila garis J dari KDJ melintasi di atas garis K dari bawah ke atas, ia dianggap isyarat beli. dan apabila garis J melintasi di bawah garis K dari atas ke bawah, ia adalah isyarat jual. ini bermaksud membeli apabila stok berubah dari oversold kepada overbought dan menjual apabila ia berubah dari overbought kepada oversold.
Pada masa yang sama, strategi ini menggabungkan penunjuk RSI untuk menilai kekuatan isyarat. RSI di bawah 30 adalah oversold dan RSI di atas 70 adalah overbought. Apabila KDJ mengeluarkan isyarat beli, jika penunjuk RSI juga menunjukkan oversold, ia meningkatkan kebolehpercayaan isyarat beli. Sebaliknya, apabila KDJ mengeluarkan isyarat jual, jika RSI juga menunjukkan overbought, ia meningkatkan kebolehpercayaan isyarat jual.
Ringkasnya, strategi ini menjana isyarat perdagangan dalam situasi berikut:
Isyarat beli:
Sinyal jual:
Menggabungkan penunjuk KDJ dan penunjuk RSI menjadikan isyarat perdagangan lebih dipercayai.
Penunjuk KDJ menilai keadaan overbought/oversold, manakala penunjuk RSI menilai kekuatan.
Keadaan pembelian/penjualan yang berbilang mengelakkan peluang yang hilang kerana sebab dari satu penunjuk.
Parameter RSI ditetapkan pada 6, 12 dan 24 tempoh, yang sesuai untuk tahap kitaran yang berbeza, menjadikan strategi lebih serba boleh.
Kedua-dua penunjuk KDJ dan RSI boleh memberikan isyarat palsu, yang membawa kepada perdagangan yang tidak perlu.
Keadaan perdagangan yang pelbagai meningkatkan kerumitan operasi strategi dan memerlukan pengesahan yang teliti.
Strategi ini perlu diuji dan dioptimumkan di pasaran yang berbeza, dan parameter perlu disesuaikan.
Uji tambah penunjuk lain seperti Bollinger Bands untuk menguatkan isyarat perdagangan.
Mengoptimumkan parameter KDJ dan RSI untuk menjadikannya sesuai dengan tahap kitaran yang berbeza.
Meningkatkan standard stop loss untuk mengawal risiko.
Tambahkan mekanisme stop loss automatik untuk menghentikan kerugian apabila harga berbalik.
Strategi ini menggabungkan kelebihan penunjuk KDJ dan penunjuk RSI dengan menggunakan persilangan kedua-dua penunjuk untuk menentukan masa pembelian dan penjualan, yang meningkatkan ketepatan isyarat perdagangan. Menggunakan penunjuk RSI dengan parameter yang berbeza juga menjadikan strategi lebih serba boleh. Strategi ini secara berkesan mengelakkan risiko isyarat palsu yang mungkin berlaku dengan satu indikator. Dengan meningkatkan parameter, menambah penunjuk tambahan, mekanisme hentian kerugian, dan lain-lain, prestasi strategi ini dapat ditingkatkan lagi.
/*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)