
Strategi ini membolehkan membeli dan menjual secara automatik dengan menetapkan garisan isyarat beli dan menjual RSI, digabungkan dengan berhenti bergerak. Isyarat beli dikeluarkan apabila RSI berada di bawah garisan isyarat beli; isyarat jual dikeluarkan apabila RSI berada di atas garisan isyarat jual.
Strategi ini terutamanya berdasarkan kawasan overbought dan oversold dalam RSI untuk menilai masa membeli dan menjual. Apabila RSI di bawah 20 dianggap sebagai oversold, dan lebih tinggi daripada 80 dianggap sebagai overbought. Strategi ini menetapkan tiga garis pembelian RSI rendah, iaitu 20, 18, dan 14. Apabila harga penutupan hari itu lebih tinggi daripada hari sebelumnya dan RSI di bawah garis pembelian yang sesuai, isyarat pembelian dikeluarkan.
Strategi keseluruhan menilai masa untuk membeli dan menjual melalui kawasan overbought dan oversold RSI, dan menetapkan stop loss untuk mengunci keuntungan dan mengawal risiko, strategi perdagangan kuantitatif yang tipikal berdasarkan petunjuk teknikal.
Strategi ini mempunyai kelebihan berikut:
Dengan menggunakan indikator RSI klasik dan terbukti untuk menilai titik jual beli, ia dapat menangkap dengan berkesan masa untuk membeli dan menjual.
Tetapkan beberapa barisan pembelian, anda boleh membeli dalam jumlah yang berbeza dengan harga yang rendah, mengurangkan kos pembelian.
Pengaturan berhenti bergerak untuk mengawal kerugian dan mengunci keuntungan, yang dapat mengawal risiko dengan berkesan.
Logik strategi mudah difahami, mudah diubah suai, dan mudah disahkan di lapangan.
Parameter RSI boleh disesuaikan dan boleh disesuaikan untuk pelbagai jenis dan pasaran.
Strategi ini mempunyai beberapa risiko:
Strategi penunjuk tunggal, mudah menghasilkan isyarat palsu, isyarat yang dikeluarkan oleh penunjuk RSI tidak semestinya tepat.
Tidak ada strategi untuk menghentikan kerugian, ada risiko untuk memperluas kerugian.
Terdapat risiko terhempas dalam rantaian jual-beli yang berlebihan, terutamanya dalam keadaan gegaran.
Dalam keadaan yang melampau, harga mungkin jatuh ke bawah garis stop loss dan tidak dapat dihentikan.
Penyelesaian:
Mengambil keputusan berdasarkan pelbagai petunjuk untuk mengelakkan isyarat palsu.
Tambah zon atau sar sebagai strategi hentian.
Menyesuaikan parameter RSI, mengurangkan jarak.
Kerosakan dinamik atau campur tangan manusia yang tepat pada masanya
Strategi ini boleh dioptimumkan dalam beberapa arah:
Gabungan dengan penunjuk lain, membentuk gabungan penunjuk, mengelakkan isyarat palsu. Gabungan biasa adalah: RSI + KDJ, RSI + MACD dan sebagainya.
Tambah strategi penutupan seperti penutupan trend, penutupan masa, saluran penutupan bergerak dan sebagainya.
Optimumkan parameter, sesuaikan parameter RSI untuk pelbagai jenis dan kitaran.
Strategi derivatif, seperti strategi berbalik-balik, strategi masuk ke dalam kumpulan dan lain-lain.
Memperkecilkan selang jual beli dengan betul untuk mengelakkan isyarat jual beli berlebihan.
Strategi ini secara keseluruhan adalah strategi perdagangan kuantitatif yang tipikal berdasarkan RSI dengan menetapkan isyarat jual beli. Strategi ini mudah difahami dan mudah dipraktikkan. Tetapi terdapat satu isyarat indikator yang tidak boleh dipercayai, strategi tanpa henti berisiko besar.
/*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)