Strategi perdagangan indikator divergensi panjang-pendek RSI


Tanggal Pembuatan: 2024-01-15 12:09:54 Akhirnya memodifikasi: 2024-01-15 12:09:54
menyalin: 2 Jumlah klik: 837
1
fokus pada
1617
Pengikut

Strategi perdagangan indikator divergensi panjang-pendek RSI

Ringkasan

Strategi ini menilai tren bullish pasar dan membuat keputusan perdagangan dengan menghitung divergensi bullish indikator RSI. Secara khusus, ia menilai sinyal bullish yang tersembunyi ketika RSI membentuk titik rendah yang lebih rendah tetapi harga membentuk titik rendah yang lebih tinggi; dan sinyal bullish yang tersembunyi ketika RSI membentuk titik tinggi yang lebih tinggi tetapi harga membentuk titik tinggi yang lebih rendah. Berdasarkan sinyal ini, menilai tren bullish potensial pasar dan melakukan perdagangan.

Prinsip Strategi

Strategi ini didasarkan pada teori divergensi polygonal dari indikator RSI. Ketika RSI dan harga membentuk divergensi terbalik, pasar berpotensi berbalik. Secara khusus, ada empat situasi berikut:

  1. Sinyal multihead normal: RSI membentuk titik rendah yang lebih tinggi dan harga membentuk titik rendah yang lebih rendah. Ini menunjukkan bahwa pasar bullish mendorong RSI ke atas tetapi tidak sepenuhnya tercermin pada harga, yang menunjukkan peningkatan kekuatan multihead.

  2. Sinyal tersembunyi: RSI membentuk titik rendah yang lebih rendah dan harga membentuk titik rendah yang lebih tinggi. Ini menunjukkan bahwa posisi terjual telah menurunkan RSI tetapi tidak sepenuhnya tercermin pada harga, yang menunjukkan peningkatan kekuatan multi-head.

  3. Sinyal headline normal: RSI membentuk titik tinggi yang lebih rendah, harga membentuk titik tinggi yang lebih tinggi. Ini menunjukkan bahwa posisi jual mendorong harga ke atas tetapi tidak sepenuhnya tercermin pada RSI, yang menunjukkan peningkatan kekuatan headline.

  4. Sinyal Hidden Head: RSI membentuk titik tinggi yang lebih tinggi, harga membentuk titik tinggi yang lebih rendah. Ini menunjukkan bahwa pasar bullish mendorong RSI ke atas tetapi tidak sepenuhnya tercermin pada harga, yang menunjukkan peningkatan kekuatan head.

Berdasarkan perbedaan di atas, menilai potensi tren overbought pasar, dan peningkatan kekuatan jual beli, sehingga membuat strategi perdagangan.

Keunggulan Strategis

  1. Menggunakan teori divergensi polygon RSI untuk menilai tren potensial pasar.
  2. Ini juga bisa digunakan untuk mengkonfirmasi pergerakan harga dan menghindari sinyal noise.
  3. Dengan kemampuan untuk menangkap sinyal-sinyal penting sebelum pasar berbalik dengan cepat, Predictions dapat membuat keputusan lebih awal.
  4. Ada juga fitur multi-serial visual, yang memudahkan pengoperasian.
  5. Parameter yang dapat disesuaikan untuk menyesuaikan dengan lingkungan pasar yang berbeda.

Risiko Strategis

  1. Perbedaan dalam RSI dan harga tidak selalu menandakan pergeseran, tetapi mungkin merupakan perhitungan normal.
  2. Sinyal yang disembunyikan relatif lebih keras dan dapat menyebabkan kesalahan penilaian.
  3. Untuk mengkonfirmasi sinyal, perlu menggabungkan lebih banyak indikator atau analisis teknis.
  4. Pengaturan parameter sinyal yang tidak tepat juga dapat mempengaruhi penilaian.

Arah optimasi

  1. Menambahkan MACD, KDJ dan lain-lain digabungkan dengan RSI untuk menentukan sinyal entry.
  2. Meningkatkan strategi stop loss dan mengurangi kerugian tunggal.
  3. Pengaturan parameter optimasi, seperti mencari parameter siklus RSI yang lebih sesuai.
  4. Menambahkan algoritma pembelajaran mesin untuk melatih keakuratan penilaian sinyal masuk.
  5. Menambahkan websocket real-time action untuk mengurangi lag konfirmasi sinyal.

Meringkaskan

Strategi ini terutama mengandalkan kesenjangan polygon RSI untuk menilai tren polygon potensial pasar, dengan menangkap perubahan kekuatan relatif dari perdagangan dalam pergerakan harga, prediksi melakukan perdagangan berbalik. Memiliki fungsi prediksi awal tertentu. Tetapi ada juga risiko sinyal noise tertentu.

Kode Sumber Strategi
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Divergence Indicator")
len = input.int(title="RSI Period", minval=1, defval=20)
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, 70)) 
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, 70))
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
	 )