Strategi rangka masa silang berdasarkan penunjuk RSI


Tarikh penciptaan: 2023-12-29 14:12:54 Akhirnya diubah suai: 2023-12-29 14:12:54
Salin: 0 Bilangan klik: 647
1
fokus pada
1623
Pengikut

Strategi rangka masa silang berdasarkan penunjuk RSI

Gambaran keseluruhan

Strategi ini adalah strategi shorting BTC dalam bingkai masa yang berasaskan RSI. Strategi ini mendapatkan kurva VWAP dengan mengira nilai purata bertimbangan perdagangan (VWAP) untuk setiap garis K, dan kemudian menerapkan RSI pada kurva tersebut.

Prinsip Strategi

  1. Hitung nilai purata bertimbangan kuantiti transaksi bagi setiap baris K (VWAP) untuk mendapatkan satu garisan VWAP
  2. RSI digunakan pada kurva VWAP, parameter adalah 20 hari, garis overbought adalah 85, garis oversold adalah 30
  3. Apabila indikator RSI melintasi kawasan jual beli di bawah daripada kawasan beli-lebih di bawah (85), buka posisi kosong.
  4. Selepas memegang 28 garis K, jika RSI naik lagi dan menembusi garis jual beli ((30), posisi kosong

Analisis kelebihan

  1. Menggunakan VWAP berbanding harga penutupan mudah, lebih mencerminkan harga sebenar transaksi
  2. Menggunakan RSI untuk mengenal pasti keadaan overbought dan oversold
  3. Operasi merentasi kerangka masa untuk mengelakkan kebocoran
  4. Risiko boleh dikawal, 28 K-line terhenti

Risiko dan Penyelesaian

  1. Kejadian mendadak menyebabkan harga naik dengan pantas dan tidak dapat dihentikan
    • Menggunakan kerangka masa untuk mengurangkan risiko kebocoran
  2. Parameter yang tidak betul, peluang yang mudah dilupakan
    • Uji dan optimumkan parameter RSI dan garis overbought dan oversold
  3. K-Line tidak boleh masuk ke kawasan supermarket
    • Kaedah ini boleh digunakan untuk menilai trend, tetapi ia juga boleh menyesuaikan parameter secara fleksibel.

Arah pengoptimuman

  1. Uji lebih banyak kombinasi parameter untuk mencari parameter terbaik
  2. Kaedah ini digunakan untuk menentukan sama ada anda berada dalam zon overbought atau oversold dengan menggunakan MACD, KD dan lain-lain
  3. Tetapan parameter ujian mengikut jenis yang berbeza
  4. Optimumkan mekanisme penangguhan kerugian, set markah penangguhan kerugian mengikut kadar turun naik

ringkaskan

Strategi ini menggunakan gabungan VWAP dan RSI untuk mengenal pasti keadaan BTC yang terlalu banyak dibeli dan dijual, beroperasi dengan cara merentasi jangka masa, dan dapat mengawal risiko dengan berkesan. Idea strategi jelas dan mudah difahami, layak untuk diuji dan dioptimumkan lebih lanjut, digunakan untuk perdagangan langsung.

Kod 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="")