Categorias
codificação

Como usar a API da Binance da biblioteca ccxt Python

Veja como usar a API para negociar automaticamente na mundialmente famosa exchange Bitcoin Binance.

Aplicativo de API

Inicie o aplicativo Binance e insira sua API na Pesquisa.

Selecione o item Gerenciamento de API na categoria Funções.

Escolha Criar API.

Insira o rótulo de chave apropriado e selecione o botão Avançar.

Encaixe o quebra-cabeça para segurança.

Em seguida, prossiga com a verificação de texto do telefone e a verificação de e-mail.

Após a conclusão, você receberá uma chave de API e uma chave secreta.

Marquei Habilitar Futuros para negociação de futuros e Permitir Transferência Universal para depósitos e saques entre negociação à vista e de futuros.

Instalar biblioteca ccxt

Em seguida, vamos instalar o ccxt, uma biblioteca Python, para usar facilmente a API da Binance.

Assumimos que você sabe como usar Python e prossiga.

Instruções e instruções de instalação podem ser encontradas no seguinte site:

CCXT – Biblioteca de negociação de criptomoedas eXchange

Você pode instalá-lo com o seguinte comando.

pip install ccxt

Pronto para usar a API da Binance

Primeiro, importe a biblioteca ccxt.

import ccxt

Este é o código para criar uma instância da Binance usando o valor da API Key solicitado anteriormente. O defaultType da parte de opções é spot, e a negociação de futuros é possível inserindo future.

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'
    }
})

Consulta de preço atual

Você pode simplesmente pesquisar da seguinte forma.

binance.fetch_ticker('BTC/USDT')

Consulta de saldo

Primeiro, vamos ver o código que recupera o saldo USDT de uma negociação de futuros. Insira o futuro no tipo de parâmetros. Digite spot para visualizar o saldo da transação spot.

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

Vamos também escrever algum código para obter o volume de moedas retidas em uma transação à vista.

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'])))

O código a seguir obtém o volume de uma moeda que entrou em uma posição curta na negociação de futuros. Observe a diferença com o código de negociação à vista.

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'])))

Entrando e Compensando Negociação de Futuros

Abaixo está o código para inserir uma posição curta. Tanto as negociações de mercado quanto as de limite são possíveis.

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'])

E aqui está o código de limpeza da posição curta. Da mesma forma, negociações de mercado e de limite podem ser feitas.

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'])

Entrar e fechar uma posição longa pode ser feito de maneira oposta, e a negociação à vista também pode ser realizada usando o mesmo método.

Transferência bancária entre spot e futuros

Para transferir dinheiro da conta à vista para a conta de futuros, basta consultar o saldo da conta à vista e transferir o valor diretamente para sua conta de futuros. Não há taxas para transferências de contas na 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')

O oposto também é verdade.

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')

Configuração de alavancagem

Para negociação de futuros, você pode definir a alavancagem. Aqui está o código: Basta alterar o número na parte de alavancagem.

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

Ver dados da transação

Você pode consultar dados de transações diárias de 1000 BTC escrevendo o seguinte código:

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

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

pt_PTPortuguês