Вы здесь

Крипто-агрегатор, или моя альтернатива сайту CoinMarketCap

В этой статье я дам открытый исходный код для расчета средневзвешенной по объему рыночной цены пары (VWAMPP) для всех криптовалют. Код непрерывно получает цены со всех бирж и вычисляет среднюю, при этом цена с каждой биржи взвешивается по ее объему. Это альтернатива с открытым исходным кодом таким веб-сайтам, как coinmarketcap. Вы можете скачать код из NpmJS.

Крипто-агрегатор, или моя альтернатива сайту CoinMarketCap

Давайте начнем с простого вопроса:

Какова истинная цена биткоина или любой другой криптовалюты?

Ответ:

Это зависит от того, у кого вы спрашиваете: биткоин в настоящее время торгуется на сотнях бирж по всему миру. Каждая биржа сообщает разную цену. По факту люди зарабатывают деньги на этой разнице цен – процесс, называемый арбитражем.

Так какая же из всех этих цен является истинной ценой биткоина? Давайте возьмем простой пример:

Предположим, что есть только две биржи, которые сообщают цену BTC в долларах США:

  • Биржа 1 называет цену $10,000
  • Биржа 2 называет цену $12,000

Какая из них является истинной ценой?

Как вариант, можно вывести среднее значение двух цен, то есть $11,000. Проблема этого подхода заключается в том, что на бирже 1 может быть всего несколько сделок, а на бирже 2 – миллионы сделок. Поэтому лучше всего ориентироваться на биржу, которая имеет больше сделок (или больше трафика).

Количество криптовалюты, торгуемой на бирже, называется объемом.

Нам интереснее биржа с бОльшим объемом.

Итак, предположим:

  • Биржа 1 сообщает о цене в $ 10,000 с ежедневным объемом $1 млдр.
  • Биржа 2 сообщает о цене в $12,000 с ежедневным объемом $ 99 млрд.

Теперь средневзвешенная по объему цена в долларах США будет равна:

1_47qjsLnH_rewReF61odvNA.png

Средневзвешенная по объему цена

Средневзвешенная по объему цена рыночной пары

1_QfzNMDOpXIvMzaVw4BNV2g.jpeg

Картинка взята с BitcoinCrazYness.com

Биржи обычно сообщают цену рыночной пары, например: BTC/USD = 10,000 – это означает, что каждый BTC стоит 10,000 долларов США.

Валюта, которая используется в качестве ориентира, называется котируемой валютой, а валюта, для которой выводится биржевая стоимость, называется базовой валютой. В этом примере BTC является базовой валютой, а USD – котируемой.

Кроме того, биржи сообщают объем для каждой рыночной пары.

Средневзвешенная по объему цена рыночной пары (VWAMPP) – это среднее значение цен рыночной пары со всех бирж, где каждая цена рыночной пары взвешивается по ее объему.

CoinMarketCap.com и еще ... coinGecko.com являются одними из ведущих веб-сайтов, сообщающих средневзвешенную по объему цену для каждой монеты, которая высчитывается на сотнях бирж.

Все немного сложнее

1_alLBtbTQgG4GJzLp02V17g.jpeg

Картинка взята с BitcoinCrazYness.com

VWAMPP – это отличный подход к расчету справедливой цены для каждой криптовалюты, но проблема заключается в том, что не каждая биржа сообщает цену криптовалюты непосредственно в долларах США (USD).

Валютные пары с иностранными фиатными валютами

1_noQZlt8RqJHFlLFe1Q03Ow.jpeg

Картинка взята с unsplash.com/imgdesc>

Предположим, что в нашем примере две биржи сообщают следующее:

  • Биржа 1: BTC/USD= 10,000. Ежедневный объем = 3 млрд.
  • Биржа 2: BTC/EUR= 8,000. Ежедневный объем = 1 млрд.

Какова цена VWAMPP?

Поскольку первая пара дана в USD, а вторая – в EUR, мы должны сперва перевести цену и объем Биржи 2 из EUR в USD, прежде чем рассчитывать среднюю по объему цену.

Предположим, что EUR/USD составляет 1.2, т. е. каждый EUR составляет 1.2 USD. Тогда мы можем написать:

  • Биржа 1: BTC/USD= 10,000. Ежедневный объем = 3 млрд.
  • Биржа 2: BTC/EUR= 8,000*1.2. Ежедневный объем = 1*1.2 млрд.
1_gdFFYBab7zkFtulnXN3SQg.png

Таким образом, VWAMPP для BTC составляет $9,886.71.

Валютные пары с другими криптовалютами

1_zRGlo6fEPkr0Z7rvw684sQ.jpeg

Картинка взята с BitcoinCrazYness.com

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

Предположим, что наши воображаемые биржи сообщают следующее:

  • Биржа 1: BTC/USD= 10,000. Ежедневный объем = 3 млрд.
  • Биржа 2: ETH/BTC= 0.02. Ежедневный объем = 5 млн.

Какова VWAMPP в USD?

Нам нужно выяснить две вещи:

1. BTC/USD на Бирже 2

Биржа 2 только сообщает, что цена ETH равна 0,02 BTC. Но то, что нам нужно, это цена BTC в долларах США на Бирже 2.

Чтобы получить BTC/USD, мы можем написать:

1_aSZ07L5V0EJOXwGfZDjcng.png

Это означает, что если бы мы знали ETH/USD, мы могли бы рассчитать BTC/USD следующим образом:

1_as2HlXUdGSZApSqsfFXNow.png

Предполагая, что мы ведем учет всех цен на криптовалюты и в последних расчетах у нас VWAMPP для пары ETH/USD составляет 204, мы можем написать:

1_sqNWl7bdKXwvHBs5NG37vw.png

2. Объем на Бирже 2

Поскольку Биржа 2 дает сведения для пары ETH/BTC, сообщаемая единица объема в 1 млрд дается в ETH. Для того, чтобы рассчитать объем в долларах США, мы снова должны использовать последнюю цену VWAMPP для ETH/USD наших последних расчетов. Если принять это значение равным 204, то объем на Бирже 2 составит 5 млн. * 204 ≈ 1 млрд.

Теперь мы можем переписать наши исходные данные следующим образом:

  • Биржа 1: BTC/USD= 10,000. Ежедневный объем = 3 млрд.
  • Биржа 2: BTC/USD= 10,200. Ежедневный объем = 1 млрд.

Таким обрзом, новая цена VWAMPP для BTC/USD составляет:

1_uIGDT55CTud2pw8F2RxkCA.png

Резкие отклонения значений

1_b0vO_5fsIThnjrybUUnQyQ.png

Взято из wikipedia.com

По той или иной причине цена криптовалюты на одной бирже может существенно отличаться от цены на других биржах.

Желательно игнорировать такую биржу при расчетах VWAMPP.

Аномальная цена - это

Цена, которая «выходит за рамки» (намного меньше или больше, чем) большинство других цен.

Для этого сначала надо рассчитать среднее значение для всех бирж, а затем исключить цены, которые значительно отклоняются от среднего значения.

Мы можем определить, что «выход за рамки» будет больше, чем 1 - 5 стандартных отклонений от среднего значения.

Зачем вычислять VWAMPP самостоятельно?

Я уже упоминал, что CoinMarketCap.com и coinGecko.com занимаются расчетом цены VWAMPP для всех криптовалют, так с чего вдруг вам вычислять ее самостоятельно?

  • Их API не является и не гарантирован быть бесплатным, особенно для коммерческого использования.
  • Иногда при выборе рыночных пар и того, какие биржи следует учитывать при расчете VWAMPP, в некоторой степени замешана политика.
  • Вы можете настроить и исключить определенные биржи или рыночные пары из своего расчета. Вы также можете делать более быстрые расчеты VWAMPP.

Как следует выполнять расчет?

Для криптовалюты C нам нужно иметь данные всех пар, включающих C (либо в качестве котируемой валюты, либо в качестве базовой), на всех биржах, представляющих интерес в нашей базе данных. Как только мы получим эти данные, мы можем перебрать все эти пары, преобразовать их в C/USD , а затем вычислить по ним VWAMPP.

Как минимум, нам нужны следующие API-интерфейсы:

  • Exchange API для получения всей информации о паре
  • Forex API для конвертации в значения Forex

Для выведения цен на криптовалюты я использовал ccxt, который проделал большую работу по объединению всех API с разных бирж.

Для цен на Форекс я использовал бесплатный API от openexchangerates.org.

Критика VWAMPP

Существует несколько проблем с VWAMPP, с которыми вы, возможно, захотите ознакомиться перед использованием:

  • Поскольку данные о цене поступают с разных бирж, а сбор информации со всех бирж занимает время, возникает определенная задержка между реальным значением VWAMPP и полученной с задержкой VWAMPP.
  • Объем на биржах может быть неточным. Более того, говорили, что некоторые биржи намеренно искажают реальные объемы.

Применение NodeJS

Вы можете скачать NodeJS для вычисления VWAMPP отсюда. Этот код может быть запущен на простой Linux-совместимой машине и вычислить VWAMPP для любой криптовалюты.

Категория: 
Tutorial
1
Ваша оценка: Нет Средняя: 1 (1 оценка)
1699 / 0
Аватар пользователя Serg Demin
Публикацию добавил: Serg Demin
Дата публикации: ср, 01/22/2020 - 11:08

Что еще почитать:

Добавить комментарий