Стратегия торговли диапазоном RSI приносит прибыль, торгуя против тренда, когда RSI достигает уровня перекупленности или перепроданности. Она основана на предположении, что цены не движутся в одном направлении навсегда, а колеблются вперед и назад в пределах диапазона. Эта стратегия направлена на то, чтобы воспользоваться отступлениями, когда RSI достигает крайностей.
Стратегия рассчитывает индикатор RSI, чтобы определить, достигла ли цена перекупленного или перепроданного уровня. В частности, период RSI устанавливается на 2 бары. Линия перекупленности составляет 91 и линия перепроданности составляет 11. Когда RSI пересекает уровень перекупленности, генерируется короткий сигнал. Когда RSI пересекает уровень перепроданности, генерируется длинный сигнал. Размер позиции устанавливается на 5% от максимального риска на сделку.
Чтобы контролировать риски, внедряется механизм стоп-лосса. Если цена движется на 0,5% против длинной позиции после открытия длинной, позиция будет закрыта. Аналогично и для короткой позиции. Это избегает чрезмерных потерь, когда цена сильно движется в одном направлении.
В целом, основная логика заключается в мониторинге РСИ на наличие перекупленного/перепроданного, торговле против тренда на основе настроенных уровней РСИ и управлении рисками с помощью стоп-лосса.
RSI является проверенным показателем для определения уровня перекупа/перепродажи.
Торговля против экстремалов соответствует предположению колебаний цен вместо одностороннего тренда.
Стоп-лосс контролирует потери для отдельных сделок.
Простая и понятная система обратного тестирования, легко понятная и модифицируемая.
Гибкие параметры RSI и уровень стоп-лосса, адаптируемые к изменяющимся рынкам.
RSI - это индикатор тренда, который может привести к постоянным потерям в течение длительного тренда вместо ценового диапазона.
Неправильные параметры RSI могут генерировать больше сигналов, но с более низкой скоростью выигрыша.
Стоп-лосс может быть задействован небольшими движениями или привести к большим потерям, если он не установлен правильно.
Стратегия работает лучше на рынке с ограниченным диапазоном, может быть менее эффективной в сильных сценариях тренда.
Чрезмерный размер позиции может увеличить убытки.
Комбинируйте RSI с другими индикаторами, такими как MACD, чтобы улучшить точность сигнала.
Исследуйте статистическое поведение RSI с различными параметрами, чтобы найти оптимальные настройки.
Испытать механизмы динамического размещения позиций при обратных испытаниях.
Используйте ATR для установки адаптивных уровней остановки потерь.
Используйте машинное обучение для обнаружения оптимальных комбинаций параметров.
Исследуйте возможность совмещения других стратегий средней реверсии с RSI для создания надежных систем.
Стратегия торговли диапазоном RSI делает простые обратные сделки на основе уровня перекупленности / перепродажи RSI и управляет риском с помощью стоп-лосса. Она работает для колеблющихся рынков, связанных с диапазоном, но имеет ограничения в сильных сценариях тренда. Прямая настройка параметров, улучшение правил стоп-лосса, сочетание с другими индикаторами и стратегиями могут повысить его стабильность и адаптивность. В целом эта стратегия обеспечивает некоторые ценные идеи, но требует осторожного применения и оптимизации в живой торговле.
/*backtest start: 2022-10-30 00:00:00 end: 2023-11-05 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Simple RSI Strategy", overlay=true) var rsiLength = input(2, title = "rsi Length") var float rsiBuyLevel = input(11, title = "What rsi level triggers a long") var float rsiShortLevel = input(91, title = "What rsi level triggers a short") var float maxRisk = input(.05, title="Maximum risk/ trade") var chartEntryStop = input(.005, title="Max Movment in the opposite direction / trade") var float longEntryPrice = na var float shortEntryPrice = na rsiValue = ta.rsi(close, rsiLength) var float maxRiskValue = (strategy.equity * maxRisk) / chartEntryStop var float maxRsi = 0 //Conditions // Strategy Execution if( close <= longEntryPrice-(longEntryPrice*chartEntryStop )) strategy.close("Long") if( close >= shortEntryPrice+(shortEntryPrice*chartEntryStop )) strategy.close("Short") if (rsiValue <= rsiBuyLevel and maxRsi == rsiShortLevel) maxRsi := rsiBuyLevel strategy.close("Short") strategy.entry("Long", strategy.long) longEntryPrice := close else if (rsiValue >= rsiShortLevel and maxRsi == rsiBuyLevel) maxRsi := rsiShortLevel strategy.close("Long") strategy.entry("Short", strategy.short) shortEntryPrice := close else if (rsiValue >= rsiShortLevel ) maxRsi := rsiShortLevel strategy.close("Long") else if (rsiValue <= rsiBuyLevel ) maxRsi := rsiBuyLevel strategy.close("Short")