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)