
Стратегия сочетает в себе два технических показателя, относительно сильный и слабый индекс ((RSI) и Supertrend, для захвата рыночных тенденций и выявления потенциальных торговых возможностей. Основная идея стратегии заключается в использовании RSI для определения состояния перекупа и перепродажи на рынке, а также использовании показателя Supertrend для подтверждения направления тенденции.
RSI+Supertrend Trend Tracking Trading Strategy эффективно улавливает рыночные тенденции и генерирует торговые сигналы, используя комбинацию двух технических показателей RSI и Supertrend. Преимущества стратегии заключаются в логической ясности, простоте реализации, а также в учете динамики и трендовых факторов. Однако, стратегия также имеет некоторые риски, такие как частота торговли и ограничения параметров.
/*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()