Стратегия торговли диапазоном RSI

Автор:Чао Чжан, Дата: 2023-11-06 16:12:23
Тэги:

img

Обзор

Стратегия торговли диапазоном 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")

Больше