Api binance что это
Binance API: Русское Описание, Ограничения, Примеры [2021]
Понимание и использование API для торговли криптовалютой может открыть целый мир возможностей, когда дело доходит до входа и выхода из позиций. Обладая некоторыми простыми знаниями в области написания кода, вы можете подключиться к серверной части биржи, чтобы автоматизировать свои торговые стратегии.
Обойдя через API веб-сайт, вы можете гораздо быстрее найти соответствующий движок для высокопроизводительных приложений.
К концу ознакомления с руководством вы должны быть уверены в своей способности запрашивать через API информацию о рынках и вашей позиции и размещать ряд различных типов ордеров.
Требования
Ключи тестовой сети
Мы собираемся использовать тестовую сеть для наших целей. Это даст нам немного средств, не имеющих реальной ценности, с которыми можно поиграть. Они работают точно так же, как настоящие монеты и токены, поэтому, когда вы освоитесь с API, вы можете начать использовать его для торговли реальными средствами.
Скачивание и установка Postman
После этого найдите его в проводнике и установите. Запустите приложение, и все готово! Обратите внимание, что вы можете создать учетную запись для входа в систему, но это не обязательно. Если вы хотите пропустить этот шаг, просто выберите соответствующую опцию внизу окна.
Создание окружающей среды
На этом этапе у вас должен быть интерфейс, похожий на следующий.
Мы хотим сначала создать нашу рабочую среду. Это просто способ добавить переменные к набору запросов, с которыми мы собираемся работать.
Загрузка не займет много времени.
Найдите его в проводнике файлов и распакуйте. Затем мы можем вернуться в Postman.
Оставайтесь на связи.
Добавляйте этот блог в закладки потому, что здесь самая правдивая и экспертная информация!
Антон Састрпцин
Является старшим аналитиком фондового рынка ММВБ. Работает в сфере финансовых услуг с 2014 года.
Как создать криптовалютный дашборд с помощью 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 Binance
Тестовый API Binance полностью имитирует взаимодействие с реальным API. Рекомендуем для начала повзаимодействовать с ним, чтобы убедиться в корректности работы приложения.
Для начала необходимо войти в систему: https://testnet.binance.vision/ (на данный момент вход поддерживается только с GitHub).
Затем нажмите на Generate HMAC_SHA256 Key (Сгенерировать ключ HMAC_SHA256) и снова укажите метки для ключей. Отобразившиеся после создания ключи также скопируйте в безопасное место. Все подробности о тестовом API можно прочитать на главной странице.
Как получить данные с помощью API Binance
Устанавливаем библиотеку 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, который будет отслеживать криптовалютный портфель тестового аккаунта в реальном времени и изменять его общую стоимость в зависимости от получаемых данных.
Вот как будет выглядеть финальная версия дашборда. Детали внешнего вида можно изменить позднее:
В дашборд включены следующие функции:
Теперь рассмотрим код.
2. Прочитываем все ключи, устанавливаем соединение и получаем информацию об аккаунте:
3. Определяем функции, которые будут обрабатывать потоковые данные и рассчитывать показатели на их основе:
4. Начинаем передавать данные в реальном времени:
5. Определяем макет, графики и хостинг:
Вот и все! Этот код позволяет отслеживать криптовалютный портфель тестового аккаунта. Его можно с легкостью настроить и для реального аккаунта без изменения URL-адреса конечной точки.
Весь код можно найти в репозитории на GitHub.
rest-api
Table of Contents generated with DocToc
Public Rest API for Binance (2021-08-12)
General API Information#
HTTP Return Codes#
Error Codes#
Sample Payload below:
General Information on Endpoints#
LIMITS
General Info on Limits#
IP Limits#
Order Rate Limits#
Data Sources
These are the three sources, ordered by which is has the most up-to-date response to the one with potential delays in updates.
Some endpoints can have more than 1 data source. (e.g. Memory => Database) This means that the endpoint will check the first Data Source, and if it cannot find the value it’s looking for it will check the next one.
Endpoint security type
SIGNED (TRADE and USER_DATA) Endpoint security
Timing security#
It is recommended to use a small recvWindow of 5000 or less! The max cannot go beyond 60,000!
SIGNED Endpoint Examples for POST /api/v3/order#
Key | Value |
---|---|
apiKey | vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A |
secretKey | NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j |
Parameter | Value |
---|---|
symbol | LTCBTC |
side | BUY |
type | LIMIT |
timeInForce | GTC |
quantity | 1 |
price | 0.1 |
recvWindow | 5000 |
timestamp | 1499827319559 |
Example 1: As a request body#
requestBody: symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000×tamp=1499827319559
HMAC SHA256 signature:
curl command:
Example 2: As a query string#
queryString: symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000×tamp=1499827319559
HMAC SHA256 signature:
curl command:
Example 3: Mixed query string and request body#
queryString: symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC
requestBody: quantity=1&price=0.1&recvWindow=5000×tamp=1499827319559
HMAC SHA256 signature:
curl command:
Note that the signature is different in example 3. There is no & between «GTC» and «quantity=1».
Public API Endpoints
Terminology#
These terms will be used throughout the documentation, so it is recommended especially for new users to read to help their understanding of the API.
ENUM definitions#
Symbol status (status):
Symbol type:
Order status (status):
Status | Description |
---|---|
NEW | The order has been accepted by the engine. |
PARTIALLY_FILLED | A part of the order has been filled. |
FILLED | The order has been completed. |
CANCELED | The order has been canceled by the user. |
PENDING_CANCEL | Currently unused |
REJECTED | The order was not accepted by the engine and not processed. |
EXPIRED | The order was canceled according to the order type’s rules (e.g. LIMIT FOK orders with no fill, LIMIT IOC or MARKET orders that partially fill) or by the exchange, (e.g. orders canceled during liquidation, orders canceled during maintenance) |
OCO Status (listStatusType):
Status | Description |
---|---|
RESPONSE | This is used when the ListStatus is responding to a failed action. (E.g. Orderlist placement or cancellation) |
EXEC_STARTED | The order list has been placed or there is an update to the order list status. |
ALL_DONE | The order list has finished executing and thus no longer active. |
OCO Order Status (listOrderStatus):
Status | Description |
---|---|
EXECUTING | Either an order list has been placed or there is an update to the status of the list. |
ALL_DONE | An order list has completed execution and thus no longer active. |
REJECT | The List Status is responding to a failed action either during order placement or order canceled |
ContingencyType
Order types (orderTypes, type):
More information on how the order types definitions can be found here: Types of Orders
Order Response Type (newOrderRespType):
Order side (side):
Time in force (timeInForce):
This sets how long an order will be active before expiration.
Status | Description |
---|---|
GTC | Good Til Canceled An order will be on the book unless the order is canceled. |
IOC | Immediate Or Cancel An order will try to fill the order as much as it can before the order expires. |
FOK | Fill or Kill An order will expire if the full order cannot be filled upon execution. |
Kline/Candlestick chart intervals:
Rate limiters (rateLimitType)
Rate limit intervals (interval)
General endpoints#
Test connectivity#
Test connectivity to the Rest API.
Weight: 1
Parameters: NONE
Data Source: Memory
Response:
Check server time#
Test connectivity to the Rest API and get the current server time.
Weight: 1
Parameters: NONE
Data Source: Memory
Response:
Exchange information#
Current exchange trading rules and symbol information
Weight: 10
Parameters:
There are 3 possible options:
If any symbol provided in either symbol or symbols do not exist, the endpoint will throw an error.
Data Source: Memory
Response:
Market Data endpoints#
Order book#
Weight: Adjusted based on the limit:
Limit | Weight |
---|---|
5, 10, 20, 50, 100 | 1 |
500 | 5 |
1000 | 10 |
5000 | 50 |
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | STRING | YES | |
limit | INT | NO | Default 100; max 5000. Valid limits:[5, 10, 20, 50, 100, 500, 1000, 5000] |
Data Source: Memory
Response:
Recent trades list#
Weight: 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | STRING | YES | |
limit | INT | NO | Default 500; max 1000. |
Data Source: Memory
Response:
Old trade lookup (MARKET_DATA)#
Weight: 5
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | STRING | YES | |
limit | INT | NO | Default 500; max 1000. |
fromId | LONG | NO | TradeId to fetch from. Default gets most recent trades. |
Data Source: Database
Response:
Compressed/Aggregate trades list#
Get compressed, aggregate trades. Trades that fill at the time, from the same taker order, with the same price will have the quantity aggregated.
Weight: 1
Parameters:
Data Source: Database
Response:
Kline/Candlestick data#
Kline/candlestick bars for a symbol. Klines are uniquely identified by their open time.
Weight: 1
Parameters:
Data Source: Database
Response:
Current average price#
Current average price for a symbol.
Weight: 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | STRING | YES |
Data Source: Memory
Response:
24hr ticker price change statistics#
24 hour rolling window price change statistics. Careful when accessing this with no symbol.
Weight: 1 for a single symbol; 40 when the symbol parameter is omitted
Parameters:
Data Source: Memory
Response:
Symbol price ticker#
Latest price for a symbol or symbols.
Weight: 1 for a single symbol; 2 when the symbol parameter is omitted
Parameters:
Data Source: Memory
Response:
Symbol order book ticker#
Best price/qty on the order book for a symbol or symbols.
Weight: 1 for a single symbol; 2 when the symbol parameter is omitted
Parameters:
Data Source: Memory
Response:
Account endpoints#
New order (TRADE)#
Send in a new order.
Weight: 1
Parameters:
Some additional mandatory parameters based on order type :
Data Source: Matching Engine
Налоговый API от Binance. Что важно знать пользователям криптовалют из России
В конце июля ведущая международная биржа и блокчейн-экосистема Binance объявила о запуске сервиса для помощи в уплате налогов с криптовалюты. Этот инструмент под названием Binance Tax Reporting Tool API может помочь пользователям биржи формировать отчеты для подачи в налоговые органы, которые отражают движение цифровых активов на торговой площадке, а также получать историю транзакций более чем за один финансовый год.
Как работает сервис «Налоговая отчетность»
Важно отметить, что в соответствии с текущим законодательством Российской Федерации группа компаний Binance не обязана раскрывать информацию российским налоговым и правоохранительным, надзорным органам. Исключением могут стать обоснованные индивидуальные запросы уполномоченных органов, в основном, в рамках конкретного уголовного дела.
Текущий статус регулирования криптовалют в России
Принятые ранее подзаконные акты и судебная практика, которая сложилась до этого, применимы в части, в которой они не противоречат нормам этого закона.
ФЗ о ЦФА является специальным актом и имеет приоритет над общими нормами законодательства, регулирующими аналогичные и схожие отношения и обстоятельства.
Принято три акта, затрагивающих применение технологии блокчейн в финансовой области. ФЗ о ЦФА будет применяться совместно с уже вступившими в силу Федеральным законом от 18.03.2019 № 34-ФЗ «О внесении изменений в части первую, вторую и статью 1124 части третьей ГК РФ» (дает понятие цифровым правам, относя их к «иному имуществу» (ст. 141.1 ГК РФ) и смарт-контрактам, позволяет заключение сделок в цифровой форме) и Федеральным законом от 02.08.2019 № 259-ФЗ «О привлечении инвестиций с использованием инвестиционных платформ и о внесении изменений в отдельные законодательные акты Российской Федерации» («ФЗ о краундфандинге»).
Юридические аспекты налогообложения криптовалют
Проект ФЗ о налогообложении криптовалют прошел первое чтение в Госдуме (Законопроект №1065710-7 О внесении изменений в части 1 и 2 НК РФ), но на данный момент порядок декларирования и расчета рыночной стоимости цифровых активов отсутствует.
Владельцы цифровых активов в праве подать декларацию и осуществить налоговые выплаты, хотя процедура пока не прозрачна.
Налог подлежит уплате при возникновении дохода от продажи имущества («цифровой валюты»), прежде всего, в фиат. Определение суммы дохода без продажи за фиат, а в виде обмена на криптовалюты, токены, затруднительно. Возникает риск того, что налоговые органы не признают стоимость криптовалют, расчет курсов декларанта. Еще более сложной будет ситуация, в которой нужно уменьшить прибыль на расходы, произведенные для покупки цифрового имущества. Уменьшение прибыли несет большой риск для налогоплательщика: налоговые органы будут стремиться не признать любые расходы, не подтвержденные документально. Любые документы должны содержать дату, сумму операции, исходить от конкретного лица. Электронная форма возможна, но не всегда. Перевод на русский язык (заверенный) обязателен в отношении любого документа. Выписки со счетов, кошельков Binance могут быть признаны или отвергнуты налоговой инспекцией: практика только начинает появляться. Минфин пока что не подтвердил возможность предоставления выписок с иностранных криптобирж для подтверждения расходов. Необходимо руководствоваться общими положениями законодательства.
Binance API: Русское Описание, Ограничения, Примеры [2021]
Вводная информация
В отличии от многих других бирж, Binance лимитирует не только количество запросов к API, но и «вес» запросов. Причем, это не какие-то фиксированные единицы, но целый комплекс (как они заявляют, англ). Например, если вы постоянно запрашиваете свечи но не торгуете, то ваш вес накапливается и вас могут забанить. И вообще они суровые — если вы постоянно перебиваете лучшую цену на минимальную ставку, или создаете/отменяете ордера но не покупаете и продаете и т.п. то вас настигнут санкции. Так что будьте аккуратны при тестировании ботов. Впрочем, пока я тестировал, ничего плохого не случилось, хотя я порой и жестил.
Если биржа захочет вам намекнуть, что пора бы снизить пыл, она вернет 429 ответ сервера. Если вы будете игнорировать этот ответ и ломиться в закрытую дверь, то вас забанят по IP на срок от 2 минут до 3 дней.
Подключение к API биржи идет через https://api.binance.com, для авторизованных запросов нужно отправлять ключ в заголовке X-MBX-APIKEY, и подписывать тело запроса SHA256.
Что бы вы не заморачивались с этим, я написал код, который позволяет все указанные запросы выполнять. Для его работы нужно установить Python версии 3.6+ с официального сайта, потом в командной строке выполнить pip install requests. Создайте папку (для удобства), создайте новый файл binance_api.py, и вставьте туда этот код:
Для тестирования методов, создайте в этой же папке второй файл, например, binance_test.py, туда вставьте вот такой код (подставьте свои API ключи):
from binance_api import Binance bot = Binance( API_KEY=’D7…Ejj’, API_SECRET=’gwQ…u3A’ ) print(‘account’, bot.account())
(Или возьмите с гитхаба)
Еще немного общей информации: практически во всех подписанных запросах необходимо указывать параметр timestamp — это текущее unix-время в милиосекундах. Но, так как некоторые сети бывают перегружены, то ваш запрос может заблудиться и придти позже. Поэтому биржа предоставляет вам временное окно (по умолчанию 5000 милисекунд). Если у вас запросы не успевают придти в это окно, вы можете его расширить с помощью параметра recvWindow. Но, думаю, это мало кому понадобится.
Настройка бот Binance
Настроек не так много, в API_KEY и API_SECRET нужно прописать ключи, которые вы получили на бирже.
В пары нужно прописать соответственно пары, на которые планируете торговать, максимальную сумму, которую планируете тратить, и желаемый процент прибыли. С этим есть некоторый момент, т.к. вы платите комисиию BNB. Я советую ставить 0.003 (0.3%) и выше, но если у вас есть возможность дешево получать BNB, то можно и меньше.
BUY_LIFE_TIME_SEC – через сколько отменять ордер на покупку (если он не исполнен), в секундах.
STOCK_FEE – комиссия биржи, если вдруг решите торговать без BNB.
USE_BNB_FEES = True – если торгуете с BNB, False – в противном случае.
Источник:
Публичные запросы
Проверка связи — /api/v1/ping
Метод для проверки работы API. Возвращает пустой словарь
Ссылка для просмотра в браузере https://api.binance.com/api/v1/ping. Вес — 1 Код для проверки:
from binance_api import Binance bot = Binance( API_KEY=’D7…Ejj’, API_SECRET=’gwQ…u3A’ ) print(bot.ping())
Получение времени биржи — /api/v1/time
Ссылка для просмотра в браузере https://api.binance.com/api/v1/time Вес — 1 Возвращает словарь с текущим временем:
from binance_api import Binance bot = Binance( API_KEY=’D7…Ejj’, API_SECRET=’gwQ…u3A’ ) print(bot.time())
Настройки и лимиты биржи — /api/v1/exchangeInfo
Ссылка для просмотра в браузере https://api.binance.com/api/v1/exchangeInfo Вес — 1 Возвращает структуру данных:
Ключ rateLimits ведет на массив с лимитами — сколько запросов в секунду/минуту/день можно делать. Ключ symbols содержит настройки для каждой пары — рассмотрим одну, ETHBTC
from binance_api import Binance bot = Binance( API_KEY=’D7…Ejj’, API_SECRET=’gwQ…u3A’ ) print(bot.exchangeInfo())
Открытые ордера на бирже — /api/v1/depth
Метод позволяет получить книгу ордеров. Принимает параметры: Обязательные: symbol — пара Необязательные: limit — кол-во возвращаемых записей от 5 до 1000 (по умолчанию 100). Допустимые значения: 5, 10, 20, 50, 100, 500, 1000. Еще можно указать 0, но он может вернуть большое кол-во данных. Вес зависит от параметра limit. При лимите от 5 до 100 вес будет равен 1. Для параметра 500 вес составит 5. Для параметра 1000 вес будет 10. Ссылка для просмотра в браузере: https://api.binance.com/api/v1/depth?symbol=ETHBTC Возвращает значения:
bids — это списки цен/объемов на покупку, asks — на продажу. Пример кода:
from binance_api import Binance bot = Binance( API_KEY=’D7…Ejj’, API_SECRET=’gwQ…u3A’ ) print(‘depth’, bot.depth( symbol=’BNBBTC’, limit=5 ))
Последние (чужие) сделки — /api/v1/trades
Принимает параметры: Обязательные: symbol — пара Необязательные: limit — кол-во возвращаемых записей (максимум 500, по умолчанию 500). Вес — 1 Ссылка для просмотра в браузере: https://api.binance.com/api/v1/trades?symbol=ETHBTC Пример ответа:
id — id сделки price — цена qty — количество time — время сделки isBuyerMaker — была ли покупка по указанной покупателем цене, isBestMatch — была ли встречная сделка Пример кода:
from binance_api import Binance bot = Binance( API_KEY=’D7…Ejj’, API_SECRET=’gwQ…u3A’ ) print(‘trades’, bot.trades( symbol=’BNBBTC’, limit=1 ))
Сжатая история сделок — /api/v1/aggTrades
Метод позволяет получить суммарную историю сделок. Сделки, выполненные в одно время по одному ордеру и по одной цене будут представлены одной строкой с объединенным количеством. Вес — 1 Ссылка для просмотра в браузере: https://api.binance.com/api/v1/aggTrades?symbol=ETHBTC Принимает параметры: Обязательные: symbol — пара Необязательные: fromID — показывать начиная со сделки № (включительно) startTime — начиная с какого времени (включительно) endTime — заканчивая каким временем (включительно) limit — Кол-во записей (максимум 500, по умолчанию 500) Возвращает данные:
from binance_api import Binance bot = Binance( API_KEY=’D7…Ejj’, API_SECRET=’gwQ…u3A’ ) print(‘aggTrades’, bot.aggTrades( symbol=’BNBBTC’, limit=1 ))
Данные по свечам – /api/v1/klines
Вес – 1 Ссылка для просмотра в браузере https://api.binance.com/api/v1/klines?symbol=LTCBTC&interval=5m Параметры: Обязательные: symbol – пара interval – период свечи Допустимые интервалы: • 1m // 1 минута • 3m // 3 минуты • 5m // 5 минут • 15m // 15 минут • 30m // 30 минут • 1h // 1 час • 2h // 2 часа • 4h // 4 часа • 6h // 6 часов • 8h // 8 часов • 12h // 12 часов • 1d // 1 день • 3d // 3 дня • 1w // 1 неделя • 1M // 1 месяц
Необязательные: limit – кол-во свечей (максимум 500, по умолчанию 500) startTime – время начала построения endTime – окончание периода Если не указаны параметры startTime и endTime, то возвращаются самые последние свечи. Пример ответа:
[ [ 1499040000000, // Время открытия «0.01634790», // Цена открытия (Open) «0.80000000», // Максимальная цена (High) «0.01575800», // Минимальная цена (Low) «0.01577100», // Цена закрытия (Close) «148976.11427815», // Объем 1499644799999, // Время закрытия «2434.19055334», // Объем квотируемой валюты 308, // Кол-во сделок «1756.87402397», // Taker buy base asset volume «28.46694368», // Taker buy quote asset volume «17928899.62484339» // Ignore ] ]
from binance_api import Binance bot = Binance( API_KEY=’D7…Ejj’, API_SECRET=’gwQ…u3A’ ) print(‘klines’, bot.klines( symbol=’BNBBTC’, interval=’5m’, limit=1 ))
Статистика за 24 часа — /api/v1/ticker/24hr
Вес – 1, если указана пара, иначе вес равен (количеству всех торгуемых пар)/2. Ссылка для просмотра в браузере: https://api.binance.com/api/v1/ticker/24hr?symbol=BNBBTC Параметры: Необязательные: symbol – пара Если symbol не указан, возвращаются данные по всем парам. В этом случае, считается, что вы сделали столько запросов к бирже, сколько вернулось пар. Пример ответа:
Если пар несколько, то такие словари вкладываются в массив, вот так:
from binance_api import Binance bot = Binance( API_KEY=’D7…Ejj’, API_SECRET=’gwQ…u3A’ ) print(‘ticker/24hr’, bot.ticker24hr( symbol=’BNBBTC’ ))
Последняя цена по паре (или парам) — /api/v3/ticker/price
Вес — 1 Параметры: Необязательные: symbol – пара Если параметр symbol не указан, то возвращаются цены по всем парам. Ссылка для просмотра в браузере: https://api.binance.com/api/v3/ticker/price?symbol=BNBBTC Пример ответа:
Или (если не указан параметр)
from binance_api import Binance bot = Binance( API_KEY=’D7…Ejj’, API_SECRET=’gwQ…u3A’ ) print(‘ticker/price’, bot.tickerPrice( symbol=’BNBBTC’ ))
Лучшие цены покупки/продажи — /api/v3/ticker/bookTicker
Вес 1 Параметры: Необязательные: symbol – пара Если параметр symbol не указан, возвращаются данные по всем парам. Ссылка для просмотра в браузере: https://api.binance.com/api/v3/ticker/bookTicker?symbol=BNBBTC Пример ответа:
Или (если не указан параметр):
from binance_api import Binance bot = Binance( API_KEY=’D7…Ejj’, API_SECRET=’gwQ…u3A’ ) print(‘ticker/bookTicker’, bot.tickerBookTicker( symbol=’BNBBTC’ ))
Баттлы и турниры
Периодически Binance Futures запускает турниры, суть которых заключается в награждении наиболее активных трейдеров на платформе. Так, в сентябре-октябре было разыграно 1 600 000$ в BNB в турнире по общей командной прибыли. Команда с самым большим объемом торгов за месяц получила приз в размере 5000$ в BNB.
Также Binance запустила новую функцию онлайн-баттлов. Первой торговой парой, запущенной в рамках этой функции, стал бессрочный контракт BTCUSD. Пользователь открывает позицию и соревнуется с другими пользователями, чтобы получить очки. Если он ожидает, что цена через 5 минут увеличится, то выбирает вариант лонг, чтобы обозначить свое мнение. И наоборот, если он ожидает падения стоимости, то выбирает шорт. Как только будет подобран противник, баттл начнется. Результатами боя можно поделиться с друзьями, также они отображаются в таблице лидеров.
Баттл бинанс Futures
Авторизованные запросы:
Создание ордера — /api/v3/order
Для тех, кто будет писать свою библиотеку – обратите внимание, что адрес один и тот же /api/v3/order, но отличается метод – если отправлять данные через POST, это будет создание ордера, через GET – получение информации об ордере, DELETE – отмена ордера. Параметры, соответственно, разные.
Вес – 1 Метод: POST Параметры: Обязательные: symbol – пара side – тип ордера (BUY либо SELL) type – тип ордера (LIMIT, MARKET, STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT, LIMIT_MAKER) quantity – количество к покупке timestamp – текущее время в миллисекундах (в коде, выложенном здесь, проставляется автоматически, указывать не надо. Необязательные: timeInForce – (GTC, IOC, FOK). По умолчанию GTC. Расшифрую. GTC (Good Till Cancelled) – ордер будет висеть до тех пор, пока его не отменят. IOC (Immediate Or Cancel) – Будет куплено то количество, которое можно купить немедленно. Все, что не удалось купить, будет отменено. FOK (Fill-Or-Kill) – Либо будет куплено все указанное количество немедленно, либо не будет куплено вообще ничего, ордер отменится.
price – цена newClientOrderId – Идентификатор ордера, который вы сами придумаете (строка). Если не указан, генерится автоматически. stopPrice – стоп-цена, можно указывать если тип ордера STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, или TAKE_PROFIT_LIMIT. icebergQty – кол-во для ордера-айсберга, можно указывать, если тип ордера LIMIT, STOP_LOSS_LIMIT, and TAKE_PROFIT_LIMIT recvWindow – кол-во миллисекунд, которое прибавляется к timestamp и формирует окно действия запроса (см. выше). По умолчанию 5000. newOrderRespType –какую информацию возвращать, если удалось создать ордер. Допустимые значения ACK, RESULT, или FULL, по умолчанию RESULT. Подробности ниже.
В зависимости от типа ордера, некоторые поля становятся обязательными:
Тип ордера Обязательные поля LIMIT timeInForce, quantity, price MARKET quantity STOP_LOSS quantity, stopPrice STOP_LOSS_LIMIT timeInForce, quantity, price, stopPrice TAKE_PROFIT quantity, stopPrice TAKE_PROFIT_LIMIT timeInForce, quantity, price, stopPrice LIMIT_MAKER quantity, price
Ордера типа LIMIT_MAKER – это ордера типа обычного LIMIT, но они отклонятся, если ордер при выставлении может выполниться по рынку. Другими словами, вы никогда не будете тейкером, ордер либо выставится выше/ниже рынка, либо не выставится вовсе. Ордера типа STOP_LOSS и TAKE_PROFIT исполнятся по рынку (ордер типа MARKET), как только будет достигнута цена stopPrice. Любые ордера LIMIT или LIMIT_MAKER могут формировать ордер-айсберг, установив параметр icebergQty. Если установлен параметр icebergQty, то параметр timeInForce ОБЯЗАТЕЛЬНО должен иметь значение GTC.
Для того, что бы выставлять цены, противоположные текущим для ордеров типов MARKET и LIMIT: Цена выше рыночной: STOP_LOSS BUY, TAKE_PROFIT SELL Цена ниже рыночной: STOP_LOSS SELL, TAKE_PROFIT BUY
При создании ордера вернется ответ, в зависимости от параметра newOrderRespType: