Циклическая стратегия RSI Crossover Momentum является количественной торговой стратегией, основанной на индикаторе относительной силы (RSI). Она генерирует сигналы покупки и продажи через кроссоверы RSI для достижения прибыльных сделок. Сигналы покупки запускаются, когда RSI пересекает установленный пользователем порог, в то время как сигналы продажи запускаются, когда RSI падает ниже порога, постепенно закрывая позиции с прибылью.
Стратегия основана на индикаторе RSI, который измеряет импульс акции и уровни перекупа/перепродажи.
В частности, когда RSI пересекает порог покупки (по умолчанию 60), генерируется сигнал покупки. Стратегия затем открывает длинную позицию. Позже, когда RSI опускается ниже порога продажи (по умолчанию 80), происходит сигнал продажи. Стратегия соответствующим образом закрывает существующую длинную позицию.
Стратегия написана в Pine Script с использованием четкой условной логики для входов и выходов.
Мы можем установить стоп-лосс, оптимизировать параметры RSI или добавить фильтры для его улучшения.
Есть несколько способов оптимизировать стратегию:
Этот базовый пример демонстрирует использование RSI для квантовой торговли. Мы можем использовать его с помощью большего количества индикаторов и методов управления рисками. На практике необходима строгая оптимизация и настройка на основе индивидуальной толерантности к риску перед применением. При хорошей методологии эта стратегия может стать эффективным инструментом количественного инвестирования.
/*backtest start: 2022-12-06 00:00:00 end: 2023-12-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI Cross 60/80 Strategy", overlay=true) // Input for RSI period rsiPeriod = input.int(14, title="RSI Period", minval=1) // Calculate RSI rsiValue = ta.rsi(close, rsiPeriod) // Input for RSI thresholds rsiBuyThreshold = input(60, title="RSI Threshold for Buy") rsiSellThreshold = input(80, title="RSI Threshold for Sell") // Conditions for Buy and Sell signals buySignal = ta.crossover(rsiValue, rsiBuyThreshold) sellSignal = ta.crossunder(rsiValue, rsiSellThreshold) // Plot RSI on the chart plot(rsiValue, title="RSI", color=color.blue) // Strategy entry and exit if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.close("Buy") // Plot Buy and Sell signals on the chart plotshape(series=buySignal, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar) plotshape(series=sellSignal, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)