
Это стратегия обратного тренда, которая сочетает в себе относительно слабый RSI и случайный относительно слабый RSI. Стратегия используется для выявления перебоев и перепродаж на рынке, а также для изменения динамики. Основная часть стратегии заключается в том, чтобы использовать RSI в качестве базового динамического индикатора, а затем рассчитать Stochastic RSI на этой основе, чтобы дополнительно подтвердить направление изменения динамики цен.
Основная логика стратегии включает в себя следующие ключевые шаги:
Это комплексная стратегия, объединяющая динамику и обратный тренд, для выявления потенциальных торговых возможностей с помощью синхронного действия RSI и Stochastic RSI. Стратегия разработана рационально, имеет хорошую адаптивность и адаптивность. Однако в практическом применении необходимо обращать внимание на выбор и контроль риска в рыночной среде.
/*backtest
start: 2024-06-15 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("RSI + Stochastic RSI Strategy", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// INPUTS
// RSI settings
rsiLength = input.int(14, "RSI Length", minval=1)
rsiOverbought = input.int(70, "RSI Overbought Level")
rsiOversold = input.int(30, "RSI Oversold Level")
// Stochastic RSI settings
stochLength = input.int(14, "Stoch RSI Length", minval=1)
smoothK = input.int(3, "Stoch %K Smoothing", minval=1)
smoothD = input.int(3, "Stoch %D Smoothing", minval=1)
stochOverbought = input.int(80, "Stoch Overbought Level")
stochOversold = input.int(20, "Stoch Oversold Level")
// CALCULATIONS
// Compute RSI value on the closing price
rsiValue = ta.rsi(close, rsiLength)
// Calculate Stochastic RSI using the RSI value as source
rsiStoch = ta.stoch(rsiValue, rsiValue, rsiValue, stochLength)
kValue = ta.sma(rsiStoch, smoothK)
dValue = ta.sma(kValue, smoothD)
// PLOTTING
// Plot RSI and reference lines
plot(rsiValue, title="RSI", color=color.blue)
hline(rsiOverbought, "RSI Overbought", color=color.red)
hline(rsiOversold, "RSI Oversold", color=color.green)
// Plot Stochastic RSI %K and %D along with overbought/oversold levels
plot(kValue, title="Stoch %K", color=color.orange)
plot(dValue, title="Stoch %D", color=color.purple)
hline(stochOverbought, "Stoch Overbought", color=color.red, linestyle=hline.style_dotted)
hline(stochOversold, "Stoch Oversold", color=color.green, linestyle=hline.style_dotted)
// STRATEGY CONDITIONS
// Long Condition: RSI below oversold and Stoch RSI crosses upward while in oversold territory
longCondition = (rsiValue < rsiOversold) and (kValue < stochOversold) and ta.crossover(kValue, dValue)
// Long Exit: When RSI goes above overbought or a downward cross occurs on the Stoch RSI
longExit = (rsiValue > rsiOverbought) or ta.crossunder(kValue, dValue)
// Short Condition: RSI above overbought and Stoch RSI crosses downward while in overbought territory
shortCondition = (rsiValue > rsiOverbought) and (kValue > stochOverbought) and ta.crossunder(kValue, dValue)
// Short Exit: When RSI goes below oversold or an upward cross occurs on the Stoch RSI
shortExit = (rsiValue < rsiOversold) or ta.crossover(kValue, dValue)
// EXECUTE TRADES
if (longCondition)
strategy.entry("Long", strategy.long)
if (longExit)
strategy.close("Long")
if (shortCondition)
strategy.entry("Short", strategy.short)
if (shortExit)
strategy.close("Short")