
Strategi ini menghasilkan isyarat dagangan dengan mengira persilangan kedua-dua indikator MACD dan RSI. Apabila RSI melangkaui, ia menghasilkan isyarat membeli dan menjual apabila MACD bercabang. Strategi ini menggabungkan kelebihan dua jenis indikator yang berbeza, mempertimbangkan kecenderungan harga dan menggabungkan keadaan melangkaui, sehingga meningkatkan keberkesanan strategi.
Strategi ini menggunakan gabungan MACD dan RSI untuk menghasilkan isyarat perdagangan. Di antaranya, MACD digunakan untuk menentukan trend harga dan perubahan momentum, dan RSI digunakan untuk menentukan keadaan overbought dan oversold.
Strategi ini mula-mula mengira garis laju dan garis isyarat MACD. Garis cepat yang lebih besar daripada garis perlahan menghasilkan isyarat garpu emas, dan garis cepat yang lebih kecil daripada garis perlahan menghasilkan isyarat garpu mati. Ini menunjukkan bahawa trend harga dan momentum sedang berubah.
Pada masa yang sama, strategi ini mengira RSI dan menetapkan garis overbought dan oversold. Apabila RSI berada di bawah garis overbought, ia bermaksud oversold, dan apabila RSI berada di atas garis overbought, ia bermaksud overbought.
Dalam kes RSI overbought oversold, strategi menghasilkan isyarat beli apabila MACD Goldfork dan menghasilkan isyarat jual apabila MACD Deadfork. Iaitu, apabila trend harga bertukar, menggunakan kepekaan indikator MACD untuk menangkap titik perubahan. Dan fungsi indikator RSI adalah untuk mengelakkan perdagangan yang salah tanpa overbought oversold.
Strategi ini menggabungkan kelebihan kedua-dua indikator MACD dan RSI untuk meningkatkan keberkesanan strategi.
Indeks MACD sensitif terhadap perubahan harga, dan RSI mempertimbangkan keadaan overbought dan oversold.
Gabungan kedua-dua penunjuk ini dapat menyaring beberapa isyarat perdagangan bising dan mengurangkan perdagangan yang tidak perlu.
MACD mengukuhkan perbezaan purata harga, RSI mengukuhkan peratusan perubahan harga, kedua-dua kaedah boleh saling mengesahkan.
Harga tindak balas MACD berubah dengan cepat, harga tindak balas RSI jauh lebih ketara, penggunaan gabungan berkesan.
Strategi ini juga mempunyai risiko yang perlu diperhatikan:
MACD dan RSI adalah terdedah kepada kejadian yang tidak dijangka, yang mungkin menghasilkan isyarat yang salah. Parameter boleh disesuaikan dengan betul, isyarat penapis.
Saham tunggal mungkin kurang berkesan, indeks atau kombinasi boleh dipertimbangkan.
Ia perlu memenuhi kedua-dua syarat overbought dan oversold MACD crossover dan RSI untuk memberi isyarat, dan mungkin terlepas beberapa peluang. Ia boleh mengurangkan keperluan parameter RSI dengan sewajarnya.
Strategi ini juga boleh dioptimumkan dalam beberapa aspek:
Mengoptimumkan parameter MACD dan RSI supaya lebih sesuai dengan ciri-ciri pelbagai jenis.
Tambah strategi berhenti kerugian, berhenti tepat pada masanya apabila kerugian mencapai peratusan tertentu.
Dalam kombinasi dengan penunjuk lain, seperti Brinband, KDJ dan lain-lain, syarat isyarat dagangan yang lebih ketat ditetapkan.
Menjalankan strategi pada data frekuensi tinggi, memanfaatkan ciri-ciri MACD yang cepat dan perlahan untuk meningkatkan kesan strategi.
Berdasarkan hasil pengkajian semula, RSI disesuaikan untuk mencari kombinasi parameter terbaik.
Strategi silang MACD dan RSI, yang digabungkan dengan pengesanan trend dan penilaian overbought dan oversold, dapat memperoleh titik perubahan harga dengan berkesan, meningkatkan kesan strategi. Namun, terdapat batasan tertentu, masih perlu diuji dan dioptimumkan secara berterusan mengikut keadaan pasaran, untuk memanfaatkan sepenuhnya kesan strategi.
/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// © sabirt
strategy(title='MACD and RSI', overlay=true, shorttitle='MACD&RSI')
//MACD Settings
fastMA = input.int(title='Fast moving average', defval=12, minval=1)
slowMA = input.int(title='Slow moving average', defval=26, minval=1)
signalLength = input.int(9, minval=1)
//RSI settings
RSIOverSold = input.int(35, minval=1)
RSIOverBought = input.int(80, minval=1)
src = close
len = input.int(14, minval=1, title='Length')
up = ta.rma(math.max(ta.change(src), 0), len)
down = ta.rma(-math.min(ta.change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
wasOversold = rsi[0] <= RSIOverSold or rsi[1] <= RSIOverSold or rsi[2] <= RSIOverSold or rsi[3] <= RSIOverSold or rsi[4] <= RSIOverSold or rsi[5] <= RSIOverSold
wasOverbought = rsi[0] >= RSIOverBought or rsi[1] >= RSIOverBought or rsi[2] >= RSIOverBought or rsi[3] >= RSIOverBought or rsi[4] >= RSIOverBought or rsi[5] >= RSIOverBought
[currMacd, _, _] = ta.macd(close[0], fastMA, slowMA, signalLength)
[prevMacd, _, _] = ta.macd(close[1], fastMA, slowMA, signalLength)
signal = ta.ema(currMacd, signalLength)
avg_1 = math.avg(currMacd, signal)
crossoverBear = ta.cross(currMacd, signal) and currMacd < signal ? avg_1 : na
avg_2 = math.avg(currMacd, signal)
crossoverBull = ta.cross(currMacd, signal) and currMacd > signal ? avg_2 : na
strategy.entry('buy', strategy.long, when=crossoverBull and wasOversold)
strategy.close('buy', when=crossoverBear and wasOverbought)