Indikator Momentum RSI Strategi Dagangan Pembalikan

Penulis:ChaoZhang, Tarikh: 2024-01-03 12:09:48
Tag:

img

Ringkasan

Strategi ini mula-mula mengira ADX dan SMA pada jangka masa yang lebih tinggi untuk mengenal pasti arah trend dan perubahan. Kemudian RSI dikira pada jangka masa yang lebih rendah untuk mengenal pasti keadaan overbought dan oversold untuk menghasilkan isyarat perdagangan.

Logika Strategi

  1. ADX pada jangka masa yang lebih tinggi menilai kekuatan trend.

  2. SMA pada jangka masa yang lebih tinggi menilai arah trend. SMA yang meningkat mewakili harga yang meningkat, SMA yang jatuh mewakili harga yang jatuh.

  3. RSI pada jangka masa yang lebih rendah menilai keadaan overbought dan oversold.

  4. Apabila ADX naik, SMA naik, dan RSI overbought pada jangka masa yang lebih rendah, ia dianggap sebagai aliran naik menguat, pergi pendek di sini.

  5. Apabila ADX naik, SMA jatuh, dan RSI oversold pada jangka masa yang lebih rendah, ia dianggap trend penurunan menguat, pergi panjang di sini.

Analisis Kelebihan

  1. Menggabungkan penilaian trend dan perdagangan pembalikan, boleh menangkap peluang pembalikan dalam trend utama.

  2. Menggunakan penunjuk di seluruh jangka masa, meningkatkan kebolehpercayaan isyarat.

  3. Strategi RSI mudah difahami dan dilaksanakan.

Analisis Risiko

  1. Potensi untuk isyarat RSI palsu, menyebabkan perdagangan yang rugi.

  2. Penghakiman trend kitaran utama boleh salah, menjadikan strategi tidak sesuai dengan keadaan pasaran.

  3. Frekuensi perdagangan yang berpotensi tinggi, memberi kesan kepada keuntungan kerana kos transaksi.

Arahan pengoptimuman

  1. Uji lebih banyak kombinasi parameter untuk mencari kecocokan optimum antara parameter RSI dan ADX, SMA.

  2. Tambah mekanisme stop loss untuk mengawal kerugian perdagangan tunggal.

  3. Pertimbangkan penunjuk turun naik untuk mengurangkan saiz kedudukan apabila turun naik rendah.

  4. Mengoptimumkan harga masuk dan keluar tertentu, seperti masuk pendek apabila memecahkan bar tinggi sebelumnya.

Kesimpulan

Strategi ini menggabungkan penilaian trend dan isyarat pembalikan untuk mencari pembalikan tempatan dalam trend utama. Berbanding dengan hanya menggunakan RSI, ia lebih boleh dipercayai dan mengelakkan terperangkap. Secara keseluruhan strategi yang agak konservatif sesuai untuk pelabur yang ingin mengurangkan isyarat palsu.


/*backtest
start: 2022-12-27 00:00:00
end: 2024-01-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("RSI scalping", overlay=true)

CustSession 	= input(defval=true,title= "Custom Resolution / TF ? ",type=bool)
SessionTF0	= input(title="Custom Resolution / TF", defval="180")
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
length = input(7, title= "RSI length")
overSold = input( 28, title= "RSI oversold" )
overBought = input( 68, title= "RSI overbought" )

RSI = rsi(close, 7)

res		=	CustSession ? SessionTF0 : period

o = request.security(syminfo.tickerid, res, open)
c = request.security(syminfo.tickerid, res, close)
l = request.security(syminfo.tickerid, res, low)
h = request.security(syminfo.tickerid, res, high)

 // ADX higher time frame
dirmov(len) =>
	up = change(h)
	down = -change(l)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    truer = request.security(syminfo.tickerid, res, tr)
	truerange = rma(truer, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]

adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)

sig = adx(dilen, adxlen)

// SMA higher time frame
len = input(20, minval=1, title="SMA HTF Length")
smma = 0.0
smma := na(smma[1]) ? sma(c, len) : (smma[1] * (len - 1) + c) / len

ADXrising = (sig > sig[1]) and (sig[1] > sig[2]) and (sig[2]  > sig[3]) and (sig > 15)
SMAdrop= (smma < smma[1]) and (smma[1] < smma[2]) and (smma[2] < smma[3])
SMArising = (smma > smma[1]) and (smma[1] > smma[2]) and (smma[2] > smma[3])
longCondition = crossover(RSI, overBought) and ADXrising and SMArising
shortCondition = crossunder(RSI, overSold) and SMAdrop and ADXrising 

if (longCondition)
    strategy.entry("Long entry", strategy.long)

if (shortCondition)
    strategy.entry("Short Entry", strategy.short)

Lebih lanjut