
Стратегия представляет собой систему обратной торговли в динамическом диапазоне, основанную на RSI, для захвата переломных точек рынка путем установления регулируемого диапазона перекупа и перепродажи в сочетании с параметрами чувствительности к сближению/распространению. Стратегия использует фиксированное количество контрактов для торговли и работает в определенном диапазоне отсчета времени.
Стратегия использует 14-циклический RSI в качестве основного индикатора, устанавливая 80 и 30 в качестве базовых уровней для перекупа и перепродажи. Добавляется динамическая регулирующая способность на основе традиционной стратегии RSI путем введения параметров сближения/распространения чувствительности (настраивается на 3.0).
Это динамическая диапазонная обратная стратегия, основанная на показателях RSI, обеспечивающая относительно полную торговую систему с помощью гибкой настройки параметров и четких правил торговли. Основные преимущества стратегии заключаются в ее способности к динамической регулировке и четкому контролю риска, но при этом необходимо обращать внимание на потенциальные риски в волатильных и трендовых рынках.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI Options Strategy", overlay=true)
// RSI settings
rsiLength = input(14, title="RSI Length")
rsiOverbought = input(80, title="Overbought Level")
rsiOversold = input(30, title="Oversold Level")
rsiSource = input(close, title="RSI Source")
rsi = ta.rsi(rsiSource, rsiLength)
// Convergence/Divergence Input
convergenceLevel = input(3.0, title="Convergence/Divergence Sensitivity")
// Order size (5 contracts)
contracts = 10
// Date Range for Backtesting
startDate = timestamp("2024-09-10 00:00")
endDate = timestamp("2024-11-09 23:59")
// Limit trades to the backtesting period
inDateRange = true
// RSI buy/sell conditions with convergence/divergence sensitivity
buySignalOverbought = ta.crossover(rsi, rsiOverbought - convergenceLevel)
sellSignalOversold = ta.crossunder(rsi, rsiOversold + convergenceLevel)
buySignalOversold = ta.crossunder(rsi, rsiOversold - convergenceLevel)
sellSignalOverbought = ta.crossover(rsi, rsiOverbought + convergenceLevel)
// Execute trades only within the specified date range
if (inDateRange)
// Buy when RSI crosses above 80 (overbought)
if (buySignalOverbought)
strategy.entry("Buy Overbought", strategy.long, qty=contracts)
// Sell when RSI crosses below 30 (oversold)
if (sellSignalOversold)
strategy.close("Buy Overbought")
// Buy when RSI crosses below 30 (oversold)
if (buySignalOversold)
strategy.entry("Buy Oversold", strategy.long, qty=contracts)
// Sell when RSI crosses above 80 (overbought)
if (sellSignalOverbought)
strategy.close("Buy Oversold")
// Plot the RSI for visualization
plot(rsi, color=color.blue, title="RSI")
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)