Сергей Фролов
Сергей Фролов личный блог
22 мая 2017, 13:12

Объемные ящики с усами или новый индикатор объемов.

Объемные ящики с усами или новый индикатор объемов.

В статье описывается концепция нового (наверное), но до безумия простого индикатора объемов, а точнее их визуального представления, — через boxplot-ы; описываются сильные и слабые стороны и принципы применения индикатора.

Со времен появления ИТС разработчики, ученые, да и простые пользователи изобрели множество индикаторов объемов: от PVT до OBV и прочих. Сегодня разнообразные платформы включают эти индикаторы в свой инструментарий, однако о многих можно наверняка сказать, что они абсолютно бесполезны как для алгоритмиста, так и для обычного трейдера. Насколько мне известно, чаще всего используют обычные объемы (вертикальные или горизонтальные) и Big Trades, из которых реально можно вычленить хоть какую-то полезную информацию внутри дня. Удивительно, но до сих пор я еще нигде не встречал представление объемов в виде графика boxplot (ящик с усами).

Суть boxplot-а проста: он показывает распределение выборки, все его элементы можно увидеть на картинке ниже. В целом, выборка делится медианой на две равные части (половина значений под ней и половина над). Далее делим выборку на квантили. Усы, штрихованные линии, показывают 25 % самых больших и самых малых значений в рамках распределения. Девиантные значения выбрасываются за пределы усов. Останавливаться на описании квантилей не буду, оно есть, например, тут: http://www.machinelearning.ru/wiki/index.php?title=%D0%9A%D0%B2%D0%B0%D0%BD%D1%82%D0%B8%D0%BB%D1%8C
Объемные ящики с усами или новый индикатор объемов.

Как же можно использовать такой график применительно к объемам? Мы просто создаем массив, состоящий из тиковых объемов, сумма которых равна объему за минуту. Получаем, соответственно распределение тиковых объемов за минуту. Теперь вопрос: как читать и интерпретировать получившиеся boxplot-ы?

 

Так называемый «выброс», — это Big Trade, он показывает крупные объемы, которые в момент прошли по рынку. Возможно, я неправильно интерпретирую суть изначального индикатора, но смысл Big Trade-ов заключается в выявлении больших консолидированных объемов, которые как раз и показывают выбросы. Как использовать выбросы уже персональное дело каждого.

 

Есть теоретические идеи по поводу использования индикатора:

 

  1. Можно отследить где вынесло толпу, если добавить график ОИ. На падении открытого интереса при появлении выбросов или увеличении медианного значения скорее всего сняли стопы. Как правило при такой ситуации появляются большие заявки по рынку, однако их не так много, в следствии чего предполагается, что медиана должна сдвинуться вверх.
  2. Постепенный сдвиг медианы вниз и уменьшение интерквартильного размаха свидетельствует о начале флэта. Если медиана двигается вниз, то становиться больше маленьких заявок, а если это сопровождается сужением интерквартильного размаха, то, соответственно, теряют вес крупные объемы.
  3. После продолжительного направленного движения с большим интерквартильным размахом его резкое уменьшение может свидетельствовать о развороте или начале проторговки.
  4. Фигуры вроде двойных вершин и всего, что торгуют многие трейдеры, должны быть видны опять таки по выбросам и размеру boxplota.

Объемные ящики с усами или новый индикатор объемов.

Применений и интерпретаций данного индикатора можно найти массу. С технической точки зрения у индикатора есть лишь один параметр, — какие объемы не включать в выборку. Тут действует принцип: чем больше фильтр объема, тем меньше выбросов. Например, на первой картинке я не включаю в выборку объемы, равные 1, на картинке ниже я отфильтровал объемы меньше 10. Разница налицо.

Объемные ящики с усами или новый индикатор объемов.

Если же мы не будем задавать параметр фильтрации объемов, то интерквартильный размах почти исчезнет и мы не сможем ничего разобрать внутри него. Это происходит потому что объемы в 1 контракт занимают ~ 75 % всех объемов за минуту, а то и больше. По прикидкам, если брать в выборку объемы больше 10 контрактов (по SI), то получается вполне адекватное отображение.
Объемные ящики с усами или новый индикатор объемов.

Теперь перейдем к плюсам и минусам данного изобретения.

Минусы:

  1. Есть идеи как обрабатывать объем и рисовать боксплоты, но как реализовать это для распространенных ИТС пока вопрос (R без труда конектится с C#, но обрабатывает данные он очень медленно)

Плюсы:

  1. График собирает в себе множество индикаторов объемов и из него видно почти все, что можно анализировать в объемах. Можно наложить на этот график простые объемы и можно будет полноценно оценивать ситуацию с объемом.
  2. На графике отображается не средняя по объему, а средний объем заявки. Такая метрика дает нам более полное представление о смене фаз рынка.

Итак, подведем итоги. Индикатор в теории хорош, но требует некоторого времени для того, чтобы исследовать гипотезы, связанные с ним. В принципе, индикатор консолидирует в себе уже существующие, а некоторые модифицирует и дает шанс взглянуть на объем под принципиально другим углом. Было бы круто в перспективе увидеть что-то подобное в Tiger Trade, например.

 Если есть вопросы, то меня всегда можно найти в онлайн диллинге Instrate team. Получить приглашение и узнать о проекте подробнее тут: https://vk.com/instrate_team

 

11 Комментариев
  • Подскажите, а чем пользуетесь, что R медленно обрабатывает данные? Можете привести пример кода? data.table плюс встроенные векторизованные операции работают крайне быстро. На худой конец Rcpp Вам в помощь.
      • Сергей Фролов, для невекторизируемых операций как раз нужен будет Rcpp. Все встроенные операции, проводимые над векторами или матрицами, работают крайне быстро. Далее, для целей организации циклов проще использовать foreach или *apply циклы — они работают куда быстрее классического for в R. Вместо dplyr лучше использовать data.table — скорость работы последнего выше, на r-bloggers можно найти пруфы. Ну, и ещё много интересностей есть в R. Рекомендую поискать на английском ресурсы по трюкам эффективного программирования на R. А написать неэффективный код можно на любом языке — на С++ или C# тоже можно написать код, который выдаст неслабую задержку при подключении какого-либо модуля к терминалу.)))

          • Сергей Фролов, достаточно такого запроса: https://www.google.ru/#newwindow=1&q=r+programming+tips+and+tricks  
            В целом, есть на r-bloggers'ах разделы, посвящённые тем или иным особенностям языка или решению тех или иных задач. На хабре тоже бывает интересная инфа, вот соответствующий хаб - https://habrahabr.ru/hub/r/
            Сюда тоже рекомендую заглянуть - http://adv-r.had.co.nz/
            В принципе, конкретную прикладную задачу можно сначала на хабах поискать (те или иные реализации, указание на бутылочные горлышки и т.п.), потом уже пытаться делать самому. Очень, очень много материала сейчас по R в сети, позволяющего не изобретать велосипед, а писать достаточно эффективный код.
              • Сергей Фролов, да не за что.))) Обращайтесь.)))
              • БорисыЧ
                22 мая 2017, 20:10
                Сергей Фролов, а разделять крупных участников и мелких не полезнее? Полистайте мои записи или блог - http://trendphil.blogspot.ru/
                  • БорисыЧ
                    22 мая 2017, 21:00
                    Сергей Фролов, спасибо, но это не то! Успеха!
  • fermion
    27 мая 2017, 11:04
    +++

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн