Эта стратегия представляет собой трендовую торговую систему, которая сочетает в себе индекс относительной силы (RSI) с скользящей средней (MA). Основной механизм использует RSI для улавливания изменений динамики цен при включении 90-дневной скользящей средней в качестве трендового фильтра, эффективно отслеживая рыночные тенденции.
Стратегия основана на нескольких основных компонентах:
Сигналы покупки запускаются, когда RSI превышает 70, в то время как сигналы продажи генерируются, когда RSI падает ниже 62.
Рекомендации по контролю риска:
Оптимизация системы сигналов:
Оптимизация управления позициями:
Оптимизация контроля рисков:
Оптимизация системы обратного тестирования:
Стратегия строит относительно полную торговую систему, сочетая индикатор импульса RSI с фильтром тренда MA. Ее сильные стороны заключаются в сильной адаптивности и всеобъемлющем контроле рисков, но необходимо уделять внимание чувствительности параметров и изменениям рыночной среды.
/*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("Simple RSI Strategy - Adjustable Levels with Lookback Limit and 30-Day MA", overlay=true) // Parameters rsi_length = input.int(12, title="RSI Length", minval=1) // RSI period rsi_overbought = input.int(70, title="RSI Overbought Level", minval=1, maxval=100) // Overbought level rsi_oversold = input.int(62, title="RSI Oversold Level", minval=1, maxval=100) // Oversold level ma_length = input.int(90, title="Moving Average Length", minval=1) // Moving Average period // Calculate lookback period (2000 days) lookback_period = 2500 start_date = timestamp(year(timenow), month(timenow), dayofmonth(timenow) - lookback_period) // RSI Calculation rsi_value = ta.rsi(close, rsi_length) // 30-Day Moving Average Calculation ma_value = ta.sma(close, ma_length) // Buy Condition: Buy when RSI is above the overbought level long_condition = rsi_value > rsi_overbought // Sell Condition: Sell when RSI drops below the oversold level sell_condition = rsi_value < rsi_oversold // Check if current time is within the lookback period in_lookback_period = (time >= start_date) // Execute Buy with 100% equity if within lookback period if (long_condition and strategy.position_size == 0 and in_lookback_period) strategy.entry("Buy", strategy.long, qty=strategy.equity / close) if (sell_condition and strategy.position_size > 0) strategy.close("Buy") // Plot RSI on a separate chart for visualization hline(rsi_overbought, "Overbought", color=color.red) hline(rsi_oversold, "Oversold", color=color.green) plot(rsi_value, title="RSI", color=color.blue) // Plot the 30-Day Moving Average on the chart plot(ma_value, title="30-Day MA", color=color.orange, linewidth=2)