Strategi Dagangan RSI Dinamis

Penulis:ChaoZhang, Tarikh: 2024-02-04 17:36:41
Tag:

img

Ringkasan

Strategi ini membina sistem dagangan menggunakan penunjuk RSI untuk menentukan tahap overbought dan oversold, bersama-sama dengan stop loss trailing dinamik dan keluar sasaran keuntungan. Ia pergi pendek apabila RSI melintasi di atas tahap overbought dan pergi panjang apabila RSI melintasi di bawah tahap oversold.

Logika Strategi

Strategi ini menggunakan penunjuk RSI 14 tempoh untuk menilai corak teknikal pasaran. RSI mencerminkan nisbah kuasa naik dan jatuh dalam tempoh masa, untuk mengetahui sama ada pasaran terlalu banyak dibeli atau terlalu banyak dijual. Panjang RSI di sini adalah 14. Apabila RSI melintasi di atas 70, pasaran dianggap terlalu banyak dibeli, dan kita pergi pendek. Apabila RSI melintasi di bawah 30, pasaran dianggap terlalu banyak dijual, dan kita pergi panjang.

Di samping itu, strategi ini menggunakan mekanisme pemantauan stop loss dinamik. Apabila memegang kedudukan panjang, harga penangguhan penangguhan ditetapkan pada 97% daripada harga penutupan. Apabila memegang kedudukan pendek, harga penangguhan penangguhan adalah 103% daripada harga penutupan. Ini mengunci kebanyakan keuntungan sambil mengelakkan berhenti oleh bunyi pasaran.

Akhirnya, strategi ini menggunakan keluar sasaran keuntungan. Apabila keuntungan kedudukan mencapai 20%, ia akan ditutup. Ini mengunci beberapa keuntungan dan mengelakkan retracement keuntungan.

Analisis Kelebihan

Kelebihan strategi ini termasuk:

  1. Menggunakan penunjuk RSI untuk menentukan pasaran overbought / oversold dengan berkesan
  2. Mengambil langkah berhenti kerugian yang dinamik untuk mengawal risiko
  3. Menetapkan sasaran keuntungan yang betul untuk mengunci keuntungan
  4. Logik yang jelas dan beberapa parameter, mudah dilaksanakan untuk perdagangan langsung
  5. Mudah untuk mengoptimumkan parameter seperti panjang RSI, tahap overbought / oversold, peratusan stop loss dll.

Analisis Risiko

Beberapa risiko strategi ini perlu diperhatikan:

  1. Potensi isyarat palsu dari RSI, menyebabkan kerugian yang tidak perlu
  2. Kebarangkalian stop loss yang dipukul, peningkatan kerugian
  3. Sasaran keuntungan ditetapkan terlalu rendah, tidak dapat memegang kedudukan cukup lama untuk memperoleh keuntungan yang mencukupi

Untuk mengatasi risiko ini, mengoptimumkan parameter RSI, menyesuaikan peratusan stop loss, melonggarkan keperluan sasaran keuntungan dengan munasabah dapat membantu.

Arahan pengoptimuman

Beberapa arah untuk mengoptimumkan strategi:

  1. Mengoptimumkan parameter RSI dan standard hakim overbought / oversold untuk mengurangkan isyarat palsu
  2. Tambah penapis penunjuk lain untuk mengelakkan isyarat yang salah yang disebabkan oleh RSI tunggal
  3. Mengoptimumkan sasaran keuntungan secara dinamik mengikut keadaan pasaran
  4. Menggabungkan penunjuk jumlah dagangan untuk mengelakkan pecah palsu jumlah yang rendah
  5. Memperkenalkan algoritma pembelajaran mesin untuk menyesuaikan parameter automatik

Ringkasan

Strategi ini mempunyai logik yang jelas menggunakan RSI untuk menentukan pasaran overbought / oversold, dengan berhenti dinamik dan mengambil keuntungan. Kelebihannya adalah mudah difahami dan dilaksanakan, kawalan risiko yang baik, dan kebolehluasan yang tinggi. Langkah seterusnya adalah untuk meningkatkan kualiti isyarat, parameter auto-tune dll untuk menjadikan strategi lebih pintar.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Modified RSI-Based Trading Strategy", overlay=true)

// RSI settings
rsiLength = input(14, title="RSI Length")
overboughtLevel = 70
oversoldLevel = 30

// User-defined parameters
trailingStopPercentage = input(3, title="Trailing Stop Percentage (%)")
profitTargetPercentage = input(20, title="Profit Target Percentage (%)")

rsiValue = ta.rsi(close, rsiLength)

var float trailingStopLevel = na
var float profitTargetLevel = na

// Entry criteria
enterLong = ta.crossover(rsiValue, oversoldLevel)
enterShort = ta.crossunder(rsiValue, overboughtLevel)

// Exit criteria
exitLong = ta.crossover(rsiValue, overboughtLevel)
exitShort = ta.crossunder(rsiValue, oversoldLevel)

// Trailing stop calculation
if (strategy.position_size > 0)
    trailingStopLevel := close * (1 - trailingStopPercentage / 100)

if (strategy.position_size < 0)
    trailingStopLevel := close * (1 + trailingStopPercentage / 100)

// Execute the strategy
if (enterLong)
    strategy.entry("Buy", strategy.long)

if (exitLong or ta.crossover(close, trailingStopLevel) or ta.change(close) > profitTargetPercentage / 100)
    strategy.close("Buy")

if (enterShort)
    strategy.entry("Sell", strategy.short)

if (exitShort or ta.crossunder(close, trailingStopLevel) or ta.change(close) < -profitTargetPercentage / 100)
    strategy.close("Sell")

// Plot RSI and overbought/oversold levels
plot(rsiValue, title="RSI", color=color.blue)
hline(overboughtLevel, "Overbought", color=color.red, linestyle=hline.style_dashed)
hline(oversoldLevel, "Oversold", color=color.green, linestyle=hline.style_dashed)


Lebih lanjut