Strategi ini menggabungkan Indeks Kekuatan Relatif (RSI) dan penunjuk teknikal Supertrend untuk menangkap trend pasaran dan mengenal pasti peluang perdagangan yang berpotensi. Idea utama di sebalik strategi ini adalah menggunakan RSI untuk menentukan keadaan pasaran yang terlalu banyak dibeli dan terlalu banyak dijual sambil menggunakan penunjuk Supertrend untuk mengesahkan arah trend. Apabila kedua-dua penunjuk RSI dan Supertrend memenuhi keadaan tertentu secara serentak, strategi menghasilkan isyarat beli atau jual.
RSI + Supertrend Trend-Following Trading Strategy berkesan menangkap trend pasaran dan menghasilkan isyarat perdagangan dengan menggabungkan penunjuk teknikal RSI dan Supertrend. Kelebihan strategi terletak pada logiknya yang jelas, kemudahan pelaksanaan, dan pertimbangan faktor momentum dan trend. Walau bagaimanapun, strategi ini juga mempunyai beberapa risiko, seperti perdagangan yang kerap dan batasan dalam tetapan parameter. Untuk meningkatkan lagi prestasi strategi, seseorang boleh mempertimbangkan pengenalan penunjuk lain, mengoptimumkan parameter, memperkukuhkan langkah pengurusan risiko, dan terus memantau dan menyesuaikan strategi.
/*backtest start: 2024-05-21 00:00:00 end: 2024-05-28 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI + Supertrend Strategy", overlay=true) // Input parameters rsiLength = input.int(14, title="RSI Length") rsiOverbought = input.int(58, title="RSI Overbought Level") rsiOversold = input.int(38, title="RSI Oversold Level") supertrendLength = input.int(10, title="Supertrend Length") supertrendMultiplier = input.int(3, title="Supertrend Multiplier") // Calculate indicators rsiValue = ta.rsi(close, rsiLength) [supertrend, _] = ta.supertrend(supertrendLength, supertrendMultiplier) // Plot Supertrend on main chart plot(supertrend, color = supertrend < close ? color.green : color.red, linewidth = 2, title="Supertrend") // Plot RSI hline(rsiOverbought, "Overbought", color.red) hline(rsiOversold, "Oversold", color.green) plot(rsiValue, title="RSI", color=color.blue) // Strategy var float entryPrice = na // Long conditions longCondition = (rsiValue > rsiOverbought) and (supertrend < close) // Short conditions shortCondition = (rsiValue < rsiOversold) and (supertrend > close) // Exit conditions longExitCondition = (rsiValue < 50) and (supertrend > close) shortExitCondition = (rsiValue > 45) and (supertrend < close) // Execute strategy if (longCondition) strategy.entry("Long", strategy.long) entryPrice := close if (shortCondition) strategy.entry("Short", strategy.short) entryPrice := close if (longExitCondition and strategy.position_size > 0) strategy.close("Long") if (shortExitCondition and strategy.position_size < 0) strategy.close("Short") // Date and time range for backtest startDate = timestamp("2023-01-01 00:00") endDate = timestamp("2024-01-01 00:00") if (time < startDate or time > endDate) strategy.close_all()