Coinbase Pro API / guia por Cryptogeek
Cada bolsa tem características especiais para atrair comerciantes. Coinbase Pro tem um código especial que ajuda a automatizar e simplificar a negociação. Este código é a API Coinbase Pro.
É absolutamente livre para criar uma conta, bem como ativar a API Coinbase Pro.
Coinbase e Coinbase Pro diferenças
As duas plataformas têm algo em comum. Pelo menos a Coinbase Global Inc possui ambos e os UIs se assemelham.
No entanto, é óbvio que Coinbase e Coinbase Pro compartilham algumas diferenças. Coinbase é um mercado de criptomoedas, enquanto o Coinbase Pro é uma troca de criptografia completa. Coinbase assemelha-se a uma carteira de criptomoeda, enquanto o Coinbase Pro é mais provável uma plataforma de negociação.
Atributos e endpoints inovadores tornam a negociação na API Coinbase Pro muito mais rápida e melhor do que na Coinbase.
Agora, a API Coinbase Pro está disponível para mais de 100 países.
Prós e contras do uso da API Coinbase Pro
Aqui está uma pequena lista de prós e contras que os comerciantes devem levar em consideração.
Pros:
● Simples
● Intuitivo
● Totalmente regulamentado nos EUA
● Liquidez
● Suporta fiat (USD, EUR, GBP)
● Suporta mais de 120 criptomoedas
Contra:
● Taxas altas
● Suporte lento ao cliente
● Muito complicado para iniciantes
Resumindo, a API Coinbase Pro tem o dobro de prós e não contras.
O Coinbase Pro Cobra Taxas?
Sim, sim. Coinbase Pro leva as taxas de negociação habituais de seus usuários. Isso acontece após um período de 30 dias em que o preço final é calculado. Para a conveniência do comerciante, a soma é tomada em USD.
Como geralmente, as taxas são divididas em" maker "e"taker":
1. Um usuário se torna um tomador quando uma ordem de mercado colocada é preenchida imediatamente. Taxa: de 0,04% até 0,50%.
2. Aser se torna um criador quando um pedido colocado não é preenchido de uma só vez e vai no livro de Pedidos. Portanto, há uma necessidade de esperar até que seja correspondido por outro comerciante. Taxa: 0.00% até 0.50%.
3. E quando o pedido é preenchido apenas parcialmente, ambas as taxas são pagas. No início, uma taxa de tomador correspondente à parte preenchida é paga, enquanto o resto do pedido se move no livro de pedidos até mais tarde. E quando é combinado, uma taxa de fabricante é paga.
Esta tabela mostra o volume de negociação atual para ambas as taxas:
Outras trocas têm uma API?
Muitas outras trocas têm uma API. É por isso que a API Coinbase Pro não pode ser a única escolha para os traders. Aqui estão apenas várias trocas com API:
● Binance
● BitMex
● HitBTC
● Kraken
● Gemeos
● KuCoin
● Bittrex
● Bitfinex
Depois de concluir a pesquisa adequada, os comerciantes podem escolher entre as trocas fornecidas ou encontrar algumas outras plataformas que atendam às suas necessidades. No entanto, vamos voltar ao Coinbase Pro.
Criando uma conta no Coinbase Pro
Os comerciantes têm apenas dois métodos de criação de uma conta nesta plataforma:
1. Se um trader já tiver uma conta Coinbase, a única coisa que resta é conectá-la ao Coinbase Pro. Então a transferência de fundos seria possível entre as contas.
2. Ou apenas visite o Página inicial do Coinbase Pro e lançar uma conta ali mesmo.
Tendo clicado no botão" Começar", os recém-chegados precisam preencher os detalhes básicos da Conta, Verificar um endereço de E-mail e ativar a autenticação de dois fatores. Para concluir o registro, os usuários devem fornecer algumas informações pessoais: Nome, Data de nascimento, endereço, intenção, fonte de fundos, ocupação, incluindo uma foto de identificação e um link para uma conta bancária.
O que é uma chave de API Coinbase?
Para lidar com uma API Coinbase Pro, os comerciantes exigem uma chave de API Coinbase. Em primeiro lugar, clique no botão " API " e depois no botão "+ nova chave de API". Em seguida, os usuários precisam escolher permissões para a chave da API, definir o apelido e uma senha, um nível extra de autenticação e um recurso de segurança realizado pela Coinbase.
Antes que a chave da API possa começar a funcionar, os comerciantes precisam concluir mais uma etapa: insira um código de verificação para obter uma chave secreta. Além disso, os usuários devem manter essa chave secreta em um lugar seguro para não perdê-la.
Finalmente, a API Coinbase Pro é criada. Vamos seguir em frente e falar sobre suas habilidades.
Comandos úteis da API do Python Coinbase Pro
Cada comerciante pode escolher seu cliente favorito de cinco suportados:
● Jiboia
● Vá
● Hipoteca
● Ferrugem
● C#
Python é o cliente mais popular para escrever comandos na API Coinbase Pro. É por isso que os exemplos consistiriam apenas nisso.
Vamos começar:
pip instalar cbpro
Informações de pares de negociação com Python Coinbase API
Na biblioteca python da API do Coinbase Pro usa get_products
endpoint para obter as informações sobre pares de negociação. O próximo passo é importar a biblioteca, inicializar o cliente, obter dados de produtos:
importação cbpro
importar pandas como pd
c = cbpro.PublicClient()
dados = pd.DataFrame(C. get_products())
dado.cauda().
Dados de preço com Python Coinbase API
Para obter as informações sobre dados de Preços, use get_product_ticker
endpoint e especifique o parâmetro ticker. Para Cardano seria:
ticker = C. get_product_ticker (product_id= 'ADA-USD')
cotacao
A segunda maneira de obter a data é com a ajuda de Coinbase Pro REST API extremidade:
importar solicitações ticker = requests. get('https://api.pro.coinbase.com/products/ADA-USD/ticker'). json ()
cotacao
Dados históricos com Python Coinbase API
Para obter informações sobre dados históricos, use get_product_historic_rates
extremidade. É possível especificar a granularidade, data de início e término.
Veja como é simples obter dados históricos do ETH-USD com os parâmetros padrão e organizar tudo em um quadro de dados ordenado:
histórico = pd.DataFrame(C. get_product_historic_rates (product_id='ETH-USD')) histórico.colunas= ["Data","abrir","alto", "baixo", "fechar", "Volume"]
histórico ['Data'] = pd.to_datetime (histórico['data'], unidade='s')
historico.set_index ('Date', inplace=True)
historico.sort_values (by = 'Date', ascending=True, inplace=True)
historico
Se necessário, posteriormente, esses dados podem ser usados para criar um indicador simples e produzir um gráfico de velas.
Acessando indicadores técnicos com Python Coinbase API
Infelizmente, a API do Coinbase Pro não oferece indicadores predefinidos. No entanto, é possível torná-los usando recursos pandas integrados ou apenas contando com a biblioteca btalib.
É assim que criar um indicador SMA 20 simples com pandas:
histórico ['20 SMA'] = histórico.Fechar.rolamento(20).significar()
historico.cauda()
E tendo todos esses dados, é possível criar um gráfico interativo:
importar plotly.graph_objects como ir
fig = ir.Figura (dados = [ir.Castiçal (x = histórico.indice,
aberto = histórico ['aberto'],
alto = histórico ['alto'],
baixo = histórico ['baixo'],
fechar = histórico ['Fechar'],),
Vá.Dispersão (x = histórico.índice, y = histórico ['20 SMA'], linha = dict (cor= 'Roxo', Largura=1))])
figo.mostrar()
Dados Do Livro De Pedidos
Para alcançar os dados do Livro de Pedidos, use o get_product_order_book
Coinbase Pro API endpoint. Aqui está um exemplo de obtenção de dados para BTC-USD e organização dos lances e pedidos.
order_book = C. get_product_order_book ('BTC-USD')
order_book
O próximo passo é criar os dois quadros de dados:
lances = pd.DataFrame (order_book ['lances'])
pergunta = pd.DataFrame (order_book ['asks'])
oferta.cabeca()
Agora, mesclando-os e renomeie as colunas para serem mais informativas:
DF = pd . mesclar (lances, asks,left_index = True, right_index = True)
df = df.renomear({"0_x":"preço do LANCE","1_x":"Tamanho do LANCE", "2_x": "valor do LANCE",
"0_y": "Ask Price","1_y":" Ask Size","2_y":" ask Amount"}, axis='columns')
df.cabeca()
Dados De Negociações
Para obter os dados de negociações, use o get_product_trades
extremidade. Não se esqueça de inserir o ativo obtendo os dados em; ETH-USD neste exemplo.
trades = pd. DataFrame (requests. get('https://api.pro.coinbase.com/products/ETH-USD/trades'). json ())
negocio.cauda()
Para não travar a biblioteca Python, use a API REST.
Como usar a API do Coinbase Pro WebSocket?
Para acessar os WebSockets do Coinbase Pro, use o WebscoketClient
extremidade. Graças a isso, os comerciantes podem facilmente ficar atualizados sobre os dados interessantes.
importação cbpro
wsc = cbpro. WebsocketClient (url= "wss: / / ws-feed. pro. coinbase. com", products="ADA-USD",
canais=["ticker"])
Para fechar o WebSocket, basta usar um comando simples:
wsc.fechar()
O próximo comando ajuda a coletar os dados de preço do ticker até um certo número de mensagens do WebSocket e imprimi-los:
tempo de importação, cbpro
classe myWebsocketClient (cbpro.WebsocketClient):
Def on_open (self):
auto.url = "wss://ws-feed.pro.coinbase.com/"
auto.produtos = ["ETH-USDT"]
auto.canais = ["ticker"]
auto.message_count = 0
Def on_message (self, msg):
auto.message_count + = 1
se 'Preço' em msg e 'tipo' em msg:
Imprimir ("Tipo de Mensagem:", msg ["tipo"],
"\T@ {:.3F}".formato(float(msg["preço"])))
Def on_close (self):
imprimir ("Fechar")
wsClient = myWebsocketClient()
wsClient.iniciar()
imprimir (wsClient.url, wsClient.produtos, wsClient.satelite)
enquanto (wsClient.message_count < 50):
imprimir ("\nmessage_count =", "{} \n".formato (wsClient.message_count))
tempo.sono (1)
wsClient.fechar()
Executando negociações na API Coinbase Pro
Com os comandos da API python Coinbase, é bastante simples executar negociações. Vamos dar uma olhada em dois exemplos: executar uma negociação no ETH quando o BTC atinge um determinado preço e executar uma negociação ETH quando o BTC se move 5% nos últimos 5 minutos.
Como executar uma negociação no ETH quando o BTC atinge um determinado preço?
Agora vamos descobrir como iniciar corretamente um pedido com requisitos especificados: Inicie uma negociação no ETH quando o BTC atingir um determinado preço (por exemplo, $38500).
1. Definir uma base de pedido;
2. Crie um loop que verificará se o nível de preço foi atingido ou não;
3. Assim que o preço for atingido, uma ordem de mercado será executada;
4. Aguarde alguns segundos e verifique se o pedido foi realmente preenchido.
Depois de definir a lógica, é hora de importar as bibliotecas relevantes e configurar as APIs:
importação cbpro
import base64
importar json do tempo
importar sono
chave = ''
segredo = ''
frase = ''
codificado = json.dumps (segredo).codificar()
b64secret = base64.b64encode (codificado)
auth_client = cbpro.AuthenticatedClient (key = key, b64secret = secret, passphrase=passphrase)
c = cbpro.PublicClient()
Quanto à principal lógica de negociação, aqui está um aviso importante para tornar o pedido mais seguro. Para fazer isso, faça um pedido limite pegando o preço atual do ETH-USD e adicionando alguns dólares no topo.
enquanto verdadeiro:
tentar:
ticker = C. get_product_ticker (product_id='BTC-USD')
exceto exceção como e:
imprimir (F'Error obtendo dados do ticker: {e}')
se float (ticker ['preço']) > = 38500.00:
tentar:
limite = C. get_product_ticker (product_id= 'ETH-USD')
exceto exceção como e:
imprimir (F'Error obtendo dados do ticker: {e}')
tentar:
ordem = auth_client.place_limit_order (product_id='ETH-USDT',
side = "comprar",
preço = float (limite['preço'])+2,
tamanho= '0.007')
exceto exceção como e:
imprimir (F'Error colocando ordem: {e}')
sono (2)
tentar:
verifique = ordem ['id']
check_order = auth_client.get_order (order_id = verificar)
exceto exceção como e:
imprimir (F'unable para verificar a ordem. Pode ser rejeitado. {e}')
se check_order ['status'] = = 'Concluído':
imprimir ('pedido feito com sucesso')
imprimir (check_order)
quebrar
mais:
imprimir('o pedido não foi correspondido')
quebrar
mais:
imprimir (F'o requisito não é alcançado. O preço do ticker está em {ticker ["preço"]}')
dormir(10)
Como executar uma negociação ETH quando o BTC se move 5% nos últimos 5 minutos?
A tarefa fica um pouco complicada. O novo loop terá que obter os preços das duas criptomoedas e calcular a variação percentual entre elas:
● Se a Mudança percentual for inferior a 5% , o programa dormirá por mais 5 minutos;
● Se a variação percentual for igual ou superior a 5%, a negociação será executada.
Aguarde alguns segundos após a realização e verifique a negociação novamente.
enquanto verdadeiro:
tentar:
ticker_old = C. get_product_ticker (product_id='BTC-USD')
exceto exceção como e:
imprimir (F'Error obtendo dados do ticker: {e}')
dormir(300)
tentar:
ticker_new = C. get_product_ticker (product_id='BTC-USD')
exceto exceção como e:
imprimir (F'Error obtendo dados do ticker: {e}')
por cento = ((float (ticker_new['preço']) - float (ticker_old ['preço']))*100) / float (ticker_old ['preço'])
se por cento > = 5:
tentar:
limite = C. get_product_ticker (product_id= 'ETH-USDT')
exceto exceção como e:
imprimir (F'Error obtendo dados do ticker: {e}')
tentar:
ordem = auth_client.place_limit_order (product_id='ETH-USDT',
side = "comprar",
preço = float (limite['preço'])+2,
tamanho= '0.007')
exceto exceção como e:
imprimir (F'Error colocando ordem: {e}')
sono (2)
tentar:
verifique = ordem ['id']
check_order = auth_client.get_order (order_id = verificar)
exceto exceção como e:
imprimir (F'unable para verificar a ordem. Pode ser rejeitado. {e}')
se check_order ['status'] = = 'Concluído':
imprimir ('pedido feito com sucesso')
imprimir (check_order)
quebrar
mais:
imprimir('o pedido não foi correspondido')
quebrar
mais:
imprimir (F'o requisito não é alcançado. A Mudança percentual está em {porcentagem}')
Como cancelar pedidos com a API Coinbase Pro?
É muito simples cancelar um pedido. Vá para o cancel_order
Endpoint da API e insira o ID DO pedido como um parâmetro:
cliente.cancel_order (order_id = "ORDER-ID-HERE")
Conclusao
Neste artigo, examinamos mais de perto a API Coinbase Pro e demos alguns exemplos de código python. O código completo pode ser encontrado na plataforma GitHub pagina.