Alpha RSI Breakout Trading Strategy - это стратегия трейдинга, основанная на индикаторе RSI. Эта стратегия использует индикатор RSI для выявления условий перекупа и перепродажи и сочетается с скользящими средними для определения направления тренда.
Стратегия основывается на следующей логике:
Если показатель RSI превышает порог перекупленности (дефолт 70), актив считается перекупленным и открывается короткая торговля.
Когда показатель RSI переходит ниже порога перепродажи (по умолчанию 30), актив считается перепроданным и открывается длинная торговля.
Движущаяся средняя SMA используется для определения основного тренда.
В частности, стратегия включает в себя:
Входы для периода SMA (неопределенный 200), периода RSI (неопределенный 14), уровня входа в RSI (неопределенный 34), уровня стоп-лосса (неопределенный 30), уровня получения прибыли (неопределенный 50).
Расчет значений SMA и RSI.
Долгая позиция вводится, когда RSI пересекает входный уровень, а закрытие находится выше SMA.
После длинного открытия стоп-лосс обновляется до нижнего уровня предыдущего закрытия.
Долгая позиция закрывается, когда: а) RSI падает ниже стоп-лосса; б) RSI достигает прибыли; в) Close падает ниже стоп-лосса.
Только длинные сделки, не короткие.
Эта стратегия определяет точки перелома по уровням перекупленности/перепроданности ИРС и вступает в подходящие моменты противоположной тенденции после подтверждения направления основного тренда.
По сравнению с простыми стратегиями скользящей средней, эта стратегия имеет следующие преимущества:
RSI лучше идентифицирует точки перелома через уровни перекупленности/перепродажи.
Торговля проводится только тогда, когда тренд согласуется с сигналами RSI, уменьшая ложные сигналы.
Механизмы остановки потерь и получения прибыли активно управляют рисками и доходами.
Последующая остановка закроет больше прибыли по мере того, как цена будет двигаться благоприятно.
Простые и понятные правила, легко понятные для новичков.
Стратегия также несет в себе некоторые риски:
RSI все еще может давать ложные сигналы, могут быть добавлены другие фильтры, такие как громкость.
Фиксированные параметры входа, стоп-лосса и прибыли могут не соответствовать всем активам и рыночным условиям.
Расходы на торговлю не учитываются. Спред и комиссия влияют на прибыль.
Пропуская возможности для коротких выборов, я могу прибавить короткие правила.
Рассмотрим правильные правила управления капиталом, например, максимальный риск на одну сделку.
Некоторые способы улучшения стратегии:
Добавьте другие фильтры, например, аномалии громкости.
Динамическая оптимизация параметров с помощью методов машинного обучения.
Добавьте правила коротких позиций, чтобы отследить нисходящие тенденции.
Учитывайте торговые издержки, оптимизируйте параметры по специфике активов.
Добавить модуль управления капиталом, например, лимиты риска по сделкам.
Оптимизация обратных тестов для комбинаций параметров для повышения эффективности.
Стратегия прорыва RSI сочетает в себе стратегии тренда и реверсии. Она идентифицирует реверсии при одновременном контроле рисков. Несмотря на то, что она улучшается для сложных рынков, она обеспечивает простую референсную модель для обучения квантовой стратегии. При надлежащей оптимизации она может быть прибыльной механической стратегией.
/*backtest start: 2022-09-30 00:00:00 end: 2023-10-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © abdllhatn //@version=5 // strategy("Alpha RSI Breakout Strategy", overlay=true, initial_capital=10000, default_qty_value=100) // Inputs sma_length = input(200, title="SMA Length") rsi_length = input(14, title="RSI Length") rsi_entry = input(34, title="RSI Entry Level") rsi_stop_loss = input(30, title="RSI Stop Loss Level") rsi_take_profit = input(50, title="RSI Take Profit Level") // Indicators sma_value = ta.sma(close, sma_length) rsi_value = ta.rsi(close, rsi_length) var bool trailing_stop_activate = false var float trailingStop = na var float lastClose = na // Conditions longCondition = ta.crossover(rsi_value, rsi_entry) and close > sma_value if (longCondition) strategy.entry("Buy", strategy.long) trailingStop := na lastClose := na trailing_stop_activate := false if (strategy.position_size > 0) if (na(lastClose) or close < lastClose) lastClose := close trailingStop := close if (rsi_value >= rsi_take_profit) trailing_stop_activate := true if (trailing_stop_activate and not na(trailingStop) and close < trailingStop) strategy.close("Buy") if (rsi_value <= rsi_stop_loss) strategy.close("Buy") if (not trailing_stop_activate and rsi_value >= rsi_take_profit) strategy.close("Buy") if (trailing_stop_activate and rsi_value >= rsi_take_profit) strategy.close("Buy") // Plot plot(sma_value, color=color.red, linewidth=2) plot(rsi_value, color=color.blue, linewidth=2)