Strategi Dagangan Berdasarkan Isyarat Crossover MACD dan RSI

Penulis:ChaoZhang, Tarikh: 2023-12-18 17:19:03
Tag:

img

Ringkasan

Strategi ini menggunakan penunjuk MACD untuk menilai trend pasaran dan mengenal pasti titik dagangan yang berpotensi, sambil menggabungkan penunjuk RSI untuk mengesahkan keadaan overbought / oversold. Isyarat dagangan hanya dihasilkan apabila MACD memberikan isyarat beli / jual dan RSI pada masa yang sama mengesahkan bahawa pasaran oversold / overbought. Ini dapat menapis isyarat palsu dengan berkesan dan meningkatkan kestabilan strategi.

Prinsip Strategi

Pengiraan Indikator MACD

Indikator MACD terdiri daripada perbezaan antara EMA cepat dan EMA perlahan, mencerminkan perbezaan antara trend harga purata jangka pendek dan jangka panjang.

Apabila garisan pantas melintasi di atas garis perlahan, ia adalah isyarat salib emas yang menunjukkan trend menaik. Apabila garisan pantas melintasi di bawah garis perlahan, ia adalah isyarat salib kematian yang menunjukkan trend menurun.

Pengiraan Indikator RSI

Indikator RSI mencerminkan keadaan overbought / oversold di pasaran. Parameter tempoh RSI ditetapkan kepada 14 dalam strategi ini.

RSI di bawah 30 menunjukkan aset itu terlalu terjual kerana pembeli melebihi penjual untuk jangka masa yang panjang.

RSI di atas 70 menunjukkan aset itu terlalu banyak kerana tekanan jual melebihi tekanan pembelian sepanjang garis masa yang dijejaki.

Bacaan di bawah 30 menunjukkan keadaan terlalu banyak dijual manakala bacaan di atas 70 menunjukkan keadaan terlalu banyak dibeli.

Isyarat Strategi

Mengandalkan hanya MACD untuk isyarat perdagangan boleh mengakibatkan beberapa isyarat palsu. Strategi ini menggunakan RSI untuk menapis isyarat, hanya menghasilkan isyarat perdagangan sebenar apabila MACD memberikan isyarat dan RSI pada masa yang sama mengesahkan kelebihan beli / oversold.

Khususnya, apabila MACD menjana salib emas, jika RSI <=34 pada masa yang sama, mengesahkan pasaran oversold, isyarat beli dihasilkan. Apabila MACD membentuk salib kematian, jika RSI>=75, mengesahkan pasaran oversold, isyarat jual dihasilkan.

Mekanisme pengesahan berganda ini dapat menapis banyak isyarat perdagangan yang tidak boleh dipercayai, dengan itu meningkatkan kestabilan dan kebolehpercayaan strategi.

Analisis Kelebihan

Penapis Indikator Ganda Meningkatkan Kebolehpercayaan Isyarat

Strategi ini menggabungkan penunjuk MACD dan RSI untuk pengesahan berganda, yang dapat mengurangkan gangguan dari isyarat palsu dan menapis beberapa isyarat perdagangan yang tidak boleh dipercayai, dengan itu meningkatkan kebolehpercayaan dan kestabilan isyarat.

Penghakiman Trend yang Jelas

Sebagai penunjuk harga & jumlah, MACD dapat menentukan dengan jelas aliran naik dan penurunan pasaran. Digabungkan dengan pertimbangan overbought / oversold RSI, ia dapat menangkap dengan tepat titik pembalikan penting di pasaran. Isyarat kemasukan dan keluar jelas.

Ruang Pengoptimuman Parameter Besar

Parameter komponen MACD dan RSI strategi ini boleh dioptimumkan dan diselaraskan agar sesuai dengan kitaran dan instrumen perdagangan yang berbeza.

Mudah Difahami dan Dipatuhi

MACD, RSI dan penunjuk lain yang digunakan dalam strategi ini adalah penunjuk teknikal yang sangat biasa dan biasa digunakan yang mudah difahami. Kod strategi juga sangat mudah dan intuitif, yang membawa kemudahan untuk penyesuaian parameter dan pengoptimuman.

Analisis Risiko

Mungkin Melewatkan Beberapa Peluang Dagangan

Strategi ini mengamalkan pendekatan pengesahan berganda yang agak konservatif yang, dalam menapis isyarat palsu, boleh menyebabkan beberapa peluang perdagangan yang hilang yang boleh mengakibatkan keuntungan berdasarkan isyarat satu penunjuk.

  • Penyelesaian: Luaskan julat ambang RSI dengan sewajarnya untuk mengurangkan ketegasan pengesahan dan membolehkan strategi menangkap lebih banyak peluang perdagangan.

Kejadian kerugian semasa pergerakan pasaran yang melampau

Dalam kes turun naik pasaran yang melampau, kedua-dua penunjuk MACD dan RSI mungkin terlambat membuat penilaian, yang membawa kepada isyarat perdagangan yang salah yang dihasilkan oleh strategi dan kerugian yang timbul.

  • Penyelesaian: Masukkan mekanisme stop loss untuk mengelakkan kerugian yang berlebihan dalam perdagangan tunggal. Sesuaikan parameter untuk membina kepekaan yang mencukupi kepada penunjuk pergerakan pasaran yang melampau.

Prestasi sangat bergantung pada tetapan parameter

Prestasi strategi ini sangat bergantung kepada kualiti tetapan parameter MACD, RSI dan lain-lain. konfigurasi parameter yang salah boleh dengan mudah membawa kepada isyarat perdagangan terbalik.

  • Penyelesaian: Mengoptimumkan kombinasi parameter melalui backtesting untuk mencari tetapan parameter yang optimum.

Arahan pengoptimuman

Menggabungkan mekanisme Stop Loss untuk mengawal risiko

Peraturan stop loss berasaskan harga atau penunjuk boleh dilaksanakan untuk keluarkan kedudukan dengan ambang kerugian yang dibenarkan yang telah ditentukan terlebih dahulu, dengan berkesan menutup kerugian pada perdagangan individu.

Sesuaikan Parameter Untuk Sesuai Ciri Pasaran

Pengoptimuman berterusan parameter utama seperti tempoh garis cepat / perlahan MACD dan ambang overbought / oversold RSI untuk menyelaraskan dengan struktur kitaran yang berkembang dan keunikan instrumen perdagangan yang berbeza.

Ujian Antara Aset Untuk Menemui Yang Paling Sesuai

Melakukan backtest di indeks ekuiti, mata wang kripto, pasangan forex, komoditi dan aset lain untuk mengetahui pasaran mana yang paling sesuai dengan ciri strategi.

Masukkan Penunjuk Tambahan Untuk Pengesahan Multidimensional

Penunjuk seperti Stochastics, OBV, CCI dan lain-lain boleh ditambah di atas komponen MACD dan RSI untuk ketepatan pengesahan yang lebih besar melalui pendekatan penapisan isyarat berbilang dimensi.

Kesimpulan

Strategi ini menentukan trend pasaran dan isyarat perdagangan berdasarkan penunjuk MACD, sementara RSI mengesahkan keadaan overbought / oversold untuk menapis isyarat palsu.

Prestasi boleh ditingkatkan lagi melalui teknik pengoptimuman, hentian kerugian, pengesahan multiprong dan lain-lain. Dengan logik yang mudah dan kestabilan yang baik, ia berfungsi sebagai strategi permulaan yang baik untuk pemula untuk berlatih dan mengoptimumkan.


/*backtest
start: 2023-11-17 00:00:00
end: 2023-12-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(default_qty_type = strategy.percent_of_equity, default_qty_value = 25, pyramiding = 10, title="MACD crossover while RSI Oversold/Overbought", overlay=true, shorttitle="MACD Cross + RSI Oversold Overbought", initial_capital = 1000)

//MACD Settings
fastMA = input(title="Fast moving average",  defval = 12, minval = 7) //7 16
slowMA = input(title="Slow moving average",  defval = 26, minval = 7) //24 26 
signalLength = input(9,minval=1) //9 6

//RSI settings
RSIOverSold = input(34 ,minval=1) //26
RSIOverBought = input(75 ,minval=1) //77
src = close, len = input(14, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(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,_,_] = macd(close[0], fastMA, slowMA, signalLength)
[prevMacd,_,_] = macd(close[1], fastMA, slowMA, signalLength)
signal = ema(currMacd, signalLength)

crossoverBear = cross(currMacd, signal) and currMacd < signal ? avg(currMacd, signal) : na
crossoverBull = cross(currMacd, signal) and currMacd > signal ? avg(currMacd, signal) : na

plotshape(crossoverBear and wasOverbought , title='MACD-BEAR', style=shape.triangledown, text='overbought', location=location.abovebar, color=orange, textcolor=orange, size=size.tiny) 
plotshape(crossoverBull and wasOversold, title='MACD-BULL', style=shape.triangleup, text='oversold', location=location.belowbar, color=lime, textcolor=lime, size=size.tiny) 

// Configure backtest start date with inputs
startDate = input(title="Start Date",
     defval=8, minval=1, maxval=31)
startMonth = input(title="Start Month",
     defval=3, minval=1, maxval=12)
startYear = input(title="Start Year",
     defval=2021, minval=1800, maxval=2100)

afterStartDate = (time >= timestamp(syminfo.timezone,
     startYear, startMonth, startDate, 0, 0))
     
if (afterStartDate==true)
    posSize = abs(strategy.position_size)
    strategy.order("long", strategy.long, when = crossoverBull and wasOversold) 
    strategy.order("long", long=false, qty=posSize/3, when = crossoverBear and wasOverbought) 


Lebih lanjut