Strategi perdagangan kuantitatif berdasarkan sinyal indikator RSI


Tanggal Pembuatan: 2023-09-14 20:26:49 Akhirnya memodifikasi: 2023-09-14 20:26:49
menyalin: 0 Jumlah klik: 674
1
fokus pada
1617
Pengikut

Artikel ini akan membahas strategi kuantitatif yang menggunakan indikator RSI untuk membentuk sinyal perdagangan. Strategi ini menangani indikator RSI dan menetapkan persyaratan masuk dan keluar untuk perdagangan overhead.

  1. Prinsip Strategi

Logika perdagangan utama dari strategi ini adalah sebagai berikut:

  1. Hitung indikator RSI ((14)), dan gunakan EMA ((28) untuk memprosesnya secara halus, untuk mendapatkan indikator osilasi setelah diproses.

  2. Blinking band dihitung pada RSI yang telah diproses, yang menghasilkan tren naik dan turun. Setting overbought/oversold interval.

  3. Ketika diproses di bawah RSI, ini menghasilkan sinyal beli. Ketika di atas RSI, ini menghasilkan sinyal jual.

  4. Ketika indikator memasuki zona overbought dan oversold, sinyal posisi terdepan dihasilkan.

Dengan cara ini, Anda dapat memanfaatkan karakteristik indikator RSI untuk menangkap peluang reversal. Anda juga dapat melakukan pengolahan indikator untuk meningkatkan kualitas sinyal dan nilai acuan.

Kedua, keunggulan strategi

Keuntungan terbesar dari strategi ini adalah bahwa proses pengolahan indikator menambah ruang parameter, yang dapat secara ketat mengontrol frekuensi perdagangan dan menghindari overtrading.

Keuntungan lainnya adalah persyaratan masuk yang sederhana dan intuitif, dengan nilai indikator yang jelas untuk menilai waktu transaksi.

Terakhir, pengaturan overbought dan oversold juga dapat membantu menghentikan stop loss dan mengontrol risiko dalam satu transaksi.

Ketiga, potensi risiko

Namun, strategi ini juga memiliki risiko:

Pertama, indikator RSI berfokus pada perdagangan yang berbalik dan mudah menghasilkan sinyal yang salah dalam tren.

Kedua, pengaturan parameter yang tidak tepat juga dapat menyebabkan overoptimisasi dan ketidakmampuan untuk beradaptasi dengan perubahan struktur pasar.

Akhirnya, kemenangan yang rendah membutuhkan tekanan untuk menanggung kerugian.

Empat isi, ringkasan

Artikel ini terutama membahas strategi perdagangan kuantitatif yang menggunakan indikator RSI. Ini mengontrol frekuensi perdagangan dengan pengaturan parameter, serta aturan masuk dan keluar yang jelas.

Kode Sumber Strategi
/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//-----------------------------------------------------------------
//This simple strategy base on RSI, EMA, Bollinger Bands to get Buy and Sell Signal with detail as below:
//-----------------------------------------------------------------
//1.Define Oscillator Line
//+ Oscillator Line is smoothed by ema(28) of RSI(14) on H1 Timeframe
//2.Define Overbought and Oversold
//+ Apply Bollinger Bands BB(80,3) on Oscillator Line and calculate %b
//+ Overbought Zone marked above level 0.8
//+ Oversold Zone marked below level 0.2
//3.Buy Signal
//+ Entry Long Positon when %b crossover Point of Entry Long
//+ Deafault Point of Entry Long is 0.2
//+ Buy signal marked by Green dot
//4.Sell Signal
//+ Entry Short Position when %b crossunder Point of Entry Short
//+ Deafault Point of Entry Short is 0.8
//+ Sell signal marked by Red dot
//5.Exit Signal
//+ Exit Position (both Long and Short) when %b go into Overbought Zone or Oversold Zone
//+ Exit signal marked by Yellow dot
//-----------------------------------------------------------------
strategy(title="RSI %b Signal [H1 Backtesting]", overlay=false)

//RSI
rsi_gr="=== RSI ==="
rsi_len = input(14, title = "RSI",inline="set",group=rsi_gr)
smoothed_len = input(28, title = "EMA",inline="set",group=rsi_gr)
rsi=ta.ema(ta.rsi(close,rsi_len),smoothed_len)
//rsi's BOLLINGER BANDS
pb_gr="=== %b ==="
length = input(80, title = "Length",inline="set1",group=pb_gr)
rsimult = input(3.0, title = "Multiplier",inline="set1",group=pb_gr)
ovb = input(0.8, title = "Overbought",inline="set2",group=pb_gr)
ovs = input(0.2, title = "Oversold",inline="set2",group=pb_gr)
et_short = input(0.8, title = "Entry Short",inline="set3",group=pb_gr)
et_long = input(0.2, title = "Entry Long",inline="set3",group=pb_gr)
[rsibasis, rsiupper, rsilower] = ta.bb(rsi, length, rsimult)
//rsi's %B
rsipB = ((rsi - rsilower) / (rsiupper - rsilower))
plot(rsipB, title="rsi's %B", color=rsipB>math.min(ovb,et_short)?color.red:rsipB<math.max(ovs,et_long)?color.green:color.aqua, linewidth=1)

h1=hline(1,color=color.new(color.red,100))
h4=hline(ovb,color=color.new(color.red,100))
h0=hline(0,color=color.new(color.green,100))
h3=hline(ovs,color=color.new(color.green,100))
h5=hline(0.5,color=color.new(color.silver,0),linestyle=hline.style_dotted)

fill(h1,h4, title="Resistance", color=color.new(color.red,90))
fill(h0,h3, title="Support", color=color.new(color.green,90))

//Signal
rsi_buy=
           rsipB[1]<et_long
           and
           rsipB>et_long
rsi_sell=
           rsipB[1]>et_short
           and
           rsipB<et_short
rsi_exit=
           (rsipB[1]>ovs and rsipB<ovs)
           or
           (rsipB[1]<ovb and rsipB>ovb)
plotshape(rsi_buy?rsipB:na,title="Buy",style=shape.circle,color=color.new(color.green,0),location=location.absolute)
plotshape(rsi_sell?rsipB:na,title="Sell",style=shape.circle,color=color.new(color.red,0),location=location.absolute)
plotshape(rsi_exit?rsipB:na,title="Exit",style=shape.circle,color=color.new(color.yellow,0),location=location.absolute)
//Alert
strategy.entry("Long",strategy.long,when=rsi_buy)
strategy.close("Long",when=rsi_exit)
strategy.entry("Short",strategy.short,when=rsi_sell)
strategy.close("Short",when=rsi_exit)
//EOF