Menggabungkan penunjuk MACD dan RSI untuk berdagang pasaran yang tidak menentu


Tarikh penciptaan: 2023-09-13 15:14:43 Akhirnya diubah suai: 2023-09-13 15:14:43
Salin: 0 Bilangan klik: 751
1
fokus pada
1621
Pengikut

Strategi ini dinamakan strategi perdagangan pasaran goyah gabungan MACD dan RSI. Strategi ini direka khusus untuk pasaran goyah kripto yang baru-baru ini berkembang, membentuk isyarat perdagangan dengan menggabungkan indikator trend MACD dan indikator momentum RSI.

MACD adalah indeks purata bergerak, yang dapat menentukan trend pasaran dan pembalikan trend. Apabila MACD melintasi garis cepat, ia menghasilkan isyarat beli; dan apabila ia melintasi garis pendek, ia menghasilkan isyarat jual.

RSI adalah indeks yang agak kuat, menilai pasaran overbought dan oversold. RSI lebih tinggi daripada 50 menandakan overbought, dan lebih rendah daripada 50 menandakan oversold. Strategi ini menggunakan indikator RSI untuk menyaring sebahagian daripada isyarat bunyi yang dihasilkan oleh indikator MACD.

Strategi dagangan adalah seperti berikut:

Apabila MACD melintasi garisan perlahan pada garis pantas, yang mewakili trend jangka pendek yang bertukar dari turun ke bawah, tetapi perlu di RSI rendah ((di bawah parameter yang ditetapkan) untuk mengesahkan isyarat beli, untuk mengelakkan pembalikan kerugian di kawasan overbought;

Apabila MACD melintasi garis perlahan di bawah garis pantas, ia mewakili trend jangka pendek yang berbalik ke bawah, tetapi ia mesti berada di RSI yang tinggi (lebih tinggi daripada parameter yang ditetapkan) untuk mengesahkan isyarat jual untuk mengelakkan kerugian berbalik di kawasan oversold.

Strategi ini sesuai untuk pasaran kripto yang lebih maju dan bergolak, untuk mengambil peluang untuk mendapatkan keuntungan dari pembalikan tinggi dan rendah. Tetapi langkah-langkah pencegahan harus diambil untuk mengehadkan kerugian tunggal. Selain itu, parameter MACD dan RSI perlu disesuaikan dengan pasaran untuk menghasilkan isyarat perdagangan yang lebih dipercayai.

Secara keseluruhan, penggunaan gabungan indikator MACD dan RSI dapat meningkatkan keberkesanan strategi perdagangan untuk membetulkan pasaran yang bergolak. Namun, tidak ada petunjuk teknikal yang dapat meramalkan pasaran dengan sempurna, dan peniaga juga perlu mengekalkan penghakiman mengenai trend pasaran dan menyesuaikan strategi dengan fleksibel.

Kod sumber strategi
/*backtest
start: 2022-09-06 00:00:00
end: 2023-03-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Range Strat - MACD/RSI", 
     overlay=true,
     default_qty_type=strategy.percent_of_equity,
     default_qty_value=100, precision=2, initial_capital=100,
     pyramiding=2,
     commission_value=0.05)

// Make input options that configure backtest date range
startDate = input(title="Start Date", defval=13)
startMonth = input(title="Start Month", defval=6)
startYear = input(title="Start Year", defval=2022)

endDate = input(title="End Date", defval=1)
endMonth = input(title="End Month", defval=7)
endYear = input(title="End Year", defval=2200)

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

// RSI Settings
length = input( 14 )
overSold = input( 55 )
overBought = input( 50 )
price = open
vrsi = ta.rsi(price, length)
cu = (vrsi <= overSold)
co = (vrsi >= overBought)

//MACD Settings
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ta.ema(open, fastLength) - ta.ema(open, slowlength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD
MACDco = ta.crossover(delta, 0)
MACDcu = ta.crossunder(delta, 0)

// Strategy Entry
if (not na(vrsi))
	if (inDateRange and MACDco and cu)
		strategy.entry("LONG", strategy.long, comment="LONG")
	if (inDateRange and MACDcu and co)
		strategy.entry("SHORT", strategy.short, comment="SHORT")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)