Strategi ini menetapkan garis isyarat beli dan garis isyarat jual berdasarkan penunjuk RSI, digabungkan dengan stop loss bergerak untuk mencapai pembelian dan penjualan automatik. Ia menghantar isyarat beli apabila penunjuk RSI lebih rendah daripada garis isyarat beli, dan isyarat jual apabila penunjuk RSI lebih tinggi daripada garis isyarat jual. Pada masa yang sama, ia menetapkan stop loss bergerak untuk mengunci keuntungan dan mengawal risiko.
Strategi ini terutamanya berdasarkan zon overbought dan oversold dari penunjuk RSI untuk menentukan masa masuk dan keluar. RSI di bawah 20 dianggap oversold, dan di atas 80 dianggap overbought. Strategi ini menetapkan tiga garis isyarat beli rendah RSI pada 20, 18, dan 14. Apabila harga penutupan lebih tinggi daripada hari sebelumnya dan penunjuk RSI di bawah garis beli yang sepadan, isyarat beli dikeluarkan. Strategi menetapkan garis isyarat jual tinggi RSI pada 83. Apabila penunjuk RSI lebih tinggi daripada garis jual ini, isyarat jual dikeluarkan. Di samping itu, strategi juga menetapkan stop loss bergerak. Jika harga jatuh di bawah 5% daripada harga, ia akan menghentikan kehilangan jual beli.
Keseluruhan strategi menilai masa membeli dan menjual melalui zon overbought dan oversold penunjuk RSI, dan menetapkan stop loss untuk mengunci keuntungan dan mengawal risiko.
Kelebihan strategi ini termasuk:
Menggunakan penunjuk RSI klasik dan yang disahkan secara meluas untuk menentukan titik dagangan dan menangkap peluang overbought dan oversold dengan berkesan.
Menetapkan beberapa baris beli membolehkan pembelian terbahagi pada harga rendah yang berbeza, mengurangkan kos pembelian.
Menetapkan stop loss bergerak untuk mengawal kerugian dan mengunci keuntungan dapat menguruskan risiko dengan berkesan.
Logik strategi adalah mudah dan jelas, mudah difahami dan diubah suai, dan mudah disahkan dalam perdagangan langsung.
Parameter penunjuk RSI boleh disesuaikan dan diselaraskan untuk produk dan pasaran yang berbeza.
Terdapat juga beberapa risiko untuk strategi ini:
Mengandalkan satu penunjuk tunggal, ia terdedah kepada isyarat palsu dan isyarat penunjuk RSI mungkin tidak tepat.
Tiada strategi mengambil keuntungan, risiko membiarkan kerugian berkembang.
Terdapat risiko pembahagian zon overbought dan oversold, terutamanya di pasaran yang terhad.
Dalam keadaan pasaran yang melampau, harga mungkin menembusi garis stop loss secara langsung dan gagal menghentikan kerugian.
Penyelesaian adalah:
Gunakan pelbagai penunjuk digabungkan untuk mengelakkan isyarat palsu.
Tambah keuntungan mengambil strategi seperti zon atau sar.
Sesuaikan parameter RSI untuk menyempitkan zon overbought/oversold.
Gunakan kehilangan berhenti dinamik atau campur tangan manual apabila perlu.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Gabungkan penunjuk lain untuk membentuk portfolio penunjuk untuk mengelakkan isyarat palsu, seperti RSI + KDJ, RSI + MACD.
Tambah strategi mengambil keuntungan seperti stop loss, keluar berdasarkan masa, bergerak saluran keluar.
Pengoptimuman parameter, menyesuaikan parameter RSI berdasarkan produk dan jangka masa yang berbeza.
Derivatif strategi seperti strategi pembalikan, skala dalam strategi.
Mempersempit zon beli/jual dengan betul untuk mengelakkan isyarat palsu.
Ringkasnya, ini adalah strategi perdagangan kuantitatif biasa berdasarkan penunjuk RSI dengan menetapkan isyarat beli / jual. Strategi ini mudah dan mudah dilaksanakan, tetapi bergantung pada satu petunjuk dengan risiko tinggi tidak mengambil keuntungan.
/*backtest start: 2023-12-17 00:00:00 end: 2024-01-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI Buy/Sell Strategy", overlay=false) // Input for RSI period rsiPeriod = input(12, title="RSI Period") // Input for RSI levels rsiBuyLevel1 = 20 rsiBuyLevel2 = 18 rsiBuyLevel3 = 14 rsiSellLevel = input(83, title="RSI Sell Level") // Input for stop loss percentage stopLossPercent = input(5, title="Stop Percentage") // Calculate RSI rsiValue = ta.rsi(close, rsiPeriod) // Buy Conditions: RSI below buy levels buyCondition1 = close[1] > close and rsiValue <= rsiBuyLevel1 buyCondition2 = close[1] > close and rsiValue <= rsiBuyLevel2 buyCondition3 = close[1] > close and rsiValue <= rsiBuyLevel3 // Sell Conditions: RSI above sell level or stop loss sellCondition = (rsiValue > rsiSellLevel )//or ( close[1] < close * (1 - stopLossPercent / 100)) // Calculate position size based on 10% of current equity positionSize = strategy.equity * 0.8 / close // Plot RSI on the chart plot(rsiValue, title="RSI", color=color.blue) // Plot horizontal lines for buy and sell levels hline(rsiBuyLevel1, "Buy Level 1", color=color.green) hline(rsiBuyLevel2, "Buy Level 2", color=color.green) hline(rsiBuyLevel3, "Buy Level 3", color=color.green) hline(rsiSellLevel, "Sell Level", color=color.red) // Execute Buy and Sell orders with stop loss strategy.entry("Buy1", strategy.long, when = buyCondition1, qty = positionSize,stop=close * stopLossPercent / 100) strategy.entry("Buy2", strategy.long, when = buyCondition2, qty = positionSize,stop=close * stopLossPercent / 100) strategy.entry("Buy3", strategy.long, when = buyCondition3, qty = positionSize,stop=close * stopLossPercent / 100) strategy.close("Buy1", when = sellCondition) strategy.close("Buy2", when = sellCondition) strategy.close("Buy3", when = sellCondition)