Рубрики
кодирование

Как использовать библиотеку Python ccxt Binance API

Вот как использовать API для автоматической торговли на всемирно известной бирже биткойнов Binance.

API-приложение

Запустите приложение Binance и введите свой API в поиск.

Выберите пункт «Управление API» в категории «Функции».

Выберите Создать API.

Введите соответствующую метку ключа и нажмите кнопку «Далее».

Установите головоломку для безопасности.

Затем перейдите к проверке текста телефона и электронной почты.

По завершении вы получите ключ API и секретный ключ.

Я проверил «Включить фьючерсы» для торговли фьючерсами и «Разрешить универсальный перевод» для депозитов и снятия средств между спотовой и фьючерсной торговлей.

Установить библиотеку ccxt

Затем давайте установим ccxt, библиотеку Python, чтобы легко использовать Binance API.

Мы предполагаем, что вы знаете, как использовать Python, и продолжим.

Инструкции и инструкции по установке можно найти на следующем сайте:

CCXT — торговая библиотека CryptoCurrency eXchange

Вы можете установить его с помощью следующей команды.

pip install ccxt

Готовый к использованию Binance API

Сначала импортируйте библиотеку ccxt.

import ccxt

Это код для создания экземпляра Binance с использованием запрошенного ранее значения ключа API. Тип опциона по умолчанию — спот, а торговля фьючерсами возможна при вводе фьючерса.

binance_access_key = "xxxxxxxxx"
binance_secret_key = "yyyyyyyyy"

binance = ccxt.binance(config={
    'apiKey': binance_access_key, 
    'secret': binance_secret_key,
    'enableRateLimit': True,
    'options': {
        'defaultType': 'future'
    }
})

Запрос текущей цены

Вы можете просто выполнить поиск следующим образом.

binance.fetch_ticker('BTC/USDT')

Запрос баланса

Во-первых, давайте посмотрим на код, который извлекает баланс USDT по фьючерсной сделке. Введите будущее в тип параметров. Введите спот, чтобы просмотреть баланс спотовой транзакции.

balance = binance.fetch_balance(params={"type": "future"})
print(balance['USDT']['free'])

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

balance_info = binance.fetch_balance(params={"type": "spot"})
for balance in balance_info['info']['balances']:
    if market['id'].find(balance['asset']) > -1:
        print(abs(float(balance['free'])))

Следующий код получает объем монеты, которая открыла короткую позицию при торговле фьючерсами. Обратите внимание на разницу с кодом спотовой торговли.

balance_info = binance.fetch_balance(params={"type": "future"})
for position in balance_info['info']['positions']:
    if position['symbol'] == market['id']:
        print(abs(float(position['positionAmt'])))

Вход и клиринг в торговле фьючерсами

Ниже приведен код для входа в короткую позицию. Возможна как рыночная, так и лимитная торговля.

symbol='BTC/USDT'

# market sell order
sell_order = binance.create_market_sell_order(symbol=symbol, amount=0.1)

# limit sell order
btc = binance.fetch_ticker(symbol)
sell_order = binance.create_limit_sell_order(symbol=symbol, amount=0.1, price=btc['last'])

А вот и короткий код очистки позиции. Точно так же можно совершать рыночные и лимитные сделки.

symbol='BTC/USDT'

# market buy order
buy_order = binance.create_market_buy_order(symbol=symbol, amount=0.1)

# limit buy order
btc = binance.fetch_ticker(symbol)
buy_order = binance.create_limit_buy_order(symbol=symbol, amount=0.1, price=btc['last'])

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

Банковский перевод между спот и фьючерсом

Чтобы перевести наличные со спотового счета на фьючерсный, вы просто запрашиваете баланс денежного счета и переводите сумму непосредственно на свой фьючерсный счет. Комиссия за переводы со счетов на Binance Exchange не взимается.

balance_spot = binance.fetch_balance(params={"type": "spot"})
balance_spot_free = balance_spot['USDT']['free']
if balance_spot_free > 0:
    transfer = binance.transfer('USDT', balance_spot_free, 'spot', 'future')

Обратное тоже верно.

balance_future = binance.fetch_balance(params={"type": "future"})
balance_future_free = balance_future ['USDT']['free']
if balance_future_free > 0:
    transfer = binance.transfer('USDT', balance_future_free, 'future', 'spot')

Настройка кредитного плеча

Для торговли фьючерсами можно установить кредитное плечо. Вот код: Просто измените число в части кредитного плеча.

markets = binance.load_markets()
market = binance.market('BTC/USDT')
resp = binance.fapiPrivate_post_leverage({
    'symbol': market['id'],
    'leverage': 2
})

Просмотр данных о транзакциях

Вы можете запросить данные о ежедневных транзакциях на 1000 BTC, написав следующий код:

candles = binance.fetch_ohlcv(
    symbol='BTC/USDT', 
    timeframe='1d', 
    since=None,
    limit=1000)

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

ru_RUРусский