Назад

Разрешение споров по объемам на TV и биржах.

Часть 1

Статья по разрешению всех споров по поводу объемов на разных сервисах и биржах. Очень объемная, разжовываю всё. Кому лень читать всё, можете прочитать только заголовки. И посмотреть пример и картинки.

Предыстория, кто не в курсе:

В наших чатах куча споров насчет объемов по графикам бирж и сервиса TradingView (TV), их расхождений. Я решил проверить что там не так и откуда растут эти сорняки (расхождения).

Есть основные теории происходящего:

  1. Сервис TradingView привирает зачем-то данные.
  2. Неправильно считаются объемы на сервисе.
  3. Объемы считаются в разных величинах
  4. Calsic is a real bicoin =)

Если с четвертым пунктом теорий всё ясно и прозрачно, то, отбросив шутки рассмотрим три первых.

  1. Приврать данные на сервисе - как (довольно ресурсозатратно) и зачем? Сервис потеряет аудиторию, уважение, а это ему не нужно. Моё мнение - наврядли.
  2. Я сам разработчик, поэтому это оценить не сложно. Тут шансы ошибки программистов достаточно реальны. Но, уважающий себя сервис, сами разработчики, при неодноразовых жалобах проверили бы данную ошибку, на сколько я могу представить это исправление займет у них реально не больше дня работы одного програамиста (на самом деле минут 15).
  3. Вот та теория, к которой я склоняюсь больше всего, единицы измерения объемов разные. и вижу в ней реальную проблему происходящего. Пожалуй попробую теперь доказать это на примере.

Тиковые объемы - не про нас. Факт. Точка.

Во первых, сразу скажу по поводу мнения про "тиковые" объемы. Мы не работаем с ними, мы работаем с объемами продаж, а не их количества. 100% факт. Кто не верит, пишите в личку, доказать проще простого, просто занимает время. Может быть сделаю позже и добавлю в эту статью. Не оперируем этим термином.

Проблема = разные единицы измерения.

Начну с того, что объясню что имеется ввиду на простом примере. Торгуется пара BTCUSD (биткойн к доллару). На бирже показывается объем на свече в долларах (например за день люди купили битков на 1 миллион - это объем 1М), на TV объемы показываются в биткойнах (за 1М долларов купили за день 100 биткойнов - это объем 100 или 0,1К).

Гистограммы по разным единицам измерения не всегда идентичны.

Теперь посмотрим как во времени эти объемы на графике на самом деле могут различаться, т.к. у кого-то бытует мнение, что если влитый объем в долларах на графике показыватеся так же как влитый объем в монете (то есть столбики одинаковых пропорций).

Снова очень упрощенный пример, который я приводил в чате. Возьмем любую монетку с низкой ценой. Цена допустим 0,5$. Тут в рынок за день вошёл объем в размере 1M $. На графике объема будет за день 1М. К примеру стакан продавцов был атакован и цена стала 1$ в конце дня, а покупка была в среднем за 0,75$, следовательно объем вошедший в монетках = 1,3М. На следующий день войдет объем 1М $. Цена уже 1$, бьем по стакану и она прыгает на 2$, допустим средняя снова ровная 1,5$ за монетку Объем в монетах будет 0,66М. По аналогии следующий день до 3$ и объем будет 0,4М.

Теперь постройте две гистограммы: где три столбика по 1М (это ровная линия, одинаковые столбики), и где столбики 1,3 - 0,6 - 0,4. Очевидно, коллосально. Вопрос, думаю, закрыт.

Разбиваем оставшиеся мифы об РЕАЛЬНЫЙ ПРИМЕР

Поехали! Доказательство на реальном примере: Берем TV. Берем Bittrex (именно там замечены различия в объемах). Берем пару ADAUSD. На текущий момент цена её примерно 0,33$. Берем любую дату, беру вчерашнюю (26.02.18). Смотрим объемы.

Я не беру пару с биткойном, потому что не так явно видно доказательство, т.к. его цена "круглая", около $10к. И числа в доказательстве будут различаться только в количестве нулей.

Факт по Bittrex: Объем 1.89M

Факт по TV: Объем 5.906M

На Bittrex показ объемов указан в долларах, это указано даже справа от графика (правда за сутки, но соответствие видно).

На TV тогда предположим, что указан объем в монете (ADA). Переведем этот объем в доллар. Цена колебалась от 0,303 до 0,332. Возьмем среднее значение 0,317. Умножим количество монет (5,906М) на их цену, чтобы получить сумму в долларах. Получаем объем в долларах на TV: ~1,872. Уже крайне близкое значение к реальности. Но нужно учитывать, что на интервале цен покупки были распределены не равномерно, поэтому в любом случае будут погрешности при такой ОЧЕНЬ упрощенном расчете.

Кстати, от обратного, если разделить объем в долларах на биттрексе на объем в монетках на TV, примерно получится средняя цена (0,32)

Возникает вопрос: почему TV так делает? (Технический раздел)

Я думаю тут они нашли какой-то консенсус. Скорее всего по наличию данных в API бирж (которые делают сами биржи). Не изучал очень глубоко саму разработку Bittrex, но вы можете сами зайти на страничку: https://bittrex.com/api/v1.1/public/getmarketsummary?market=USDT-ADA

Тут получаете такой ответ от биржи (привожу в читабельный вид вручную):

{

"success":true,

"message":"",

"result":

[{

"MarketName":"USDT-ADA",

"High":0.33493593,

"Low":0.30990000,

"Volume":5518814.57489764,

"Last":0.33000000,

"BaseVolume":1795709.06826861,

"TimeStamp":"2018-02-27T11:17:39.473",

"Bid":0.32650018,

"Ask":0.32999998,

"OpenBuyOrders":1010,

"OpenSellOrders":3108,

"PrevDay":0.31103280,

"Created":"2017-12-29T19:24:39.987"

}]

}

Всегда разделив BaseVolume на Volume вы получите среднюю цену покупки монетки. (0,325....).

Что же побуждает TV считать так объемы? Скорее всего это консенсус между всеми биржевыми API, потому что бирж на TV много (склейку из скрина всех бирж на TV торгующих BTC я сделал в картинке). Сложно узнать истинные причины. Вообще можно залезть ещё глубже! Изучить API всех бирж и посмотреть какие данные приходят оттуда (как я сделал с bittrex). И может быть и всем станет понятнее, что у них другого выхода не было, так как большинство бирж возможно присылают объемы в монетках.

Выход есть! (но это не точно...)

Сервис TV обладает мощным функционалом. графики, рисунки, индикаторы. Любой график можно сделал самому в редакторе Pine-скриптов. На скрине TV видно снизу красную гистограмму "Мой объем", которую у меня получилось сделать при помощи нахождения среднего между close/open или high/low и принимая это значение за "среднюю цену покупки". Умножение с объемами в монете дает нам нужный объем но с погрешностью. Точные объемы в главной валюте я пока не нашел как сделать, но при наличии времени изучу данный вопрос.

Скрипт нахождения объемов в главной валюте в TV (с погрешностью)

study(title="Мой объем")

myVol = volume * (close + open) / 2

plot(myVol, color = red, style=columns, title="Volume", transp=80)

или

study(title="Мой объем")

myVol = volume * (high + low) / 2

plot(myVol, color = red, style=columns, title="Volume", transp=80)

ИТОГИ.

Это не пост в защиту TradingView, это разбор темы долгого спора. Теперь эта проблема ясна и понятна.

Не стоит смотреть на объемы указанные в TradingView, потому что они не отображают объемы зашедших денег (главной валюты) в монетку, а отображает само количество купленных монеток.

Только авторизованные пользователи могут оставлять новые комментарии

Популярные блоги по теме