Strategi ini menggunakan indikator RSI untuk menentukan apakah cryptocurrency terlalu laris, dan membeli ketika RSI berada di bawah 30, yang dianggap terlalu laris. Ini kemudian menetapkan stop loss dan mengambil harga keuntungan. Jika harga stop loss dipukul, itu akan keluar dari posisi. Jika harga take profit tercapai, itu akan menutup posisi untuk keuntungan.
Strategi ini menggunakan indikator RSI untuk mengidentifikasi sinyal masuk. RSI mengukur kecepatan dan besarnya perubahan harga untuk menentukan apakah aset terlalu banyak dibeli atau terlalu banyak dijual. RSI berkisar dari 0 sampai 100, dengan di atas 70 dianggap terlalu banyak dibeli dan di bawah 30 terlalu banyak dijual.
Ketika RSI turun di bawah 30, strategi memasuki posisi panjang, bertaruh pada pembalikan tren.
Setelah membuka posisi, stop loss dan take profit ditetapkan. Stop loss ditetapkan 1% di bawah harga masuk. Take profit ditetapkan 7% di atas harga masuk.
Jika harga turun di bawah stop loss, posisi ditutup. Jika harga naik di atas take profit, posisi ditutup untuk keuntungan.
Menggunakan RSI untuk mengidentifikasi kondisi oversold memberikan titik masuk yang baik pada titik terendah relatif.
Stop loss ketat mengontrol risiko pada dasar per perdagangan.
Keuntungan mengambil kunci dalam keuntungan dari pergerakan besar ke atas.
Strategi ini memiliki pengendalian pengambilan yang kuat dan risiko yang lebih rendah secara keseluruhan.
Sinyal oversold RSI tidak selalu mengarah pada pembalikan, harga bisa terus turun yang mengarah pada stop loss.
Stop loss mungkin terlalu ketat, yang menyebabkan stop prematur jika drawdown besar.
Keuntungan mungkin terlalu besar, menutup keuntungan lebih awal dan tidak membiarkan pemenang lari.
Strategi ini bisa menghadapi kerugian besar selama pasar samping bergolak.
Menggabungkan RSI dengan indikator lain seperti KDJ dapat meningkatkan akurasi sinyal dan menghindari sinyal palsu.
Mengoptimalkan stop loss dan mengambil persentase keuntungan berdasarkan volatilitas koin yang berbeda.
Mencoba parameter jangka waktu yang berbeda untuk menemukan kombinasi yang optimal.
Mengoptimalkan ukuran posisi berdasarkan hasil backtest.
Secara keseluruhan, ini adalah strategi breakout oversold yang cukup kuat. Mengambil posisi setelah sinyal RSI oversold memberikan titik masuk yang baik dengan harga yang relatif rendah. Stop loss dan take profit mechanics membantu mengendalikan risiko dan mengunci keuntungan. Penarikan dapat dikelola yang membuatnya cocok untuk kepemilikan jangka panjang. Parameter dapat dioptimalkan sesuai dengan perubahan kondisi pasar untuk peningkatan kinerja.
/*backtest start: 2023-09-18 00:00:00 end: 2023-09-25 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © brodieCoinrule //@version=4 strategy(shorttitle='Oversold RSI with tight SL',title='Oversold RSI with tight SL Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 50, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => true // create function "within window of time" perc_change(lkb) => overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100 // RSI inputs and calculations lengthRSI = 14 RSI = rsi(close, lengthRSI) oversold= input(30) //Entry strategy.entry(id="long", long = true, when = RSI< oversold and window()) //Exit Stop_loss= ((input (1))/100) Take_profit= ((input (7)/100)) longStopPrice = strategy.position_avg_price * (1 - Stop_loss) longTakeProfit = strategy.position_avg_price * (1 + Take_profit) strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())