Сегодня мы рассмотрим индикатор RVI. Узнаем историю создания индикатора и то, как он рассчитывается.
Также к данной статье будут прикреплены готовые скрипты роботов на этом индикаторе с возможностью торговать на нашей платформе OsEngine.
Оглавление
1. История создания индикатора RVI.
2. Как проводятся расчеты индикатора RVI.
3. Какие сигналы может подавать индикатор RVI.
4. Роботы для OsEngine на индикаторе RVI.
4.1. Стратегия, основанная на дивергенции индикатора RVI.
4.2. Стратегия, основанная на индикаторах RVI и Envelopes.
4.3. Стратегия на пересечение двух Ema и RVI.
5. Итоговая таблица результатов.
1. История создания индикатора RVI.
Индикатор Relative Vigor Index был представлен сообществу трейдеров Джоном Эйлерсом в журнале «Stocks & Commodities» в январе 2002 года.
Индикатор RVI основан на идее, что если закрытие свечи выше по сравнению с открытием, то это указывает на бычий тренд, а закрытие свечи ниже по сравнению с открытием указывает на медвежий тренд. RVI показывает, насколько цена закрытия актива ближе к максимальной или минимальной цене в пределах торгового диапазона.
RVI отображается в новой области окна графика анализируемого актива в форме двух последовательно пересекающихся линий — линии RVI и сигнальной, которые своим пересечением дают торговые сигналы. RVI может принимать как положительные, так и отрицательные значения.
Индикатор RVI позволяет трейдерам более точно оценить силу тренда и точки разворота цены на рынке, что помогает им принимать более обоснованные решения при торговле.
2. Как проводятся расчеты индикатора RVI.
Расчет индикатора RVI:
1. Рассчитаем диапазон тела свечей. Берем последние четыре свечи.
moveAverage = (Close[i] – Open[i]) + 2 * (Close[i -1] – Open[i-1]) + 2 * (Close[i-2] – Open[i-2]) + (Close[i-3] – Open[i-3])
где
- Close — цена закрытия свечи,
- Open — цена открытия свечи.
2. Рассчитаем общий диапазон свечей. Берем последние четыре свечи.
rangeAverage = (High[i] – Low[i]) + 2 * (High[i -1] – Low[i-1]) + 2 * (High[i-2] – Low[i-2]) + (High[i-3] – Low[i-3])
где
- High — наивысшая цена свечи,
- Low — наименьшая цена свечи.
3. Рассчитаем RVI. Отношение суммы диапазона тела свечей и суммы общего диапазона свечей за выбранный период.
RVI = Σ moveAverage / Σ rangeAverage
4. Расчет сигнальной линии. Берем последние 4 значения RVI.
RVISecond = (RVI[i] + 2* RVI[i-1] + 2* RVI[i-2] + RVI[i-3]) / 6
Расчёт индикатора в OsEngine можно посмотреть вот в этом файле:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/RVI.cs
3. Какие сигналы может подавать индикатор RVI.
1. Сигналы о перекупленности и перепроданности: низкие значения индикатора указывают на перепроданность рынка, а высокие – на перекупленность (например, 0,3 и -0,3).
2. Дивергенция: дивергенция между ценой и RVI может указать на возможное изменение направления цены. Например, если цена растет, а RVI падает, это может быть сигналом о слабости текущего тренда.
3. Пересечение нулевой линии: пересечение RVI через нулевую линию также может сигнализировать о возможном изменении направления рынка. Например, при переходе от отрицательных значений RVI к положительным, это может означать возможное начало восходящего тренда.
4. Пересечение основной и сигнальной линий: когда основная линия пересекает сигнальную снизу вверх, это может служить сигналом к покупке. А когда сверху вниз – к продаже.
4. Роботы для OsEngine на индикаторе RVI.
4.1. Стратегия, основанная на дивергенции индикатора RVI.
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/DevergenceRVI.cs
Ссылка на ZigZag:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/ZigZag.cs
Ссылка на ZigZagRVI (отдельный индикатор):
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/ZigZagRVI.cs
Для осуществления этой стратегии наша команда совместила индикатор RVI и ZigZag для более правильного определения дивергенции. На этот индикатор также будет ссылка, и он уже встроен в нашу платформу OsEngine. И также на графике мы тоже используем обычный индикатор ZigZag.
Логика входа:
- Покупаем, когда на ценовом графике минимум за определенный отрезок времени ниже предыдущего, а на индикаторе минимум выше предыдущего.
- Продаём, когда на графике цены максимум за определенное количество времени выше предыдущего, а на индикаторе максимум ниже предыдущего.
Выход:
- Из покупки. Устанавливаем стоп на минимум за указанный для стопа период, а профит равен размеру стопа умноженного, на коэффициент из параметров.
- Из продажи. Устанавливаем стоп на максимум за указанный для стопа период, а профит равен размеру стопа, умноженного на коэффициент из параметров.
Рис. 1. Пример логики.
Рис. 2. Si, TF15 min, 2021-23, P/L 1 contract: 0,49%
Рис. 3. BR, TF15 min, 2021-23, P/L 1 contract: 0,10%
Рис. 4. BTCUSDT, TF15 min, 2021-23, P/L 1 contract: 0,33%
Рис. 5. ETHUSDT, TF15 min, 2021-23, P/L 1 contract: 0,62%
4.2. Стратегия, основанная на индикаторах RVI и Envelopes.
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyEnvelopsAndRVI.cs
Ссылка на Envelopes:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/Envelops.cs
Логика входа:
- Покупаем, когда свеча закрылась выше верхней линии Envelopes, и RVI выше 0 и растущий.
- Продаем, когда свеча закрылась ниже нижней линии Envelopes, и RVI ниже 0 и падающий.
Выход:
- Из покупки, когда свеча закрылась ниже нижней линии Envelopes.
- Из продажи, когда свеча закрылась выше верхней линии Envelopes.
Рис. 6. Пример логики.
Рис. 7. Si, TF15 min, 2021-23, P/L 1 contract: 0,41%
Рис. 8. BR, TF15 min, 2021-23, P/L 1 contract: 0,44%
Рис. 9. BTCUSDT, TF15 min, 2021-23, P/L 1 contract: 0,77%
Рис. 10. ETHUSDT, TF15 min, 2021-23, P/L 1 contract: 0,71%
4.3. Стратегия на пересечение двух Ema и RVI.
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyTwoEmaAndRVI.cs
Ссылка на Ema:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/Ema.cs
Логика входа:
- Покупаем, когда быстрая Ema выше медленной, и линия RVI выше сигнальной линии.
- Продаем, когда быстрая Ema ниже медленной и линия RVI ниже сигнальной линии.
Выход:
- Из покупки, когда линия RVI ниже сигнальной линии.
- Из продажи, когда линия RVI выше сигнальной линии.
Рис. 11. Пример логики.
Рис. 12. Si, TF15 min, 2021-23, P/L 1 contract: 0,08%
Рис. 13. Br, TF15 min, 2021-23, P/L 1 contract: 0,07%
Рис. 14. BTCUSDT, TF15 min, 2021-23, P/L 1 contract: 0,07%
Рис. 15. ETHUSDT, TF15 min, 2021-23, P/L 1 contract: 0,06%
5. Итоговая таблица результатов.
Лучшие результаты у нас показала стратегия, основанная на индикаторах RVI и Envelopes.
* Информация представлена по расчетам OsEngine https://github.com/AlexWan/OsEngine
Ссылки на роботов на GitHub:
- https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/DevergenceRVI.cs
- https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyEnvelopsAndRVI.cs
- https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyTwoEmaAndRVI.cs
Пост из серии «Роботы и индикаторы»
Из данных статей Вы узнаете базовую информацию о том или ином индикаторе. А также можно посмотреть роботов на данных индикаторах с исходным кодом.
Оглавление здесь: https://smart-lab.ru/company/os_engine/blog
OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php