Strategi ini merancang strategi investasi kuantitatif untuk perdagangan indeks Nifty berdasarkan indikator Relative Strength Index (RSI).
Strategi ini menetapkan RSI 2 periode sebagai sinyal perdagangan. Ini pergi panjang ketika RSI melintasi di atas 20, dan menutup posisi ketika RSI melintasi di bawah 70. Ini menangkap peluang penyesuaian jangka pendek dari indeks.
Logika adalah: ketika RSI di bawah 20, itu menunjukkan status oversold, menyiratkan aset diremehkan dan rebound di depan. Ketika RSI melintasi di atas 20, pergi panjang. Ketika RSI di atas 70, itu menunjukkan status overbought, menyiratkan aset di atas nilai dan callback di depan. Ketika RSI melintasi di bawah 70, posisi tutup.
Sebagai strategi yang mengidentifikasi peluang overbought / oversold jangka pendek dengan indikator, keuntungan utama adalah:
Risiko utama dari strategi ini meliputi:
Untuk mengendalikan risiko yang disebutkan di atas, optimasi dapat dilakukan dalam aspek berikut:
Aspek utama untuk mengoptimalkan strategi:
/*backtest start: 2023-01-18 00:00:00 end: 2024-01-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("RSI Strategy", overlay=true,pyramiding = 1000) rsi_period = 2 rsi_lower = 20 rsi_upper = 70 rsi_value = rsi(close, rsi_period) buy_signal = crossover(rsi_value, rsi_lower) sell_signal = crossunder(rsi_value, rsi_upper) current_date1 = input(defval=timestamp("01 Nov 2009 00:00 +0000"), title="stary Time", group="Time Settings") current_date = input(defval=timestamp("01 Nov 2023 00:00 +0000"), title="End Time", group="Time Settings") investment_amount = 100000.0 start_time = input(defval=timestamp("01 Dec 2018 00:00 +0000"), title="Start Time", group="Time Settings") end_time = input(defval=timestamp("30 Nov 2023 00:00 +0000"), title="End Time", group="Time Settings") in_time = time >= start_time and time <= end_time // Variable to track accumulation. var accumulation = 0.0 out_time = time >= end_time if (buy_signal ) strategy.entry("long",strategy.long,qty= 1) accumulation += 1 if (out_time) strategy.close(id="long") plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup) plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown) plot(rsi_value, title="RSI", color=color.blue) hline(rsi_lower, title="Lower Level", color=color.red) plot(strategy.opentrades, style=plot.style_columns, color=#2300a1, title="Profit first entry") plot(strategy.openprofit, style=plot.style_line, color=#147a00, title="Profit first entry") // plot(strategy.position_avg_price, style=plot.style_columns, // color=#ca0303, title="Profit first entry") // log.info(strategy.position_size * strategy.position_avg_price)