ROC: как выбрать прошлое закрытие и рассчитать изменение в процентах
Цена выросла со 100 до 120. Это рост на 20% относительно 100. Но если сравнить те же 120 с предыдущим закрытием 110, получится около 9,09%. Оба числа могут быть верными: они отвечают на разные вопросы и используют разные начальные точки.
ROC, Rate of Change, показывает процентное изменение выбранной цены относительно значения несколько баров назад. Разберём собственный пример Student Wyckoff с полными датами, знаменателями и подсчётом баров. Общая энциклопедия технических индикаторов даёт обзор инструментов; эта страница помогает проверить конкретное число ROC перед записью в учебный план.
1. Сначала определите период и исходную цену
В выбранном расчёте ROC(N) = 100 × (текущее закрытие − закрытие N баров назад)/закрытие N баров назад. Именно прошлое закрытие стоит в знаменателе. Такое определение приведено в официальной справке TradingView о ROC.
N — число переходов между барами, а не число календарных суток. Для вычисления нужны текущая цена и наблюдение на N шагов раньше, то есть минимум N + 1 наблюдение в упорядоченном ряду. Выбранный период графика необходимо записать рядом с N: ROC(5) на часовом и дневном графиках использует разные интервалы.
В упражнении источник — закрытие, бары завершены, все цены положительные и выражены в одной условной единице. Мы рассматриваем только изменение цены. Дивиденды, комиссии, пополнения счёта и размер позиции в эту формулу не входят.
2. Пронумеруйте наблюдения вместе с датами
Для примера задаём шесть дневных наблюдений. Цены вымышлены; даты помогают увидеть порядок и пропуск выходных, а не воспроизводят котировки или официальный календарь конкретной биржи.
| Номер бара | Учебная дата | Закрытие |
|---|---|---|
| 1 | 05.10.2026 | 100 |
| 2 | 06.10.2026 | 103 |
| 3 | 07.10.2026 | 102 |
| 4 | 08.10.2026 | 104 |
| 5 | 09.10.2026 | 110 |
| 6 | 12.10.2026 | 120 |
На баре 6 один бар назад — строка 5, пять баров назад — строка 1. Посчитайте переходы: 6→5, 5→4, 4→3, 3→2, 2→1. Между строками 1 и 6 пять переходов и шесть наблюдений. Выбор строки 2 по принципу «возьмём пять последних строк» даст другую начальную точку.
На реальных данных сначала проверьте порядок дат и наличие нужных баров. Не дописывайте отсутствующий день нулевой ценой. Для внутридневного графика дополнительно зафиксируйте часовой пояс и время последнего завершённого бара.
3. Получите 20% и 9,09% из одной последней цены
Для ROC(5) на 12 октября прошлое закрытие равно 100. Разность 120 − 100 = 20. Делим её на 100, затем умножаем на 100: ROC(5) = 20%.
Для ROC(1) на той же дате прошлое закрытие равно 110. Разность 120 − 110 = 10. Получаем 100 × 10/110 = 9,0909…%. Последняя цена не изменилась, но вопрос о длине сравнения стал другим.
| Расчёт на 12.10.2026 | Базовая дата | Базовая цена | Разность | Результат |
|---|---|---|---|---|
| ROC(5) | 05.10.2026 | 100 | 20 | 20% |
| ROC(1) | 09.10.2026 | 110 | 10 | 9,0909…% |
Если в первом расчёте разделить 20 на текущие 120, получится 16,6667…%. Это другая база сравнения; выбранную формулу ROC такое деление не повторяет. Поэтому сохраняйте рядом с результатом обе цены, а не только разность.
Считайте с полной точностью, округляя итог для записи. Например, 9,09% — удобное отображение, а не точное значение дроби 10/110. Округление не должно менять выбранную дату или знаменатель.
4. Проверьте знак, нулевую базу и смену направления
При положительной базе текущая цена выше прошлой даёт положительный ROC, ниже — отрицательный, равна — ноль. Если базовая цена равна нулю, деление не определено: в нашем листе проверки отмечаем невозможность расчёта и проверяем данные. Отрицательные цены выходят за пределы этой учебной модели; привычные выводы о знаке туда автоматически не переносим.
Проценты роста и обратного падения не симметричны. Для отдельного контрольного примера возьмём путь 100→120→100. Первый шаг даёт +20%, второй −16,6667…% относительно новой базы 120. Цена вернулась к 100, хотя арифметическая сумма процентов не равна нулю.
Вычисление по двум крайним ценам правильно показывает общий результат: 100 × (100 − 100)/100 = 0%. Складывать промежуточные проценты вместо пересчёта по общей начальной базе нельзя. Это упражнение на знаменатель, а не описание реальной серии сделок.
5. Отделите изменение цены от доходности счёта
В нашем ряду ROC(5) равен 20% за заданные пять переходов. Это не годовая доходность и не обещание повторения такого движения. Формула не выполняет автоматический пересчёт на год и не сообщает, сколько заработал человек с частичными входами, плечом или расходами.
Даже при покупке и продаже по выбранным двум ценам денежный результат потребует количества инструмента и расходов. При нескольких пополнениях и разных размерах позиции задача усложняется. Различать цену инструмента и результат портфеля помогает материал о доходности инвестиционного портфеля.
Положительный ROC описывает прошлое сравнение. Для решения о следующем действии отдельно нужны условия по цене и риск. Не заменяйте их правилом «раз выросло на 20%, значит продолжит». Наблюдение и действие можно разнести по разным полям торгового плана.
6. Выполните контрольную сверку по карточке
Самостоятельно найдите ROC(5) и ROC(1) для последней строки, не подглядывая в результаты. В записи должны быть N, период графика, две даты, две цены, разность и знаменатель. Контрольные ответы: 20% и 9,0909…%. Затем объясните, почему они различаются, хотя текущая цена одна.
Для проверки терминала добавьте источник котировок, тип свечей и способ подготовки истории. Сверяйте одинаковые даты и одинаковые исходные ряды; особенно внимательно относитесь к изменению масштаба цен после корпоративных событий и к сравнению подготовленных и неподготовленных данных. Если базового наблюдения нет, сначала восстановите данные — случайная соседняя дата не считается заменой.
В действующей программе «Трейдер» школы Student Wyckoff можно изучить формат последовательного обучения анализу графика. Эта таблица доступна для самостоятельной практики: результатом задания станет точное объяснение процента с указанной базой и периодом, которое можно повторить по сохранённым числам.