Strategi dagangan ayunan RSI berdasarkan pelarasan intra-tahun


Tarikh penciptaan: 2024-02-29 10:54:45 Akhirnya diubah suai: 2024-02-29 10:54:45
Salin: 0 Bilangan klik: 592
1
fokus pada
1617
Pengikut

Strategi dagangan ayunan RSI berdasarkan pelarasan intra-tahun

Gambaran keseluruhan

Strategi ini adalah strategi perdagangan RSI bergoyang berdasarkan penyesuaian sepanjang tahun, dengan menjejaki ciri-ciri goyang antara RSI di atas dan di bawah landasan yang ditetapkan, memberi isyarat perdagangan apabila RSI menyentuh landasan di atas dan di bawah.

Prinsip Strategi

  1. Tetapkan panjang garis rata-rata MA, parameter RSI, tren naik turun, parameter stop loss, dan jangka masa perdagangan
  2. Hitung nilai RSI, RSI = (RSI) / (RSI + RSI)*100
  3. Menggambar RSI dan naik ke bawah
  4. RSI di atas menembusi ke bawah untuk memberi isyarat lebih, di bawah untuk memberi isyarat kosong
  5. Menubuhkan OCO
  6. Hentikan kerosakan dan hentikan mengikut logik hentikan yang ditetapkan

Analisis kelebihan strategi

  1. Dengan menetapkan kitaran transaksi dalam tahun, beberapa keadaan luaran yang tidak sesuai dapat dielakkan.
  2. Penunjuk RSI dapat mencerminkan keadaan overbought dan oversold dengan berkesan, dan boleh menyaring sebahagian daripada bunyi bising dengan menetapkan jarak yang munasabah untuk perdagangan goyah.
  3. OCO yang dilampirkan dengan seting stop-loss, dapat mengawal risiko dengan berkesan.

Analisis risiko strategi

  1. RSI tidak dapat menjamin ketepatan penilaian kritikal, dan mungkin ada risiko kesalahan penilaian.
  2. Jika anda tidak menetapkan kitaran perdagangan dalam tahun dengan betul, anda mungkin terlepas peluang perdagangan yang lebih baik atau memasuki persekitaran perdagangan yang tidak sesuai.
  3. Penetapan stop loss yang terlalu besar boleh menyebabkan kerugian yang lebih besar, penetapan stop loss yang terlalu kecil boleh menyebabkan keuntungan yang terlalu kecil.

Ia boleh dioptimumkan dengan menyesuaikan parameter RSI, jangka masa kitaran perdagangan, dan nisbah stop loss.

Arah pengoptimuman strategi

  1. Uji nilai optimum RSI dalam pelbagai kitaran pasaran yang berbeza
  2. Menganalisis peraturan kitaran pasaran keseluruhan untuk menetapkan tempoh perdagangan terbaik dalam setahun
  3. Menentukan nisbah stop loss yang munasabah melalui pengukuran semula
  4. Optimumkan pilihan jenis dagangan dan meningkatkan saiz pegangan
  5. Mengoptimumkan dalam kombinasi dengan teknik atau penunjuk perdagangan yang lebih baik

ringkaskan

Strategi ini mengikuti trend perdagangan melalui ciri-ciri getaran RSI pada kitaran yang ditetapkan dalam setahun, dan mengawal risiko perdagangan dengan berkesan. Dengan pengoptimuman parameter dan pengoptimuman peraturan, kesan strategi yang lebih tinggi dapat diperoleh.

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

//@version=3
strategy(title = "Bitlinc MARSI Study AST",shorttitle="Bitlinc MARSI Study AST",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,initial_capital=1000,currency="USD",pyramiding=0, calc_on_order_fills=false)

// === General Inputs ===
lengthofma = input(62, minval=1, title="Length of MA")
len = input(31, minval=1, title="Length")
upperband = input(89, minval=1, title='Upper Band for RSI')
lowerband = input(10, minval=1, title="Lower Band for RSI")
takeprofit =input(1.25, title="Take Profit Percent")
stoploss =input(.04, title ="Stop Loss Percent")
monthfrom =input(8, title = "Month Start")
monthuntil =input(12, title = "Month End")
dayfrom=input(1, title= "Day Start")
dayuntil=input(31, title= "Day End")

// === Innput Backtest Range ===
//FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
//FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
//FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
//ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
//ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
//ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === Create RSI ===
src=sma(close,lengthofma)
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi,linewidth = 2, color=purple)

// === Plot Bands ===
band1 = hline(upperband)
band0 = hline(lowerband)
fill(band1, band0, color=blue, transp=95)

// === Entry and Exit Methods ===
longCond =  crossover(rsi,lowerband)
shortCond =  crossunder(rsi,upperband)

// === Long Entry Logic ===
if (  longCond ) 
    strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND", comment="LONG")
else
    strategy.cancel(id="LONG")

// === Short Entry Logic ===    
if ( shortCond   ) 
    strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND",  comment="SHORT")
else
    strategy.cancel(id="SHORT")

// === Take Profit and Stop Loss Logic ===
//strategy.exit("Take Profit LONG", "LONG", profit = close * takeprofit / syminfo.mintick, loss = close * stoploss / syminfo.mintick)
//strategy.exit("Take Profit SHORT", "SHORT", profit = close * takeprofit / syminfo.mintick, loss = close * stoploss / syminfo.mintick)
strategy.exit("LONG TAKE PROFIT", "LONG", profit = close * takeprofit / syminfo.mintick)
strategy.exit("SHORT STOP LOSS", "SHORT", profit = close * takeprofit / syminfo.mintick)
strategy.exit("LONG STOP LOSS", "LONG", loss = close * stoploss / syminfo.mintick)
strategy.exit("SHORT STOP LOSS", "SHORT", loss = close * stoploss / syminfo.mintick)