Penunjuk momentum RSI menangkap strategi perdagangan pembalikan


Tarikh penciptaan: 2024-01-03 12:09:48 Akhirnya diubah suai: 2024-01-03 12:09:48
Salin: 1 Bilangan klik: 661
1
fokus pada
1621
Pengikut

Penunjuk momentum RSI menangkap strategi perdagangan pembalikan

Gambaran keseluruhan

Strategi ini mulakan dengan mengira ADX dan SMA pada jangka masa yang tinggi untuk mengenal pasti arah trend dan perubahan trend. Kemudian menghitung RSI pada jangka masa yang rendah untuk mengenal pasti fenomena overbought dan oversold untuk membentuk isyarat perdagangan.

Prinsip Strategi

  1. Mengira kekuatan trend pada ADX pada jangka masa yang tinggi. ADX yang meningkat mewakili peningkatan trend.

  2. Mengambil kira arah trend pada jangka masa tinggi. Kenaikan SMA mewakili kenaikan harga, penurunan SMA mewakili penurunan harga.

  3. RSI dikira pada jangka masa rendah untuk menilai fenomena overbought dan oversold. RSI yang lebih tinggi daripada paras paras paras menunjukkan overbought dan RSI yang lebih rendah daripada paras paras menunjukkan oversold.

  4. Apabila ADX naik, SMA naik, RSI dalam jangka masa rendah lebih tinggi, ia boleh dibuat kosong.

  5. Apabila ADX naik, SMA turun, dan RSI dalam jangka masa rendah oversold, anda boleh melakukan lebih banyak apabila anda menganggap trend sedang menguat ke bawah.

Analisis kelebihan

  1. Menggabungkan penilaian trend dan perdagangan reversal, anda boleh menangkap peluang reversal dalam trend yang lebih besar.

  2. Menggunakan gabungan penunjuk pada bingkai masa yang berbeza dapat meningkatkan kebolehpercayaan isyarat.

  3. RSI strategi simplicity sendiri, mudah difahami dan dilaksanakan.

Analisis risiko

  1. Terdapat kemungkinan RSI menghasilkan isyarat palsu yang menyebabkan perdagangan mengalami kerugian. Kemungkinan isyarat palsu dapat dikurangkan dengan mengoptimumkan parameter.

  2. Penghakiman trend kitaran besar mungkin salah, menjadikan strategi tidak sesuai untuk keadaan pasaran tersebut. Anda boleh mempertimbangkan untuk menggabungkan lebih banyak indikator untuk menilai trend.

  3. Frekuensi dagangan mungkin terlalu tinggi dan kos dagangan mempengaruhi keuntungan. Parameter RSI boleh disesuaikan dengan sewajarnya untuk mengurangkan jumlah dagangan.

Arah pengoptimuman

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

  2. Menambah mekanisme penangguhan kerugian untuk mengawal kerugian tunggal.

  3. Pertimbangkan untuk menurunkan kedudukan apabila turun naik perlahan, dengan menggunakan indikator kadar turun naik.

  4. Mengoptimumkan harga masuk dan keluar tertentu, seperti harga tertinggi yang melanggar garis K sebelum masuk kosong.

ringkaskan

Strategi ini mengintegrasikan penilaian trend dan isyarat perdagangan pembalikan, mencari peluang pembalikan tempatan dalam trend kitaran besar. Ia lebih dipercayai dan mengelakkan tergesa-gesa daripada menggunakan RSI secara tunggal. Secara keseluruhannya, ia adalah strategi yang lebih konservatif dan sesuai untuk pelabur yang mengurangkan kebarangkalian isyarat palsu.

Kod sumber strategi
/*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)