- Как создать криптовалютный дашборд с помощью Plotly и API Binance
- Как установить API Binance
- Настраиваем реальный API Binance
- Настраиваем тестовый API Binance
- Как получить данные с помощью API Binance
- Устанавливаем библиотеку python-binance
- Получаем информацию об аккаунте
- Получаем архивные данные
- Получаем данные в реальном времени
- Как создать дашборд с помощью Plotly
- OAuth 2.0 APIs for Binance APIs
- API 1. Get user info
- API 2. Get user status info
- API 3. Get user charge address
- API 4. Get user asset balance
- Step 5. Get support convert coin list
- Step 6. Coin convert quote
- Step 7. Coin convert confirm
- Step 8. Query coin convert history
- Step 9. Revoke access_token
- Подключение к Binance
Как создать криптовалютный дашборд с помощью Plotly и API Binance
Упрощаем отслеживание активов
Как установить API Binance
Binance предоставляет два типа доступа к API: реальный и тестовый.
Настраиваем реальный API Binance
Реальный API обеспечивает прямой доступ к аккаунту. В нем будут отражены любые сделки, совершенные через этот API. Поэтому использовать его следует с осторожностью.
Для начала нужно зарегистрироваться на Binance.
После регистрации вам будет предложено установить двухфакторную аутентификацию (2FA). Вы также можете подключить ее самостоятельно в настройках безопасности.
Затем переходим во вкладку API Management в настройках. Вам будет предложено установить метки для ключей API. Эта функция пригодится тем, у кого есть несколько ключей, связанных с одним аккаунтом.
Указываем метки и нажимаем Create API. После этого нужно пройти аутентификацию еще раз. Затем отобразятся API Key и Secret Key. Скопируйте их в безопасное место. По умолчанию получить доступ к ключам можно следующим способом, который можно изменить:
Мы будем использовать ключи как реального, так и тестового API, чтобы понять, как с ними работать. С целью не засорять реальный аккаунт установим доступ только для чтения для ключей реального API:
Сохранять ключи реального API мы будем в файл secret.cfg , как показано ниже. Не забывайте, что нельзя ни с кем делиться этим файлом.
Настраиваем тестовый API Binance
Тестовый API Binance полностью имитирует взаимодействие с реальным API. Рекомендуем для начала повзаимодействовать с ним, чтобы убедиться в корректности работы приложения.
Для начала необходимо войти в систему: https://testnet.binance.vision/ (на данный момент вход поддерживается только с GitHub).
Затем нажмите на Generate HMAC_SHA256 Key (Сгенерировать ключ HMAC_SHA256) и снова укажите метки для ключей. Отобразившиеся после создания ключи также скопируйте в безопасное место. Все подробности о тестовом API можно прочитать на главной странице.
Теперь добавим ключи тестового API в файл secret.cfg , как показано ниже:
Мы успешно настроили ключи реального и тестового API и сохранили их в файле secret.cfg . Теперь можно переходить к получению данных.
Как получить данные с помощью API Binance
Устанавливаем библиотеку python-binance
Binance не предоставляет библиотеку Python для взаимодействия с API. Поэтому мы воспользуемся популярным сторонним инструментом под названием python-binance .
Устанавливаем python-binance с помощью следующей команды:
Получаем информацию об аккаунте
В этом разделе мы воспользуемся тестовым аккаунтом. По умолчанию в нем будет отображаться баланс различных криптовалют. У python-binance нет доступа к тестовому API, поэтому мы поменяем URL-адрес конечной точки.
Код ниже предоставляет информацию о тестовом аккаунте:
Мы получаем такие важные данные, как тип аккаунта ( accountType ), баланс, разрешение и прочие.
Теперь получим баланс ETH:
Библиотека python-binance предоставляет много возможностей. Подробную информацию о ней можно найти в документации.
Получаем архивные данные
Тестовый API выдает фиктивные архивные данные. Поэтому мы воспользуемся реальным API и его ключами.
Ниже показано, как получить стоимость ETH на Binance с самой ранней даты до текущего дня:
Вывод выше представляет следующие параметры, упомянутые в документации Binance API:
Преобразовываем полученные данные в датафрейм и сохраняем его как файл CSV:
Получаем данные в реальном времени
Чтобы передавать данные в реальном времени, можно воспользоваться WebSocket Binance. Вот как это сделать:
Ниже показано, как остановить потоковую передачу данных и закрыть WebSocket:
Итак, мы научились получать данные несколькими способами. Теперь можно переходить к созданию дашборда Plotly.
Как создать дашборд с помощью Plotly
В этом разделе мы создадим дашборд с помощью Plotly, который будет отслеживать криптовалютный портфель тестового аккаунта в реальном времени и изменять его общую стоимость в зависимости от получаемых данных.
Вот как будет выглядеть финальная версия дашборда. Детали внешнего вида можно изменить позднее:
В дашборд включены следующие функции:
- Индикатор: общая стоимость портфеля в USDT.
- Индикатор: общая стоимость портфеля в BTC.
- Индикатор: конвертация BNB/USDT.
- Круговая диаграмма: распределение портфеля (в USDT).
- Столбчатая диаграмма: распределение токенов.
Теперь рассмотрим код.
- Импортируем все необходимые библиотеки:
2. Прочитываем все ключи, устанавливаем соединение и получаем информацию об аккаунте:
3. Определяем функции, которые будут обрабатывать потоковые данные и рассчитывать показатели на их основе:
4. Начинаем передавать данные в реальном времени:
5. Определяем макет, графики и хостинг:
Вот и все! Этот код позволяет отслеживать криптовалютный портфель тестового аккаунта. Его можно с легкостью настроить и для реального аккаунта без изменения URL-адреса конечной точки.
Весь код можно найти в репозитории на GitHub.
Источник
OAuth 2.0 APIs for Binance APIs
API 1. Get user info
scope must contain user:email
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
access_token | String | YES |
Response:
API 2. Get user status info
scope must contain user:status
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
access_token | String | YES |
Response:
certificateType | Description |
---|---|
1 | Person |
2 | Company |
certificateStatus | Description |
---|---|
0 | kyc not done or in approving |
1 | kyc pass |
2 | kyc reject |
API 3. Get user charge address
scope must contain use:address
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
access_token | String | YES | |
coin | String | YES | e.g. BTC , BNB |
network | String | YES | You can get coin support network from https://www.binance.com/gateway-api/v1/public/capital/getNetworkCoinAll |
Response:
API 4. Get user asset balance
scope must contain asset:balance
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
access_token | String | YES |
Response:
Step 5. Get support convert coin list
scope must contain asset:ocbs
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
access_token | String | YES |
Response:
Step 6. Coin convert quote
scope must contain asset:ocbs
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
access_token | String | YES | |
fromAsset | String | YES | |
toAsset | String | YES | |
baseAsset | String | YES | indicate amount is about fromAsset or toAsset |
amount | String | YES |
Example: If you want convert 10 amount BNB to BTC fromAsset=BNB, toAsset=BTC,baseAsset=BNB,amount=10 If you want convert BNB to 10 amount BTC fromAsset=BNB, toAsset=BTC,baseAsset=BTC,amount=10
Response:
Step 7. Coin convert confirm
scope must contain asset:ocbs
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
access_token | String | YES | |
quoteId | String | YES |
Response:
Step 8. Query coin convert history
scope must contain asset:ocbs
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
access_token | String | YES | |
orderId | String | NO | |
status | String | NO | |
quoteId | String | NO | |
startDate | Date | NO | |
endDate | Date | NO | |
fromAsset | String | NO | |
toAsset | String | NO | |
completedStartTime | Date | NO | |
completedEndTime | Date | NO | |
page | Integer | YES | Min value is 1 |
rows | Integer | YES | Max value is 2000 |
Response:
Step 9. Revoke access_token
scope must contain user:email
Источник
Подключение к Binance
Данная инструкция служит руководством для подключения биржи Binance к платформе ATAS v5. Посмотреть краткое описание и скачать платформу можно по следующей ссылке: https://atas.net/ru/atas-crypto/
Если у Вас ещё нет счёта, то Вы можете зарегистрироваться на бирже по следующей ссылке:
https://www.binance.com/ru/
1. Зайдите в меню главного окна программы — Settings/Настройки, затем в подменю Connection to DataFeed/ Подключение торговли и котировок.
2. Кликните кнопкой мыши на индикатор подключений в главном окне платформы.
Далее откроется окно подключений:
Чтобы добавить новое подключение нажмите кнопку Add/Добавить.
Далее откроется окно со списком доступных счетов и поставщиков котировок:
В данном окне, необходимо выбрать тип подключения Binance и нажать кнопку Next/Далее.
Далее откроется окно для подписания соглашения:
*OCO (one cancels other) ордера для подключения Binance эмулируются локально на вашем компьютере. Это означает, что платформа должна быть подключена к вашему брокеру для правильного функционирования OCO ордеров. Если вы будете отключены и один из OCO ордеров будет исполнен,остальные ордера данной группы НЕ БУДУТ отменены!
Если вас всё устраивает, нажмите I Accept, Please continue/Я принимаю, пожалуйста продолжить.
Далее откроется ещё одно окно для подписания соглашения:
Это подключение не поддерживает размещение на сервере биржи Стоп и Стоп-лимит ордеров. Эти типы ордеров локально эмулируются на компьютере. Это значит что для исполнения этих ордеров платформа должна быть постоянно включена и соединена с биржей. Если Вы отключите её — ордера НЕ БУДУТ исполнены.
Если вас всё устраивает, нажмите I Accept, Please continue/Я принимаю, пожалуйста продолжить.
1) В окне подключения введите ключи, сгенерированные Вами в личном кабинете на сайте Binance.
2) Нажмите на кнопку Next/Далее.
*После настройки подключения, оно появится отдельной строчкой в списке подключений:
1. Type/Тип — Источник подключения.
2. State/Статус подключения. После добавления нового подключения, его статус по умолчанию Disconnected/Отключен. Для подключения необходимо нажать кнопку Connect/Подключить.
3. Quotes Source/Поставщик котировок — Опция выбора поставщика котировок.
4. Если нужно чтобы подключение происходило автоматически при запуске платформы, необходимо включить опцию Connect on startup/Автоподключение.
Источник