Strategi lintas kerangka waktu berdasarkan indikator RSI


Tanggal Pembuatan: 2023-12-29 14:12:54 Akhirnya memodifikasi: 2023-12-29 14:12:54
menyalin: 0 Jumlah klik: 647
1
fokus pada
1623
Pengikut

Strategi lintas kerangka waktu berdasarkan indikator RSI

Ringkasan

Strategi ini adalah strategi shorting BTC pada kerangka waktu yang didasarkan pada indikator RSI. Strategi ini mendapatkan kurva VWAP dengan menghitung nilai rata-rata tertimbang nilai transaksi (VWAP) untuk setiap garis K dan kemudian menerapkan indikator RSI pada kurva tersebut.

Prinsip Strategi

  1. Hitung nilai rata-rata tertimbang volume transaksi (VWAP) untuk setiap garis K, dan hasilkan kurva VWAP
  2. Aplikasi RSI pada kurva VWAP dengan parameter 20 hari, overbought dengan 85, oversold dengan 30
  3. Ketika RSI melintasi zona overbought (- 85) ke bawah melewati zona oversold (- 30), buka posisi short
  4. Setelah memegang 28 garis K, jika RSI naik lagi melewati garis oversold ((30), posisi kosong

Analisis Keunggulan

  1. Penggunaan VWAP lebih mencerminkan harga transaksi yang sebenarnya daripada harga penutupan yang sederhana
  2. Menggunakan indikator RSI untuk mengidentifikasi overbought dan oversold, menghindari mengejar high dan low
  3. Operasi lintas-frame waktu untuk menghindari jebakan
  4. Risiko terkendali, 28 K-line terhenti

Risiko dan Solusi

  1. Kejadian tak terduga menyebabkan harga naik dengan cepat dan tidak bisa dihentikan
    • Mengadopsi kerangka waktu untuk mengurangi risiko keterlibatan
  2. Parameter yang tidak tepat, peluang yang mudah dilewatkan
    • Untuk menguji dan mengoptimalkan parameter RSI dan overbought overbought
  3. K-Line tidak bisa masuk ke area supermarket
    • Fleksibilitas dalam penyesuaian parameter, dikombinasikan dengan indikator lain untuk menilai tren

Arah optimasi

  1. Uji lebih banyak kombinasi parameter untuk menemukan yang terbaik
  2. Dalam kombinasi dengan MACD, KD, dan indikator lainnya untuk menentukan apakah Anda berada di zona overbought atau oversold
  3. Pengaturan parameter uji berdasarkan varietas yang berbeda
  4. Mengoptimalkan mekanisme stop loss, mengatur stop loss berdasarkan volatilitas

Meringkaskan

Strategi ini menggunakan VWAP dan RSI untuk mengidentifikasi overbought dan oversold BTC, beroperasi dalam kerangka waktu, dan dapat secara efektif mengendalikan risiko. Ide strategi ini jelas dan mudah dimengerti, layak untuk diuji lebih lanjut dan dioptimalkan untuk digunakan dalam perdagangan langsung.

Kode Sumber Strategi
/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=4

strategy("Soran Strategy 2 - SHORT SIGNALS", pyramiding=1, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=50, overlay=false)


// ----------------- Inputs ----------------- //

reso = input(title="Resolution", type=input.resolution, defval="")
length = input(20, title="RSI Length", type=input.integer)
ovrsld = input(30, "RSI Oversold level", type=input.float)
ovrbgt = input(85, "RSI Overbought level", type=input.float)
lateleave = input(28, "Number of candles", type=input.integer)
// lateleave : numbers of bars in overbought/oversold zones where the position is closed. The position is closed when this number is reached or when the zone is left (the first condition).

// best parameters BTCUSDTPERP M15 : 20 / 30 / 85 / 28


stratbull = input(title="Enter longs ?", type = input.bool, defval=true)
stratbear = input(title="Enter shorts ?", type = input.bool, defval=true)

stratyear = input(2020, title = "Strategy Start Year")
stratmonth = input(1, title = "Strategy Start Month")
stratday = input(1, title = "Strategy Start Day")
stratstart = timestamp(stratyear,stratmonth,stratday,0,0)


// --------------- Laguerre ----------------- //

laguerre = input(title="Use Laguerre on RSI ?", type=input.bool, defval=false)
gamma = input(0.06, title="Laguerre Gamma")

laguerre_cal(s,g) =>
    l0 = 0.0
    l1 = 0.0
    l2 = 0.0
    l3 = 0.0
    l0 := (1 - g)*s+g*nz(l0[1])
    l1 := -g*l0+nz(l0[1])+g*nz(l1[1])
    l2 := -g*l1+nz(l1[1])+g*nz(l2[1])
    l3 := -g*l2+nz(l2[1])+g*nz(l3[1])
    (l0 + 2*l1 + 2*l2 + l3)/6


// ---------------- Rsi VWAP ---------------- //

rsiV = security(syminfo.tickerid, reso, rsi(vwap(close), length))

rsiVWAP = laguerre ? laguerre_cal(rsiV,gamma) : rsiV


// ------------------ Plots ----------------- //

prsi = plot(rsiVWAP, color = rsiVWAP>ovrbgt ? color.red : rsiVWAP<ovrsld ? color.green : color.white, title="RSI on VWAP", linewidth=1, style=plot.style_line)
hline = plot(ovrbgt, color = color.gray, style=plot.style_line)
lline = plot(ovrsld, color = color.gray, style=plot.style_line)
fill(prsi,hline, color = rsiVWAP > ovrbgt ? color.red : na, transp = 30)
fill(prsi,lline, color = rsiVWAP < ovrsld ? color.green : na, transp = 30)


// ---------------- Positions: only shows the Short and close shoret positions --------------- //

timebull = stratbull and time > stratstart
timebear = stratbear and time > stratstart


strategy.entry("Short", false, when = timebear and crossunder(rsiVWAP, ovrbgt), comment="")
strategy.close("Short", when = timebear and crossunder(rsiVWAP, ovrsld)[lateleave] or crossover(rsiVWAP, ovrsld), comment="")