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

Крипто-агрегатор, или моя альтернатива сайту 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 – котируемой.

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

Средневзвешенная по объему цена рыночной пары (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, мы можем написать:

Вам будет интересно  Как купить Bitcoin через Сбербанк с рублевой и долларовой карты

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 для любой криптовалюты.

Схема работы EXMO API и как с ним работать.

Новости EXMO

Схема работы EXMO API и как с ним работать

Схема работы EXMO API

Что представляет собой API и как он работает?

API (application programming interface, программный интерфейс приложения) – это программный механизм, предоставляющий возможность получать из какой-либо программной среды информацию, а также обмениваться данными в реальном времени. В ряде случаев с помощью API возможна также подача программной среде команд, например, можно послать команду на перевод денег и установить у этой команды необходимые параметры. API размещен на некоем базовом сайте, однако способен отвечать и на запросы от сторонних ресурсов, если эти запросы будут правильно построены и отправлены на верный адрес, а также будут обладать необходимыми ключами для доступа к API (в случае, если API требует ключей).

API на базовом сайте имеет доступ к значительной номенклатуре текущей информации, например, на бирже это цены активов, объемы активов на продаже и объемы уже проданных. Кроме того, используя API, можно совершать какие-либо автоматические действия; например, с помощью API ваша программа может при заданных вами условиях резервировать или заказывать нужный товар в определенном количестве.
Как уже говорилось, программа, обученная взаимодействию с API базового сайта, должна просто послать корректный запрос на корректный адрес; при получении интерфейсом API команды, которую он “обучен” выполнять, интерфейс в соответствии с командой собирает и компонует заданным образом необходимую заказчику информацию, которую затем отправляет ему в готовом виде. Все это происходит достаточно быстро, и даже единичный бот-пользователь, возможно, будет посылать по несколько разных или однотипных запросов каждую секунду и очень оперативно обновлять информацию согласно полученным данным. Для заказчика это может быть много выгоднее, чем самостоятельно парсить на базовом сайте нужную информацию.

Вам будет интересно  Обменять Qiwi RUB на Bitcoin (BTC)

Схема работы EXMO PUBLIC API

Использование API с другого сайта дает пользователю ряд преимуществ, если этот сайт предоставляет действительно функциональный и исправно работающий API:

1) Вы экономите ресурсы своего сайта и повышаете скорость сбора нужной информации.

2) Вы можете полностью отказаться от такого не слишком надежного инструмента, как HTML парсер.

3) Многие сайты негативно настроены по отношению к парсингу, производимому специальными программами; они хотели бы, чтобы их посещали только живые люди, что, конечно, означает большую отдачу от увеличения загрузки сайта. В результате ваша программа для парсинга, когда ее распознают как программу, может вовсе не получить нужных данных, и может даже случиться, что ей отдадут заведомо неверные данные, например, курс доллара, завышенный в 1.5 раза относительно реально указанного на базовом ресурсе. В то же время, если сайт предоставляет API, это явно указывает на то, что он будет спокойно относиться к сбору информации роботами, если этот сбор будет вестись через API.

4) При обновлении сайта обычно стараются не менять никаких программных элементов, модификация которых может нарушить взаимодействие со сторонними сервисами, налаженное через API.

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

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

EXMO API и его возможности

Теперь рассмотрим несколько подробнее некоторые возможности применения API, предоставляемого криптовалютной биржей EXMO.
В случае с криптовалютным обменником, можно, например, использовать API, чтобы получить данные о состоянии “стаканов” на заданной паре. Это позволит отображать текущие курсы биржи EXMO на нужной странице обменника. Возможно также и получение информации о том, сколько будет стоить покупка определенного количества криптовалюты по заданному направлению обмена (вы получите значения средней цены и итоговой суммы, которую нужно будет потратить).

EXMO API также может позволить обменнику криптовалюты, покупающему или продающему EX-CODE, автоматически создавать EX-CODE на сумму, заданную покупателем кода, или автоматически загружать код, проданный клиентом (через API в последнем случае можно получить и сумму купона, и новое значение баланса того пользователя биржи, который является представителем обменника).
Таким образом, после того, как клиент оплатил заявку на покупку кода, с помощью запроса по API код будет почти мгновенно создан и передан на сайт-обменник, который сделает код видимым для клиента. И наоборот, если клиент, желающий продать в вашем обменнике свой код, скопировал его в нужное поле формы обмена и запустил процесс обмена, то через автоматический запрос по API можно загрузить EX-CODE в ваш аккаунт на бирже EXMO, после чего баланс вашего аккаунта сразу пополнится на сумму, которая была указана при его создании (система выдаст сообщение об ошибке, если клиент попытается продать неверный или уже использованный код). Помимо пополнения баланса, следствием API запроса на загрузку EX-CODE станет то, что API вернет служебную информацию о загруженном коде – в частности, можно будет узнать сумму и валюту кода. В некоторых криптовалютных обменниках, например в https://arbitrcoin.com/ клиент указывает сумму, зашифрованную в EX-CODE, для того, чтобы увидеть расчет комиссии обменника. После нажатия кнопки “Обменять”, происходит процесс обмена.

Вам будет интересно  Как купить Биткоин через Яндекс Деньги: пошаговая инструкция

В итоге, обработка заказа и оплата его (иначе говоря, обмен как таковой) займет не более 1-3 минут, а часто и меньше минуты. Как правило, обмен кода, предоставленного вашим клиентом, на фиатные деньги можно произвести в считанные секунды; если сгенерировать код через API должен обменник, генерация кода и в этом случае пройдет достаточно быстро.

Схема работы EX-CODE API

Таким образом, создание и загрузка кодов с помощью API позволяют автоматизировать работу с ними на EXMO, предоставив совершение нужных действий доверенной программе. Через API можно также автоматически получать ряд других данных, например, идентификатор транзакции, который позволит отследить движение криптовалюты через любой обозреватель соответствующего блокчейна.
Помимо этого, на EXMO можно использовать WALLET API, для получения информации об уже произведенных пополнениях вашего баланса и выведенных с него средствах. Наличие возможности автоматизации платежей, вдобавок к общему удобству и высокой безопасности, делает ваш криптовалютный счет на EXMO отличной альтернативой обычному биткоин-кошельку.

Схема работы EXMO WALLET API

Преимущества работы с EXMO API для обменников

Использование EXMO API для торговли EX-CODE даст любому интернет-обменнику ряд преимуществ.

1) Прежде всего, купля-продажа такого востребованного актива, как EX-CODE, существенно увеличит торговые обороты обменника, а значит, возрастет его прибыль. Торговую площадку EXMO ежедневно посещают около 20 000 активных пользователей, многие из которых ищут выгодные и удобные варианты обмена EX-CODE.

2) Обмен EX-CODE с помощью EXMO API полностью автоматизирован. Не затрачивая технических ресурсов вашего обменника, благодаря работе EXMO API вы сможете обслуживать заказы по обмену EX-CODE с высокой скоростью: максимальное число API запросов от одного пользователя или одного IP адреса может достигать 180 вызовов в минуту.

3) EX-CODE как создаются, так и переводятся в средства на вашем балансе в EXMO с комиссией 0%. Это значит, что обменник может выставить собственные курсы, и они могут быть выгодными. С помощью EX-CODE средства могут передаваться в девяти различных валютах – Bitcoin, Litecoin, Dogecoin, DASH, Ethereum, RUB, USD, EUR и UAH. Это позволит вам охватить более широкий круг потенциальных клиентов и максимально подстроиться под запросы посетителей из самых разных стран.

4) Использование отлаженного и защищенного механизма EXMO API для торговли EX-CODE обеспечивает высокий уровень безопасности ваших торговых операций. Кроме того, вы не пострадаете от действий недобросовестных клиентов – если один из них попытается продать вам недействительный EX-CODE, вы сразу об этом узнаете.

5) Для начала работы с EXMO вашему обменнику нужно пройти регистрацию на этой торговой платформе, подключиться к EX-CODE API (при необходимости вы можете воспользоваться мануалом), установить комиссии и провести интеграцию на вашем сайте.

6) Помимо торговли кодами, вы также можете поднять посещаемость своего сайта за счет автоматического показа актуальных курсов криптовалют на бирже EXMO. Для этого вам нужно использовать PUBLIC API; заметьте, что этот API можно использовать даже без авторизации.

7) Для автоматической торговли на площадке EXMO вы можете использовать TRADE API, это позволит вам покупать валюты, доступные на EXMO, по наилучшему курсу.

Схема работы EXMO TRADE API

8) Для автоматизации вывода средств с EXMO, например, на криптовалютный кошелек, вам пригодится WALLET API. Этот API позволяет определять параметры вывода средств с вашего баланса на данной торговой платформе.

Заключение

Благодаря этому материалу, можно выбрать подходящий способ автоматизации работы с криптовалютной биржей EXMO. Автоматизация поможет вам повысить скорость работы либо предоставить дополнительные услуги вашим клиентам.

Спасибо, что остаетесь с нами!
С уважением, команда EXMO

https://cryptor.net/tutorial/kripto-agregator-ili-moya-alternativa-saytu-coinmarketcap
https://exmo.me/ru/news_view?id=1444

Яндекс.Метрика