529 / 736OHLCV

OHLCV

Открытие, максимум, минимум, закрытие и объём заданного интервала

Яна открывает график биткоина и вместо длинного списка сделок видит свечи. Каждая сжимает некоторый период до нескольких данных: с какой цены он начался, как высоко и низко она доходила, где закончилась и сколько было проторговано. Этот итог называется OHLCV. Он помогает быстро понять прошлое, но не сохраняет весь ход торгов.

OHLCV означает Open, High, Low, Close и Volume: первую цену сделки, наибольшую, наименьшую, последнюю и объём торгов за интервал. Данные относятся к конкретному рынку и периоду. Они описывают состоявшиеся сделки, а не предложения, по которым можно купить прямо сейчас.

Яна сначала выбирает биржу, торговую пару и интервал. Пара показывает, что обменивают на что, например биткоин на доллары. Kraken определяет Open как цену первой сделки, а Close — последней внутри интервала. High и Low — достигнутые максимальная и минимальная цены. Так Яна видит диапазон и изменение от начала к концу, не читая каждую сделку. Ни одна из этих цен не является автоматически средней или текущим предложением в книге ордеров. [1]

Помимо движения цены, Яна хочет знать, сколько действительно проторговали. Kraken указывает Volume в базовом активе пары, то есть для BTC/USD в биткоинах. Binance также выделяет объём в котируемом активе, здесь долларах, и отдельно число сделок. Количество биткоинов, их долларовая стоимость и число исполнений — разные показатели. Большое число без единицы не показывает активность рынка; сначала нужно выяснить, что считает источник. [1] [2]

Яна находит в другом месте отличающуюся дневную свечу и подозревает ошибку. Прежде чем делать вывод, нужно сравнить временные границы. Binance позволяет задавать интервалы параметром часового пояса timeZone, но startTime и endTime для выбора данных по-прежнему трактует в UTC, общей мировой системе отсчёта времени. Сутки с другим началом могут включать другие сделки. Слова дневной недостаточно: должны совпадать рынок, период и смысл временной метки. [2]

На живом графике самая новая свеча способна меняться на глазах. Интерфейс REST Kraken, через который программа запрашивает данные, всегда включает текущий незавершённый интервал. Его Close пока означает последнюю известную сделку, а не окончательное закрытие; объём тоже может расти. Сравнивая завершённые периоды, Яна должна отличать эту формирующуюся свечу. Иначе она сопоставляет законченную историю с ещё складывающимся показателем. [3]

Иногда интервал отсутствует. Coinbase предупреждает о возможной неполноте истории и не публикует свечи для периодов без торговых событий. Яна не может считать пустое место падением цены до нуля. Сначала нужно выяснить, не было ли сделок или не хватает данных. Перенос предыдущей цены тоже не создаёт новой сделки; если график так заполняет пробел, это преобразование должно быть различимо. [4]

При программировании графика возникает ещё одна ловушка: OHLCV не гарантирует порядок полей ответа. Coinbase перечисляет время, Low, High, Open, Close и Volume. Kraken отдельно выделяет число сделок и VWAP — среднюю цену, взвешенную по проторгованному количеству. Программа должна читать поля по документации именно этого интерфейса. Перестановка значений не обязательно заметно ломает график: может получиться убедительная кривая с неверным смыслом. [4] [1]

Из определений Kraken можно вывести правильный способ объединения интервалов. Если у Яны есть полные последовательные неперекрывающиеся отрезки одного рынка, она берёт первый Open и последний Close. Для High выбирает наибольший максимум, для Low — наименьший минимум, а сопоставимый Volume складывает. Усреднение цен открытия дало бы другое. Сначала надо проверить хронологию, дубликаты и пробелы: сумма не восстановит недостающие сделки. [1]

Итоговые поля Coinbase не сохраняют всю последовательность сделок или ожидающие заявки в книге. Свеча может показать высокие и низкие цены, но не скажет, какие были раньше. Когда Яна проверяет гипотетический ордер на истории, сами High и Low не доказывают порядок касания ценовых границ или фактическое исполнение. OHLCV — полезный обзор прошлого, но не замена подробным записям или подтверждению собственного ордера. [4]

Пример · OHLCV

Как Яна сводит сделки в итог

В вымышленном закрытом интервале последовательно торгуют 0.01 BTC по 100000 USD/BTC, 0.02 BTC по 100020 USD/BTC, 0.01 BTC по 99980 USD/BTC и наконец 0.03 BTC по 100010 USD/BTC. Яна берёт первую цену как Open 100000, наибольшую как High 100020, наименьшую как Low 99980 и последнюю как Close 100010, все в USD/BTC. Сумма количеств даёт Volume: 0.01 + 0.02 + 0.01 + 0.03 = 0.07 BTC. Строка быстро показывает диапазон и общее количество, но уже не говорит, что максимум был раньше минимума. Это не живые цены и не гарантия исполнения ордера Яны по ним.

Для полной картины прочитайте эту статью вместе с Candlestick chart, Timeframe, Technical analysis, Order book, Backtesting, Volume weighted average price. На эту статью также ссылаются Technical analysis, Timeframe, Candlestick chart, Simple moving average.

01Должен ли следующий Open совпадать с предыдущим Close?

Нет. Следующий Open — первая реальная сделка нового интервала, а не обязательная копия старой цены. Сделки могут происходить по другой цене, после паузы в торгах или с пробелом данных между ними.

02Можно ли восстановить все сделки из OHLCV?

Нет. Разные последовательности могут дать одинаковые крайние цены, открытие, закрытие и объём. Для порядка событий нужны более подробные записи, а для оценки своего ордера — также доступные предложения и правила исполнения.

DOC · 001Kraken — WebSocket OHLCДокументация DOC · 002Binance — Spot Market DataДокументация DOC · 003Kraken — REST OHLCДокументация DOC · 004Coinbase — Product CandlesДокументация
Обновлено: Сначала источники · Не является инвестиционной рекомендацией