Strategi Perdagangan RSI Divergence


Tarikh penciptaan: 2024-01-23 11:08:48 Akhirnya diubah suai: 2024-01-23 11:08:48
Salin: 0 Bilangan klik: 655
1
fokus pada
1617
Pengikut

Strategi Perdagangan RSI Divergence

Gambaran keseluruhan

Strategi perdagangan RSI yang berbeza dengan menganalisis RSI yang berbeza dengan harga, mencari peluang untuk perbezaan nilai, melakukan lebih banyak shorting apabila terdapat perpecahan.

Prinsip Strategi

Strategi ini didasarkan pada perbezaan nilai antara RSI dan harga apabila terdapat percanggahan. RSI mencerminkan kekuatan dan kelemahan, dan harga mencerminkan hubungan bekalan dan permintaan. Apabila kedua-duanya bercanggah, ia menunjukkan bahawa terdapat harga yang salah di pasaran, dan anda boleh membeli dengan harga rendah atau menjual lebih banyak untuk keuntungan.

Secara khusus, perpecahan berbilang arah yang biasa adalah RSI membentuk titik rendah yang lebih tinggi, dan harga membentuk titik rendah yang lebih rendah. Ini menunjukkan bahawa pasaran, walaupun kelihatan turun, sebenarnya sudah menunjukkan tanda-tanda rebound yang berkumpul.

Perbezaan kepala kosong biasa adalah sebaliknya, RSI membentuk lebih rendah tinggi dan harga membentuk lebih tinggi tinggi. Ini menunjukkan bahawa pasaran kelihatan lebih bullish, tetapi sebenarnya dalaman telah menunjukkan tanda-tanda lemah. Apabila RSI menyimpang dari harga dan menembusi 50 barisan bawah, anda boleh membuat keuntungan dengan shorting.

Di samping itu, terdapat perbezaan yang tersembunyi dan perbezaan kosong. Dalam kes ini, hubungan RSI dan harga bertentangan dengan perbezaan biasa, tetapi prinsipnya sama, dan keuntungan juga dapat diperoleh.

Kelebihan Strategik

  1. Menangkap perbezaan nilai, menemui kesilapan harga pasaran
  2. Meningkatkan kadar kemenangan dengan penyesuaian harga dan penunjuk
  3. Menyedari pelbagai perbezaan pendapat dan menjangkau lebih banyak peluang

Analisis risiko

  1. Dalam keadaan pasaran tertentu, perbezaan yang tidak nyata perlu dikenali.
  2. Kemenangan di garisan 50 tidak tinggi, boleh dioptimumkan dengan sewajarnya
  3. Salah pilih arah boleh menyebabkan kerugian besar

Arah pengoptimuman

  1. Mengoptimumkan parameter RSI untuk meningkatkan ketepatan ramalan indikator
  2. Pertimbangan yang bercanggah dengan tanda-tanda lain
  3. Penilaian Rasio Risiko dan Keuntungan Melebih-lebihkan Failure, Kawalan Keuntungan dan Kerugian

ringkaskan

Strategi perbezaan RSI adalah strategi penargetan statistik yang tipikal. Dengan menganalisis perbezaan nilai dan harga, dan menemui harga kesilapan pasaran, strategi ini mempunyai kelebihan untuk mencari peluang untuk membalikkan trend pada masa yang tepat, tetapi risikonya adalah ketepatan pengesanan perbezaan. Dengan pengoptimuman yang berterusan, ia dapat memperoleh keuntungan yang stabil dalam peperangan sebenar.

Kod sumber strategi
/*backtest
start: 2024-01-15 00:00:00
end: 2024-01-22 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Divergence Indicator")
len = input.int(title="RSI Period", minval=1, defval=14)
src = input(title="RSI Source", defval=close)
lbR = input(title="Pivot Lookback Right", defval=5)
lbL = input(title="Pivot Lookback Left", defval=5)
rangeUpper = input(title="Max of Lookback Range", defval=60)
rangeLower = input(title="Min of Lookback Range", defval=5)
plotBull = input(title="Plot Bullish", defval=true)
plotHiddenBull = input(title="Plot Hidden Bullish", defval=true)
plotBear = input(title="Plot Bearish", defval=true)
plotHiddenBear = input(title="Plot Hidden Bearish", defval=true)
bearColor = color.red
bullColor = color.green
hiddenBullColor = color.new(color.green, 80)
hiddenBearColor = color.new(color.red, 80)
textColor = color.white
noneColor = color.new(color.white, 100)
osc = ta.rsi(src, len)

plot(osc, title="RSI", linewidth=2, color=#2962FF)
hline(50, title="Middle Line", color=#787B86, linestyle=hline.style_dotted)
obLevel = hline(70, title="Overbought", color=#787B86, linestyle=hline.style_dotted)
osLevel = hline(30, title="Oversold", color=#787B86, linestyle=hline.style_dotted)
fill(obLevel, osLevel, title="Background", color=color.rgb(33, 150, 243, 90))

plFound = na(ta.pivotlow(osc, lbL, lbR)) ? false : true
phFound = na(ta.pivothigh(osc, lbL, lbR)) ? false : true
_inRange(cond) =>
	bars = ta.barssince(cond == true)
	rangeLower <= bars and bars <= rangeUpper

//------------------------------------------------------------------------------
// Regular Bullish
// Osc: Higher Low

oscHL = osc[lbR] > ta.valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])

// Price: Lower Low

priceLL = low[lbR] < ta.valuewhen(plFound, low[lbR], 1) 
// bull : 상승 Condition : 조건
bullCond = plotBull and priceLL and oscHL and plFound // 상승다이버전스?
strategy.entry("상승 다이버전스 진입", strategy.long, when = bullCond)
strategy.close("상승 다이버전스 진입", when = ta.crossover(osc, 50)) 
plot(
     plFound ? osc[lbR] : na,
     offset=-lbR,
     title="Regular Bullish",
     linewidth=2,
     color=(bullCond ? bullColor : noneColor)
     )

plotshape(
	 bullCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bullish Label",
	 text=" Bull ",
	 style=shape.labelup,
	 location=location.absolute,
	 color=bullColor,
	 textcolor=textColor
	 )

//------------------------------------------------------------------------------
// Hidden Bullish
// Osc: Lower Low

oscLL = osc[lbR] < ta.valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])

// Price: Higher Low

priceHL = low[lbR] > ta.valuewhen(plFound, low[lbR], 1)
hiddenBullCond = plotHiddenBull and priceHL and oscLL and plFound
// strategy.entry("히든 상승 다이버전스 진입", strategy.long, when = hiddenBullCond)
// strategy.close("히든 상승 다이버전스 진입", when = ta.crossover(osc, 50))
plot(
	 plFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bullish",
	 linewidth=2,
	 color=(hiddenBullCond ? hiddenBullColor : noneColor)
	 )

plotshape(
	 hiddenBullCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bullish Label",
	 text=" H Bull ",
	 style=shape.labelup,
	 location=location.absolute,
	 color=bullColor,
	 textcolor=textColor
	 )

//------------------------------------------------------------------------------
// Regular Bearish
// Osc: Lower High

oscLH = osc[lbR] < ta.valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])

// Price: Higher High

priceHH = high[lbR] > ta.valuewhen(phFound, high[lbR], 1)
// bear : 하락 
bearCond = plotBear and priceHH and oscLH and phFound
// strategy.entry("하락 다이버전스 진입", strategy.short, when = bearCond)
// strategy.close("하락 다이버전스 진입", when = ta.crossunder(osc, 50)) 
plot(
	 phFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bearish",
	 linewidth=2,
	 color=(bearCond ? bearColor : noneColor)
	 )

plotshape(
	 bearCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bearish Label",
	 text=" Bear ",
	 style=shape.labeldown,
	 location=location.absolute,
	 color=bearColor,
	 textcolor=textColor
	 )

//------------------------------------------------------------------------------
// Hidden Bearish
// Osc: Higher High

oscHH = osc[lbR] > ta.valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])

// Price: Lower High

priceLH = high[lbR] < ta.valuewhen(phFound, high[lbR], 1)

hiddenBearCond = plotHiddenBear and priceLH and oscHH and phFound
// strategy.entry("히든 하락 다이버전스 진입", strategy.short, when = hiddenBearCond)
// strategy.close("히든 하락 다이버전스 진입", when = ta.crossunder(osc, 50)) 
plot(
	 phFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bearish",
	 linewidth=2,
	 color=(hiddenBearCond ? hiddenBearColor : noneColor)
	 )

plotshape(
	 hiddenBearCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bearish Label",
	 text=" H Bear ",
	 style=shape.labeldown,
	 location=location.absolute,
	 color=bearColor,
	 textcolor=textColor
	 )