Как найти api в бинанс

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

  • открытый (API-key) – можно предоставлять
  • секретный (закрытый или Secret Key) – хранить в надежном месте, предоставлять исключительно брокеру или программе

При помощи api key binance можно не только просматривать данные на кошельках аккаунта, но и совершать сделки, а также заводить и выводить активы. Ниже мы разберемся, как создать апи на бинансе и получить секретный код для фьючерсов.

Как создать апи ключ бинанс?

Процедура для получения API key проста и занимает не более 5 минут. Алгоритм действий:

  1. Авторизуемся на сайте www.binance.com или в приложении
  2. Заходим в “Управление API” через профиль (иконка пользователя), либо через меню слева
  3. Binance API - создание и настройка ключей

  4. Изучаем информацию на странице и нажимаем “Создать API”
  5. Binance API - создание и настройка ключей

  6. В типе выбираем “Сгенерированный системой” и идем далее
  7. Binance API как подключить

  8. Создаем метку для ключа (придумываем название, чтобы не путаться в будущем)
  9. Binance API

  10. Проходим проверку кода доступа и проверку безопасности. Вводим все коды верификации, которые подключены.

Таким образом мы получили binance api.

Binance API - создание и настройка ключей

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

Как создать апи ключ бинанс для фьючерсов

Стоит понимать, что созданный api key binance имеет очень ограниченный права. Для фьючерсной или любой другой торговли он совсем не подходит. Дальше нужно отредактировать ключ. Для этого выбираем “Редактировать ограничения” и включаем нужные опции.

Binance API - как удалить ключ

Обратите внимание на пункт “Ограничение доступа по IP”. Если выбрать Неограниченный (менее безопасный), то доступ будет с любого ip адреса, а сам ключ работает всего 3 месяца. Сам бинанс не рекомендует его использовать. Если мы разрешаем доступ только доверенным IP адресам, то каждый из них нужно вбить в строку вручную.

Binance API - создание и настройка ключей

Нужно знать, что подключение апи на бинансе имеют свои ограничения, нарушение которых может повлечь бан аккаунта. Также стоит обратить внимание на правила безопасности, нарушив которые можно потерять средства на кошельке. Эти правила прописаны на странице создания управления:

Регистрируйся с указанием реферального ID: AHJUCEJW и получай скидку до 40% на комиссии в бинанс на все операции.

  1. На одном профиле нельзя создавать более 30 ключей API.
  2. Не передавать никому API, секретный ключ (HMAC) или приватный (RSA). Нужно относиться к API на Binance, секретному (HMAC) или приватному ключу (RSA) так же, как и к своим паролям, чтобы избежать потери криптовалюты.
  3. Рекомендуется разрешать доступ только к доверенным IP-адресам для обеспечения безопасности аккаунта.
  4. Невозможно создать API на Бинанс, если не прошли верификацию KYC.

Как удалить ключи апи на бинансе?

Для этого необходимо пройти в уже знакомый раздел “Управление API”, выбрать нужный и напротив его нажать кнопку “Удалить”.

Binance API - создание и настройка ключей

И подтвердить операцию.

Binance API - создание и настройка ключей

Если у вас имеются какие-либо вопросы по созданию или настройке ключей API Binance – задавайте их в комментарии к записи.

Подробная инструкция по созданию API ключа и секретного ключа на бирже Binance для фьючерсов.

Для создания API ключа вам потребуется аккаунт на бирже Binance. Если у вас уже есть аккаунт на бирже Binance и вас интересует создание API ключа, то начните смотреть эту инструкцию с ШАГА 2.

Шаг 1.

Нажимаем здесь и проходим регистрацию на бирже Binance. Прямая ссылка на регистрацию https://accounts.binance.com/ru/register

У вас откроется страница Создать бесплатный аккаунт, здесь нужно будет ввести свою электронную почту, придумать пароль, поставить галочку что вы согласны с условиями Binance и после этого нажать на кнопку Создать аккаунт, смотрите картинку ниже

При регистрации у Binance стоит защита от СПАМа. Поэтому чтобы завершить регистрацию Binance попросит вас передвинуть пазл. Для примера смотрите рисунок ниже

Далее вы увидите сообщение на экране с просьбой пройти Верификацию аккаунта. Для этого нужно ввести 6-значный код подтверждения, который будет отправлен на ваш email, смотрите рисунок ниже

Идем с вою почту, находим в ней письмо от Binance, в нем берем  6-значный код и вводим на странице подтверждения, смотрите рисунок выше.

Письмо с кодом выглядит вот так, смотрите рисунок ниже

После ввода кода система Binance проверит его и если код правильный, то активирует вам биржевой аккаунт и вы окажитесь на странице Добро пожаловать на Binance.

Здесь вам нужно через меню вашего профиля активировать Панель инструментов, смотрите рисунок ниже

После активации Панели инструментов у вас откроется страница с окном Проверки безопасности, здесь вам нужно подключить безопасность на своем аккаунте

Мы рекомендуем вам защитить свой биржевой аккаунт и включить Подтверждение Google 2FA через Google аутентификацию.

Google аутентификация работает через приложение Google Authenticator, которое устанавливается на телефон и генерирует коды для входа в биржевой аккаунт. То есть помимо пароля на вход вам каждый раз придется еще дополнительно вводить токен безопасности, который будет генерировать приложение Google Authenticator. 2FA Google аутентификация это дополнительная защита от взлома вашего биржевого аккаунта.Важно! при установки 2FA Google аутентификация обязательно сохраните код аутентификатора, это набор букв и цифр, храните его в виде кода и qr кода в надежном месте. Если по каким то причинам вы поменяли телефон, либо удалили приложение Google Authenticator с телефона, то вы всегда сможете восстановить доступ к вашему биржевому аккаунту на Bitmex через приложение Google Authenticator имея код аутентификатора. Но если вы потеряете код аутентификатора, то восстановить доступ к своему биржевому аккаунту будет сложнее, потому что вам придется письменно обращаться в службу поддержки Bitmex и просить их о том, чтобы они отключили 2FA Google аутентификация на вход в ваш аккаунт. Отключение 2FA Google аутентификация через службу поддержки это не быстрая процедура и она требует прохождения полной верификации где биржа вам будет задавать дополнительные вопросы имеющие отношения к вашему аккаунту, в том числе к вашим сделкам на биржевом аккаунте!Аутентификация по SMS — вам на телефон будут приходить SMS с кодом когда вы будите соверщать какие-то действия на Binance, например создание API ключа или вход в биржевой аккаунт.

Шаг 2.

На этом шаге вам необходимо открыть фьючерсный кошелек на своем биржевом аккаунте.

Для создания фьючерсного кошелька выбираем в верхнем меню Кошелек и далее жмем на Фьючерсный кошелек

Далее в открывшейся странице жмем кнопку Открыть сейчас

Далее у вас откроется фьючерсный кошелек, вот так он будет выглядеть, смотрите рисунок ниже

Шаг 3.

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

Для создания API ключа нажимаем в верхнем меню на свой профиль (2 буквы), отрывается подменю в котором жмем на Управление API, смотрите рисунок ниже

Откроется окно где нужно присвоить ключу API название и нажать кнопку API создан, смотрите рисунок ниже

После нажатия кнопки API создан система Binance предложит вам пройти Проверку безопасности. Для этого вам потребуется в окне безопасности ввести код подтверждения e-mail и код подтверждения Google. Для получения кода на e-mail вам нужно нажать на Получить код. Для кода Google ввести код, который генерируется приложением Google Authenticator.

Все это нужно сделать очень быстро и после этого нажать на кнопку Отправить, смотрите рисунок ниже

После этого откроется страница на вашем биржевом аккаунте Binance и вы увидите что ваш API будет создан, смотрите рисунок ниже

Обязательно скопируйте ключ API и секретный ключ, чтобы прописать эти ключи в вашем аккаунте, на платформе AIVIA.

Далее необходимо зайти в созданный API через кнопку Редактировать ограничения

Откроется редактирование API здесь вам нужно будет обязательно поставить только одну галочку на Включить Фьючерсы и далее нажать на кнопку Сохранить

Галочку на вывод средств не ставим!

Нажав на кнопку Сохранить, вас система попросит пройти Проверку безопасности. Здесь мы вводим код, который генерируется приложением Google Authenticator.

После этого вам станет доступным API с включенными фьючерсами.

Обязательно скопируйте ключ API и секретный ключ, чтобы прописать эти ключи в вашем аккаунте, на платформе AIVIA.

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

Для подключения системы копирования к своему биржевому фьючерсному аккаунту необходимо на балансе фьючерсного аккаунта иметь минимальную сумму 500 USDT. Для того чтобы пополнить свой фьючерсный аккаунт Binance у вас должны USDT лежать на основном аккаунте Binance.

Пополнить свой Основной аккаунт Binance можно практически за любую криптовалюту и фиат.

После того как ваши USDT будут на Основном аккаунте заходим во Фьючерсный аккаунт и нажимаем кнопку Перевод, смотрите рисунок ниже

После нажатия на Перевод у вас откроется такое окно где нужно вписать сумму и нажать на кнопку Подтвердить, смотрите скриншот

Обратите внимание что вы переводите со своего Спотового кошелька на Фьючерсы USDⓈ-M.

После подтверждения USDT появиться на вашем Фьючерсном аккаунте

Обращаем ваше внимание!
Что баланс подтягивается на платформу AIVIA, только с фьючерсного аккаунта.

📌Подписывайтесь на наш Telegram канал https://t.me/pro_crypt0

МОИ САЙТЫ ⟶ TRADINGSTAR ПредпросмотрОпубликоватьНастройкиПомощьЕще HEADER Важно: разместите этот блок на самом верху страницы. Этот блок добавляет анимацию загрузки страницы. Создание и настройка API ключей на бирже Binance. Все тонкости. T123 Настройки Контент HTML-код

Оглавление:

  1. Ключ API биржи Binance
  2. Создание API ключа на бирже Binance
  3. Подключение API ключа в программе TradingStar
  4. Создание API ключа на суб-аккаунте Binance

1. Ключ API биржи Binance

     Ключ API биржи Binance — это цифровой код, позволяющей внешней программе от вашего имени производить действия на бирже. Ключ API потому и называется КЛЮЧ, что это просто набор цифр, известных только Вам и бирже и на основании ключа происходит открытие действий для биржи от вашего имени.

     Ключ делится на открытый (API-key) и закрытый ключ (Secret Key), открытый ключ можно как следует из названия по запросу открыто предоставлять. Закрытый ключ необходимо хранить в тайне и предоставлять только вашему брокеру и в программе в которой будет осуществляться торговля на бирже.

2. Создание API ключа на бирже Binance

  • Перед созданием API-ключа мы рекомендуем пройти двухфакторную аутентификацию (2FA). На сегодняшний день без данного уровня невозможно уже на бирже Binance осуществлять операции.
  • Логинимся в Binance. https://accounts.binance.com/ru/login
  • Через главную иконку «Центра пользователя» Переходим на закладку «Управления API» https://www.binance.com/ru/my/settings/api-management

Создание и использование API ключа Binance

  • В верхнем поле создаем метку ключа API например «API_TradingStar»и нажимаем кнопку «API создан«

Создание и использование API ключа Binance

  • Проходим проверку кодов доступа.
  • API ключ создан, обязательно записываем открытый (API-key) и закрытый ключ (Secret Key) себе в секретное место. Секретный ключ надо сразу понимать Вы больше никогда не увидите если закроете эту страницу.

Надо понимать, что ключ при создании имеет минимальные права и для торговли нам не подходит. Увеличим права ключа и потому нажимаем «Редактировать ограничения«.

Создание и использование API ключа Binance

  • Обязательно включаем спотовую торговлю и фьючерсы (1 и 2 на рисунке).
  • Обращаем внимание на пункт «Ограничение доступа по IP». (3 на рисунке) Очень важный момент.

     Если мы выберем — «Неограниченный«, то созданный API ключ будет действовать только 3 месяца, а потом автоматически отключится.

     Если мы выберем — «Разрешить доступ только к доверенным IP-адресам«, то созданный API ключ будет действовать вечно. Желательно выбирать этот пункт, так как при работе из дома вы свой  IP знаете, если будете работать через VDS сервер, то там тоже IP будет назначен.

  • После того как вкдючили галочки, нажимаем «Сохранить«

Создание и использование API ключа Binance

  • Если мы на предыдущем пункте выбрали «Неограниченный» то возникнет окно предупреждающее, что через 90 дней API будет отключен. Нажимаем «Ok«

Создание и использование API ключа Binance

  • Проходим проверку безопасноси и на этом наш API ключ создан.

3. Подключение API ключа в программе TradingStar

  • Запускаем программу TradingStar, и в разделе Настройки ввести ранее полученный ключ.

Создание и использование API ключа Binance

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

  • Для получения бесплатного доступа необходимо получить бесплатный доступ к TradingStar.
  • Пользователям платных тарифов, доступ открывается автоматически.

4. Создание API ключа на суб-аккаунте Binance

Создавать API-ключи на субаккаунтах возможно двумя способами:

  1. Классический. Зайти в суб-аккаунт управляющей программой (через WEB-интерфейс или приложение для ПК) и мы сможем создать API-ключ по этой инструкции (идем вверх и все делаем по инструкции) — как будто это и не суб-аккаунт.
  2. Через управление Суб-аккаунтами:
  • Переходим на закладку управления Субаккаунтами — ссылка.

Создание и использование API ключа Binance

  • Далее переходим на закладку «Управление API» в меню «Дополнительные счета» и нажимаем «Создать API«:

Создание и использование API ключа Binance

  • На следующем шаге нам предложат выбрать Суб-аккаунт на котором создается API-ключ и написать метку ключа.

Создание и использование API ключа Binance

  • Вводим запрашиваемые данные и попадаем в знакомое меню нового созданного API-ключа.
  • Далее как обычно расширяем полномочия ключа в торговле SPOT и Фьючерсы. Решаем доступ с каких IP адресов программа будет иметь доступ к бирже Binance.
  • Запускаем программу TradingStar, и в разделе Настройки ввести ранее полученный ключ.

Рассмотрим подробно как создать API ключ на бирже Binance и добавить его на RevenueBOT

  1. Логинимся в систему https://binance.com, переходим по ссылке https://www.binance.com/ru/my/security (меню «Безопасность»)

  2. Перед тем как добавить ключ API вам необходимо включить двухфакторную аутентификацию или 2FA. Сделать это можно одним из способов:
  3. — Добавить телефон для проверки (тут все просто, вводим свой телефон, кликаем на «Отправить SMS», вбиваем код, присланный в смс).

    или

    — Установить проверку Google (для этого вам потребуется приложение Google Authenticator, подробные шаги указаны тут: https://www.binance.com/ru/support/faq/115000433432)

    Если вы все сделали правильно, то у вас поменяется кнопка «Включить» на «Удалить/Изменить»

  4. Переходим в управление API
  5. Добавление метки API ключа. Кликаем «Создать API». Тут нам необходимо ввести название метки ключа. Для простоты используем «revenuebot-spot». Для корректной работы нескольких ботов можно использовать один API key биржи (исключением является создание ботов для Binance Futures, где ключ должен быть другим), в нашем случае для всех ботов будет API ключ «revenuebot-spot».
  6. Проходим SMS и/или Google auth (вводим все необходимые коды и жмем «отправить»
  7. Ура, наш API ключ создан! Мы на странице настроек нашего ключа «revenuebot-spot». Ограничения необходимо отредактировать как на скриншоте ниже (предварительно нажать «редактировать ограничения»:
  8. Теперь вы можете добавить нужные данные в RevenueBOТ. Для этого копируйте сроки «API Key» и «Secret Key» («Api Sign») в соответствующие поля в меню «API keys» https://app.revenuebot.io/office/#/api-keys

15 views

Вступление

Биржа binance, как и многие другие биржи, предоставляет API — программный интерфейс для автоматизации торговли. В этой статье рассмотрены методы и приведены примеры кода для работы с ними.
Официальное описание API (на английском) — здесь. Бот для Binance — здесь. Как получить API ключи — тут.

Вводная информация

В отличии от многих других бирж, Binance лимитирует не только количество запросов к API, но и «вес» запросов. Причем, это не какие-то фиксированные единицы, но целый комплекс (как они заявляют, англ). Например, если вы постоянно запрашиваете свечи но не торгуете, то ваш вес накапливается и вас могут забанить. И вообще они суровые — если вы постоянно перебиваете лучшую цену на минимальную ставку, или создаете/отменяете ордера но не покупаете и продаете и т.п. то вас настигнут санкции. Так что будьте аккуратны при тестировании ботов. Впрочем, пока я тестировал, ничего плохого не случилось, хотя я порой и жестил.

Если биржа захочет вам намекнуть, что пора бы снизить пыл, она вернет 429 ответ сервера. Если вы будете игнорировать этот ответ и ломиться в закрытую дверь, то вас забанят по IP на срок от 2 минут до 3 дней.

Подключение к API биржи идет через https://api.binance.com, для авторизованных запросов нужно отправлять ключ в заголовке X-MBX-APIKEY, и подписывать тело запроса SHA256.

Что бы вы не заморачивались с этим, я написал код, который позволяет все указанные запросы выполнять. Для его работы нужно установить Python версии 3.6+ с официального сайта, потом в командной строке выполнить pip install requests. Создайте папку (для удобства), создайте новый файл binance_api.py, и вставьте туда этот код:

import ssl
import time
import json
import urllib
import hmac, hashlib
import requests

from urllib.parse import urlparse, urlencode
from urllib.request import Request, urlopen

class Binance():

    methods = {
            # public methods
            'ping':             {'url':'api/v1/ping', 'method': 'GET', 'private': False},
            'time':             {'url':'api/v1/time', 'method': 'GET', 'private': False},
            'exchangeInfo':     {'url':'api/v1/exchangeInfo', 'method': 'GET', 'private': False},
            'depth':            {'url': 'api/v1/depth', 'method': 'GET', 'private': False},
            'trades':           {'url': 'api/v1/trades', 'method': 'GET', 'private': False},
            'historicalTrades': {'url': 'api/v1/historicalTrades', 'method': 'GET', 'private': False},
            'aggTrades':        {'url': 'api/v1/aggTrades', 'method': 'GET', 'private': False},
            'klines':           {'url': 'api/v1/klines', 'method': 'GET', 'private': False},
            'ticker24hr':       {'url': 'api/v1/ticker/24hr', 'method': 'GET', 'private': False},
            'tickerPrice':      {'url': 'api/v3/ticker/price', 'method': 'GET', 'private': False},
            'tickerBookTicker': {'url': 'api/v3/ticker/bookTicker', 'method': 'GET', 'private': False},
            # private methods
            'createOrder':      {'url': 'api/v3/order', 'method': 'POST', 'private': True},
            'testOrder':        {'url': 'api/v3/order/test', 'method': 'POST', 'private': True},
            'orderInfo':        {'url': 'api/v3/order', 'method': 'GET', 'private': True},
            'cancelOrder':      {'url': 'api/v3/order', 'method': 'DELETE', 'private': True},
            'openOrders':       {'url': 'api/v3/openOrders', 'method': 'GET', 'private': True},
            'allOrders':        {'url': 'api/v3/allOrders', 'method': 'GET', 'private': True},
            'account':          {'url': 'api/v3/account', 'method': 'GET', 'private': True},
            'myTrades':         {'url': 'api/v3/myTrades', 'method': 'GET', 'private': True},
            # wapi
            'depositAddress':   {'url': 'wapi/v3/depositAddress.html', 'method':'GET', 'private':True},
            'withdraw':   {'url': 'wapi/v3/withdraw.html', 'method':'POST', 'private':True},
            'depositHistory': {'url': 'wapi/v3/depositHistory.html', 'method':'GET', 'private':True},
            'withdrawHistory': {'url': 'wapi/v3/withdrawHistory.html', 'method':'GET', 'private':True},
            'assetDetail': {'url': 'wapi/v3/assetDetail.html', 'method':'GET', 'private':True},
            'tradeFee': {'url': 'wapi/v3/tradeFee.html', 'method':'GET', 'private':True},
            'accountStatus': {'url': 'wapi/v3/accountStatus.html', 'method':'GET', 'private':True},
            'systemStatus': {'url': 'wapi/v3/systemStatus.html', 'method':'GET', 'private':True},
            'assetDust': {'url': 'sapi/v1/asset/dust', 'method':'POST', 'private':True},
            'dustLog': {'url': 'wapi/v3/userAssetDribbletLog.html', 'method':'GET', 'private':True},
            'assetAssetDividend': {'url': 'sapi/v1/asset/assetDividend', 'method':'GET', 'private':True},
            #sapi
            'marginTransfer': {'url': 'sapi/v1/margin/transfer', 'method': 'POST', 'private':True},
            'marginLoan': {'url': 'sapi/v1/margin/loan', 'method': 'POST', 'private': True},
            'marginLoanGet': {'url': 'sapi/v1/margin/loan', 'method': 'GET', 'private': True},
            'marginRepay': {'url': 'sapi/v1/margin/repay', 'method': 'POST', 'private': True},
            'marginRepayGet': {'url': 'sapi/v1/margin/repay', 'method': 'GET', 'private': True},
            'marginCreateOrder': {'url': 'sapi/v1/margin/order', 'method': 'POST', 'private':True},
            'marginCancelOrder': {'url': 'sapi/v1/margin/order', 'method': 'DELETE', 'private':True},
            'marginOrderInfo': {'url': 'sapi/v1/margin/order', 'method': 'GET', 'private':True},
            'marginAccount': {'url': 'sapi/v1/margin/account', 'method': 'POST', 'private':True},
            'marginOpenOrders': {'url': 'sapi/v1/margin/openOrders', 'method': 'GET', 'private':True},
            'marginAllOrders': {'url': 'sapi/v1/margin/allOrders', 'method': 'GET', 'private':True},
            'marginAsset': {'url': 'sapi/v1/margin/asset', 'method': 'POST', 'private':True},
            'marginPair': {'url': 'sapi/v1/margin/pair', 'method': 'POST', 'private':True},
            'marginPriceIndex': {'url': 'sapi/v1/margin/priceIndex', 'method': 'POST', 'private':True},
            'marginMyTrades': {'url': 'sapi/v1/margin/myTrades', 'method': 'GET', 'private':True},
            'marginMaxBorrowable': {'url': 'sapi/v1/margin/maxBorrowable', 'method': 'GET', 'private':True},
            'marginmaxTransferable': {'url': 'sapi/v1/margin/maxTransferable', 'method': 'GET', 'private':True},
            #futures
            'futuresExchangeInfo': {'url': 'fapi/v1/exchangeInfo', 'method': 'GET', 'private': False, 'futures': True},
            'futuresKlines': {'url': 'fapi/v1/klines', 'method': 'GET', 'private': False, 'futures': True},
            'futuresCreateOrder':      {'url': 'fapi/v1/order', 'method': 'POST', 'private': True, 'futures': True},
            'futuresAccount':      {'url': 'fapi/v1/account', 'method': 'POST', 'private': True, 'futures': True},
            'futuresBalance':      {'url': 'fapi/v1/balance', 'method': 'GET', 'private': True, 'futures': True},
            'futuresSymbolPriceTicker': {'url': 'fapi/v1/ticker/price', 'method': 'GET', 'private': True, 'futures': True},
            'futuresOrderInfo': {'url': 'fapi/v1/order', 'method': 'GET', 'private': True, 'futures': True},
            'futuresCancelOrder':      {'url': 'fapi/v1/order', 'method': 'DELETE', 'private': True, 'futures': True},
   }
    
    def __init__(self, API_KEY, API_SECRET):
        self.API_KEY = API_KEY
        self.API_SECRET = bytearray(API_SECRET, encoding='utf-8')
        self.shift_seconds = 0

    def __getattr__(self, name):
        def wrapper(*args, **kwargs):
            kwargs.update(command=name)
            return self.call_api(**kwargs)
        return wrapper

    def set_shift_seconds(self, seconds):
        self.shift_seconds = seconds
        
    def call_api(self, **kwargs):

        command = kwargs.pop('command')

        base_url ='https://api.binance.com/' 
        if self.methods[command].get('futures'):
            base_url = 'https://fapi.binance.com/' 
        api_url = base_url  + self.methods[command]['url']

        payload = kwargs
        headers = {}
        
        payload_str = urllib.parse.urlencode(payload)
        if self.methods[command]['private']:
            payload.update({'timestamp': int(time.time() + self.shift_seconds - 1) * 1000})
            payload_str = urllib.parse.urlencode(payload).encode('utf-8')
            sign = hmac.new(
                key=self.API_SECRET,
                msg=payload_str,
                digestmod=hashlib.sha256
            ).hexdigest()

            payload_str = payload_str.decode("utf-8") + "&signature="+str(sign) 
            headers = {"X-MBX-APIKEY": self.API_KEY, "Content-Type":"application/x-www-form-urlencoded"}

        if self.methods[command]['method'] == 'GET' or self.methods[command]['url'].startswith('sapi'):
            api_url += '?' + payload_str

        response = requests.request(method=self.methods[command]['method'], url=api_url, data="" if self.methods[command]['method'] == 'GET' else payload_str, headers=headers)
            
        if 'code' in response.text:
            raise Exception(response.text)

        return response.json()

Для тестирования методов, создайте в этой же папке второй файл, например, binance_test.py, туда вставьте вот такой код (подставьте свои API ключи):

from binance_api import Binance
bot = Binance(
    API_KEY='D7...Ejj',
    API_SECRET='gwQ...u3A'
)
print('account', bot.account())

(Или возьмите с гитхаба)

После этого код можно запускать. К примеру, если вы только установили Python и не знаете, что делать, найдите редактор Idle (он устанавливается вместе с питоном), в нем File -> Open, откройте файл binance_test.py и нажмите F5. Код, представленный выше, вернет информацию по вашему аккаунту — подробности ниже.

Еще немного общей информации: практически во всех подписанных запросах необходимо указывать параметр timestamp — это текущее unix-время в милиосекундах. Но, так как некоторые сети бывают перегружены, то ваш запрос может заблудиться и придти позже. Поэтому биржа предоставляет вам временное окно (по умолчанию 5000 милисекунд). Если у вас запросы не успевают придти в это окно, вы можете его расширить с помощью параметра recvWindow. Но, думаю, это мало кому понадобится.


Реклама



Публичные запросы


Проверка связи — /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
Возвращает словарь с текущим временем:

{
  "serverTime": 1499827319559
}

Код для проверки:

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
Возвращает структуру данных:

{
  "timezone": "UTC",
  "serverTime": 1508631584636,
  "rateLimits": [{
      "rateLimitType": "REQUESTS",
      "interval": "MINUTE",
      "limit": 1200
    },
    {
      "rateLimitType": "ORDERS",
      "interval": "SECOND",
      "limit": 10
    },
    {
      "rateLimitType": "ORDERS",
      "interval": "DAY",
      "limit": 100000
    }
  ],
  "exchangeFilters": [],
  "symbols": [{
    "symbol": "ETHBTC",
    "status": "TRADING",
    "baseAsset": "ETH",
    "baseAssetPrecision": 8,
    "quoteAsset": "BTC",
    "quotePrecision": 8,
    "orderTypes": ["LIMIT", "MARKET"],
    "icebergAllowed": false,
    "filters": [{
      "filterType": "PRICE_FILTER",
      "minPrice": "0.00000100",
      "maxPrice": "100000.00000000",
      "tickSize": "0.00000100"
    }, {
      "filterType": "LOT_SIZE",
      "minQty": "0.00100000",
      "maxQty": "100000.00000000",
      "stepSize": "0.00100000"
    }, {
      "filterType": "MIN_NOTIONAL",
      "minNotional": "0.00100000"
    }]
  }]
}

Ключ rateLimits ведет на массив с лимитами — сколько запросов в секунду/минуту/день можно делать. 
Ключ symbols содержит настройки для каждой пары — рассмотрим одну, ETHBTC

{
  "symbol": "ETHBTC",
  "status": "TRADING",
  "baseAsset": "ETH",
  "baseAssetPrecision": 8,
  "quoteAsset": "BTC",
  "quotePrecision": 8,
  "orderTypes": [
    "LIMIT",
    "LIMIT_MAKER",
    "MARKET",
    "STOP_LOSS_LIMIT",
    "TAKE_PROFIT_LIMIT"
  ],
  "icebergAllowed": true,
  "filters": [
    {
      "filterType": "PRICE_FILTER",
      "minPrice": "0.00000100",
      "maxPrice": "100000.00000000",
      "tickSize": "0.00000100"
    },
    {
      "filterType": "LOT_SIZE",
      "minQty": "0.00100000",
      "maxQty": "100000.00000000",
      "stepSize": "0.00100000"
    },
    {
      "filterType": "MIN_NOTIONAL",
      "minNotional": "0.00100000"
    }
  ]
}

symbol — непосредственно пара
status — TRADING  -разрешена торговля
baseAsset — базовая валюта
baseAssetPrecision — требуемое количество символов базовой валюты после запятой при создании ордера (для цены и количества)
quoteAsset — квотируемая валюта
quotePrecision — требуемое количество символов квотируемой валюты после запятой при создании ордера (для цены и количества)
«orderTypes»: [
    «LIMIT»,
    «LIMIT_MAKER»,
    «MARKET»,
    «STOP_LOSS_LIMIT»,
    «TAKE_PROFIT_LIMIT»
  ] — допустимые виды ордеров по паре
icebergAllowed — разрешено ли создание айсбергов (ордеров с невидимой частью)
filters — ограничение ордеров
    PRICE_FILTER — ограничение цены создаваемого ордера. Цена ордера должна быть в диапазоне min_price и max_price, и шаг торговли должен быть кратен tickSize. Да да, тут нельзя ставить ордера с произвольной ценой.
    LOT_SIZE — ограничение объема создаваемого ордера. Объем должен быть в диапазоне minQty и maxQty, и быть кратен stepSize.
    MIN_NOTIONAL — итоговая сумма ордера (объем*цена) должна быть выше minNotional.
Код для проверки:

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
Возвращает значения:

{
  "lastUpdateId": 1027024,
  "bids": [
    [
      "4.00000000",     // PRICE
      "431.00000000",   // QTY
      []                // Ignore.
    ]
  ],
  "asks": [
    [
      "4.00000200",
      "12.00000000",
      []
    ]
  ]
}

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": 28457,
    "price": "4.00000100",
    "qty": "12.00000000",
    "time": 1499865549590,
    "isBuyerMaker": true,
    "isBestMatch": true
  }
]

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)
Возвращает данные:

[
  {
    "a": 26129,         //  tradeId строки
    "p": "0.01633102",  // Цена
    "q": "4.70443515",  // Количество
    "f": 27781,         // Первая tradeId
    "l": 27781,         // Последняя tradeId
    "T": 1498793709153, // Время
    "m": true,          // Was the buyer the maker?
    "M": true           // Was the trade the best price match?
  }
]

Пример кода:

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 не указан, возвращаются данные по всем парам. В этом случае, считается, что вы сделали столько запросов к бирже, сколько вернулось пар.
Пример ответа:

{
  "symbol": "BNBBTC", // пара
  "priceChange": "-94.99999800", // изменение цены за сутки 
  "priceChangePercent": "-95.960", // изменение цены за сутки %
  "weightedAvgPrice": "0.29628482", //Средневзвешенная цена
  "prevClosePrice": "0.10002000", // Предыдущая цена закрытия
  "lastPrice": "4.00000200",     // Последняя цена
  "lastQty": "200.00000000",    // Последний объем
  "bidPrice": "4.00000000",    // Цена покупки
  "askPrice": "4.00000200",    // Цена продажи
  "openPrice": "99.00000000",    // Цена открытия
  "highPrice": "100.00000000",    // Самая высокая цена
  "lowPrice": "0.10000000",    // Самая низкая цена
  "volume": "8913.30000000",    // Объем торгов базовой валюты
  "quoteVolume": "15.30000000",    // Объем торгов квотируемой
  "openTime": 1499783499040,    // Время открытия
  "closeTime": 1499869899040,    // Время закрытия
  "fristId": 28385,   // Id первой сделки
  "lastId": 28460,    // Id последней сделки
  "count": 76         // Кол-во сделок
}

Если пар несколько, то такие словари вкладываются в массив, вот так:

[
  {
    "symbol": "BNBBTC",
    
  },
  {
    "symbol": "LTCBTC",
    
  },
]

Пример кода:

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
Пример ответа:

{
  "symbol": "LTCBTC",
  "price": "4.00000200"
}

Или (если не указан параметр)

[
  {
    "symbol": "LTCBTC",
    "price": "4.00000200"
  },
  {
    "symbol": "ETHBTC",
    "price": "0.07946600"
  }
]

Пример кода:

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
Пример ответа:

{
  "symbol": "LTCBTC",
  "bidPrice": "4.00000000", //Лучшая цена покупки
  "bidQty": "431.00000000", // Кол-во к покупке
  "askPrice": "4.00000200", // Лучшая цена продажи
  "askQty": "9.00000000"       // Кол-во к продаже    
}

Или (если не указан параметр):

[
  {
    "symbol": "LTCBTC",
    "bidPrice": "4.00000000",
    "bidQty": "431.00000000",
    "askPrice": "4.00000200",
    "askQty": "9.00000000"
  },
  {
    "symbol": "ETHBTC",
    "bidPrice": "0.07946700",
    "bidQty": "9.00000000",
    "askPrice": "100000.00000000",
    "askQty": "1000.00000000"
  }
]

Пример кода:

from binance_api import Binance
bot = Binance(
    API_KEY='D7...Ejj',
    API_SECRET='gwQ...u3A'
)
print('ticker/bookTicker', bot.tickerBookTicker(
    symbol='BNBBTC'
))

Реклама




Реклама



Авторизованные запросы:


Создание ордера — /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:

newOrderRespType == ACK:

{
  "symbol": "BTCUSDT",
  "orderId": 28,
  "clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
  "transactTime": 1507725176595
}

newOrderRespType == RESULT:

{
  "symbol": "BTCUSDT",
  "orderId": 28,
  "clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
  "transactTime": 1507725176595,
  "price": "0.00000000",
  "origQty": "10.00000000",
  "executedQty": "10.00000000",
  "status": "FILLED",
  "timeInForce": "GTC",
  "type": "MARKET",
  "side": "SELL"
}

newOrderRespType == FULL:

{
  "symbol": "BTCUSDT",
  "orderId": 28,
  "clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
  "transactTime": 1507725176595,
  "price": "0.00000000",
  "origQty": "10.00000000",
  "executedQty": "10.00000000",
  "status": "FILLED",
  "timeInForce": "GTC",
  "type": "MARKET",
  "side": "SELL",
  "fills": [
    {
      "price": "4000.00000000",
      "qty": "1.00000000",
      "commission": "4.00000000",
      "commissionAsset": "USDT"
    },
    {
      "price": "3999.00000000",
      "qty": "5.00000000",
      "commission": "19.99500000",
      "commissionAsset": "USDT"
    },
    {
      "price": "3998.00000000",
      "qty": "2.00000000",
      "commission": "7.99600000",
      "commissionAsset": "USDT"
    },
    {
      "price": "3997.00000000",
      "qty": "1.00000000",
      "commission": "3.99700000",
      "commissionAsset": "USDT"
    },
    {
      "price": "3995.00000000",
      "qty": "1.00000000",
      "commission": "3.99500000",
      "commissionAsset": "USDT"
    }
  ]
}

Пример кода:

from binance_api import Binance
bot = Binance(
    API_KEY='D7...Ejj',
    API_SECRET='gwQ...u3A'
)
# Создать отложенный ордер на покупку 0.1 LTC за BTC
# По курсу 0.1
print('createOrder', bot.createOrder(
    symbol='LTCBTC',
    recvWindow=5000,
    side='BUY',
    type='LIMIT',
    timeInForce='GTC',
    quantity=0.1,
    price=0.1
))

Тестирование создания ордера: /api/v3/order/test

Вес: 1
Метод: POST
Метод позволяет протестировать создание ордера – например, проверить, правильно ли настроены временные рамки. По факту такой ордер никогда не будет исполнен, и средства на его создание затрачены не будут.
Параметры такие же, как при создании ордера.
Возвращает пустой словарь:

Пример кода:

from binance_api import Binance
bot = Binance(
    API_KEY='D7...Ejj',
    API_SECRET='gwQ...u3A'
)
# Протестировать отложенный ордер на покупку 0.1 LTC за BTC
# По курсу 0.1
print('testOrder', bot.testOrder(
    symbol='LTCBTC',
    recvWindow=5000,
    side='BUY',
    type='LIMIT',
    timeInForce='GTC',
    quantity=0.1,
    price=0.1
))

Получить информацию по созданному ордеру — /api/v3/order

Вес – 1
Метод – GET
Параметры:
Обязательные:
symbol – пара
orderId – ID ордера, назначенный биржей
ИЛИ origClientOrderId – ID ордера, назначенный пользователем или сгенерированный (см. создание ордера)
Либо orderId либо origClientOrderId необходимо предоставить.
timestamp – текущее время (в представленном коде проставляется автоматически, указывать не надо)
Необязательные:
recvWindow – окно валидности запроса.

Возвращаемое значение:

{
  "symbol": "LTCBTC",
  "orderId": 1,
  "clientOrderId": "myOrder1",
  "price": "0.1",
  "origQty": "1.0",     // исходное указанное кол-во на покупку/продажу
  "executedQty": "0.0",  // текущее исполненное кол-во
  "status": "NEW",
  "timeInForce": "GTC",
  "type": "LIMIT",
  "side": "BUY",
  "stopPrice": "0.0",
  "icebergQty": "0.0",
  "time": 1499827319559,
  "isWorking": true
}

Пример кода:

from binance_api import Binance
bot = Binance(
    API_KEY='D7...Ejj',
    API_SECRET='gwQ...u3A'
)
print('orderInfo', bot.orderInfo(
    orderId=123123,
    symbol='LTCBTC',
))

Отмена ордера — /api/v3/order

Вес – 1
Метод – DELETE
Параметры:
Обязательные:
symbol – пара

orderId – ID ордера, назначенный биржей
ИЛИ origClientOrderId – ID ордера, назначенный пользователем или сгенерированный (см. создание ордера)
Либо orderId либо origClientOrderId необходимо предоставить.

timestamp – текущее время (в представленном коде проставляется автоматически, указывать не надо)
Не обязательные:

 
newClientOrderId – позволяет однозначно определить отмену, если не указано, генерируется автоматически
recvWindow – окно валидности запроса.
Возвращает:

{
  "symbol": "LTCBTC",
  "origClientOrderId": "myOrder1",
  "orderId": 1,
  "clientOrderId": "cancelMyOrder1"
}

Пример кода:

from binance_api import Binance
bot = Binance(
    API_KEY='D7...Ejj',
    API_SECRET='gwQ...u3A'
)
print('cancelOrder', bot.cancelOrder(
    orderId=123123,
    symbol='LTCBTC',
))

Текущие открытые пользователем ордера — /api/v3/openOrders

Вес – 1 если указана пара, либо (количество всех открытых для торгов пар) / 2.
Метод – GET
Параметры:
Обязательные:
timestamp – текущее время (в представленном коде проставляется автоматически, указывать не надо)
Не обязательные:
Не обязательные:
symbol – пара
recvWindow – окно валидности запроса.

Если параметр symbol не указан, возвращаются все открытые ордера по всем парам в массиве. В этом случае количество запросов к API считается равным количеству открытых для торговли пар.
Возвращает:

[
  {
    "symbol": "LTCBTC",
    "orderId": 1,
    "clientOrderId": "myOrder1",
    "price": "0.1",
    "origQty": "1.0",
    "executedQty": "0.0",
    "status": "NEW",
    "timeInForce": "GTC",
    "type": "LIMIT",
    "side": "BUY",
    "stopPrice": "0.0",
    "icebergQty": "0.0",
    "time": 1499827319559,
    "isWorking": trueO
  }
]

Пример кода:

from binance_api import Binance
bot = Binance(
    API_KEY='D7...Ejj',
    API_SECRET='gwQ...u3A'
)

# Все открытые ордера по паре
print('openOrders', bot.openOrders(
    symbol='LTCBTC',
))

# Все открытые ордера по всем парам
print('openOrders', bot.openOrders())

Все ордера пользователя вообще — /api/v3/allOrders

Метод позволяет получить вообще все ордера пользователя – открытые, исполненные или отмененные.
Вес – 5
Метод – GET
Параметры:
Обязательные:
symbol – пара
timestamp – текущее время (в представленном коде проставляется автоматически, указывать не надо)
Не обязательные:
orderId – Если указан, то вернутся все ордера, которые >= указанному. Если не указан, вернутся самые последние.
limit – кол-во возвращаемых ордеров (максимум 500, по умолчанию 500)
recvWindow – окно валидности запроса.
Возвращает:

[
  {
    "symbol": "LTCBTC",
    "orderId": 1,
    "clientOrderId": "myOrder1",
    "price": "0.1",
    "origQty": "1.0",
    "executedQty": "0.0",
    "status": "NEW",
    "timeInForce": "GTC",
    "type": "LIMIT",
    "side": "BUY",
    "stopPrice": "0.0",
    "icebergQty": "0.0",
    "time": 1499827319559,
    "isWorking": true
  }
]

Пример кода:

from binance_api import Binance
bot = Binance(
    API_KEY='D7...Ejj',
    API_SECRET='gwQ...u3A'
)

# Все ордера по паре
print('allOrders', bot.allOrders(
    symbol='LTCBTC',
))

Информация по аккаунту — /api/v3/account

Вес – 5
Метод – GET
Параметры:
Обязательные:
timestamp – текущее время (в представленном коде проставляется автоматически, указывать не надо)
Не обязательные:
recvWindow – окно валидности запроса.
Возвращает:

{
  "makerCommission": 15,
  "takerCommission": 15,
  "buyerCommission": 0,
  "sellerCommission": 0,
  "canTrade": true,
  "canWithdraw": true,
  "canDeposit": true,
  "updateTime": 123456789,
  "balances": [
    {
      "asset": "BTC",
      "free": "4723846.89208129",
      "locked": "0.00000000"
    },
    {
      "asset": "LTC",
      "free": "4763368.68006011",
      "locked": "0.00000000"
    }
  ]
}

Пример кода:

from binance_api import Binance
bot = Binance(
    API_KEY='D7...Ejj',
    API_SECRET='gwQ...u3A'
)

print('account', bot.account())

Список сделок пользователя — /api/v3/myTrades

Метод позволяет получить историю торгов авторизованного пользователя по указанной паре.
Вес – 5.
Параметры:
Обязательные:
symbol – пара
timestamp – текущее время (в представленном коде проставляется автоматически, указывать не надо)
Не обязательные:
limit – кол-во возвращаемых сделок (максимум 500, по умолчанию 500)
fromId – с какой сделки начинать вывод. По умолчанию выводятся самые последние.
recvWindow – окно валидности запроса.
Возвращает:

[
  {
    "id": 28457,
    "orderId": 100234,
    "price": "4.00000100",
    "qty": "12.00000000",
    "commission": "10.10000000",
    "commissionAsset": "BNB",
    "time": 1499865549590,
    "isBuyer": true,
    "isMaker": false,
    "isBestMatch": true
  }
]

Пример кода:

from binance_api import Binance
bot = Binance(
    API_KEY='D7...Ejj',
    API_SECRET='gwQ...u3A'
)

print('myTrades', bot.myTrades(
    symbol='LTCBTC'
))

Реклама



WAPI

Ввод и вывод средств

Подробное описание будет чуть позже, пока что примеры с комментариями

from binance_api import Binance
bot = Binance(
    API_KEY='D7F...Ejj',
    API_SECRET='gwQ...u3A'
)

# Получение адреса для депозита
print(bot.depositAddress(asset='BTC'))

# Вывод средств
print(bot.withdraw(asset='XRP', address='1wsdsr234234242', amount=12))

# История пополнений
print(bot.depositHistory(asset='BTC'))
print(bot.depositHistory())

# История выводов
print(bot.withdrawHistory())
print(bot.withdrawHistory(asset='ETH'))

# Узнать комиссию за вывод
print(bot.withdrawFee(asset='BTC'))

# Состояние аккаунта
print(bot.accountStatus())

# Состояние биржи
print(bot.systemStatus())

Понравилась статья? Поделить с друзьями:
  • Как найти значение выражение логарифма степени
  • Как найти результат по фотографии
  • Как найти скрытые диалоги в вайбере
  • Как составить персональный гороскоп по дате рождения бесплатно
  • Как найти пароль от роутера keenetic