API de Coinbase Pro / Guía de Cryptogeek

API de Coinbase Pro / Guía de Cryptogeek
Esta página está traducida automáticamente. Abrir página en el idioma original.
Apr 24, 2022 0
API de Coinbase Pro / Guía de Cryptogeek

Cada intercambio tiene características especiales para atraer a los comerciantes. Coinbase Pro tiene un código especial que ayuda a automatizar y simplificar el comercio. Este código es la API de Coinbase Pro. 
Es absolutamente gratuito crear una cuenta, así como habilitar la API de Coinbase Pro.

Diferencias entre Coinbase y Coinbase Pro

Las dos plataformas tienen algo en común. Al menos Coinbase Global Inc posee ambos y las interfaces de usuario se parecen entre sí.

Sin embargo, es obvio que Coinbase y Coinbase Pro comparten bastantes diferencias. Coinbase es más bien un mercado de criptomonedas, mientras que Coinbase Pro es un intercambio de criptomonedas en toda regla. Coinbase se asemeja a una billetera de criptomonedas, mientras que Coinbase Pro es más probable que sea una plataforma de negociación.

Los atributos y puntos finales innovadores hacen que el comercio en Coinbase Pro API sea mucho más rápido y mejor que en Coinbase.

Ahora Coinbase Pro API está disponible para más de 100 países.

Pros y Contras de usar la API de Coinbase Pro

Aquí hay una breve lista de pros y contras que los comerciantes deben tener en cuenta.

Pro:

● Simple
● Intuitivo
● Totalmente regulado en los Estados Unidos
● Alta liquidez
● Admite fiat (USD, EUR, GBP)
● Admite más de 120 criptomonedas

Desventaja:

● Tarifas altas
● Soporte al cliente lento
● Demasiado complicado para los novatos

En resumen, la API de Coinbase Pro tiene el doble de ventajas que de desventajas.

¿Coinbase Pro Cobra Tarifas?

Sí, lo hace. Coinbase Pro toma las tarifas comerciales habituales de sus usuarios. Ocurre después de un período de 30 días cuando se calcula el precio final. Para la comodidad del operador, la suma se toma en USD.

Como de costumbre, las tarifas se dividen en "creador" y "tomador":

1. Un usuario se convierte en tomador cuando una orden de mercado colocada se llena de inmediato. Comisión: desde el 0,04% hasta el 0,50%.

2. Aser se convierte en fabricante cuando un pedido realizado no se completa de una vez y se incluye en la cartera de pedidos. Por lo tanto, es necesario esperar hasta que otro operador lo iguale. Comisión: 0,00% hasta 0,50%.

3. Y cuando el pedido se llena solo parcialmente, se pagan ambas tarifas. Al principio, se paga una tarifa de tomador que coincide con la parte llena, mientras que el resto del pedido se mueve en el libro de pedidos hasta más tarde. Y cuando se iguala, se paga una tarifa de creador.

Esta tabla muestra el volumen de negociación actual para ambas tarifas:

¿Otros Intercambios tienen una API?

Muchos otros intercambios tienen una API. Es por eso que la API de Coinbase Pro no puede ser la única opción para los comerciantes. Aquí hay solo varios intercambios con API:

Binance
BitMEX
HitBTC
Kraken
Géminis
Kucoína
Bittrex
Bitfinex

Después de completar la investigación adecuada, los comerciantes pueden elegir entre los intercambios proporcionados o encontrar otras plataformas que satisfagan sus necesidades. Sin embargo, volvamos a Coinbase Pro.

Crear una cuenta en Coinbase Pro

Los operadores solo tienen dos métodos para crear una cuenta en esta plataforma:

1. Si un comerciante ya tiene una cuenta de Coinbase, lo único que queda es conectarla con Coinbase Pro. Entonces la transferencia de fondos sería posible entre las cuentas.

2. O simplemente visite el Página de inicio de Coinbase Pro e inicie una cuenta allí mismo.

Después de hacer clic en el botón "Comenzar", los recién llegados deben completar los detalles básicos de su cuenta, verificar una dirección de correo electrónico y habilitar la autenticación de dos factores. Para completar el registro, los usuarios deben proporcionar cierta información personal: nombre, fecha de nacimiento, dirección, intención, fuente de fondos, ocupación, incluida una foto de identificación y un enlace a una cuenta bancaria.

Qué es una clave API de Coinbase?

Para tratar con una API de Coinbase Pro, los operadores requieren una clave de API de Coinbase. En primer lugar, haga clic en "API" y luego en el botón "+ Nueva clave de API". Luego, los usuarios deben elegir los permisos para la clave API, establecer el apodo y una frase de contraseña, un nivel adicional de autenticación y una función de seguridad realizada por Coinbase.

Antes de que la clave API pueda comenzar a funcionar, los operadores deben completar un paso más: ingresar un código de verificación para obtener una clave secreta. Además, los usuarios deben mantener esa clave secreta en un lugar seguro para no perderla.

Finalmente, se crea la API de Coinbase Pro. Sigamos adelante y hablemos de sus habilidades.

Comandos Útiles de la API de Python Coinbase Pro

Cada operador puede elegir su cliente favorito de cinco admitidos:

Pitón
Ve
Java
Rust
C#

Python es el cliente más popular para escribir comandos en la API de Coinbase Pro. Es por eso que los ejemplos consistirían solo en eso.

Empecemos:

instalación de pip cbpro

Información de Pares de Negociación Con Python Coinbase API

En la API de Coinbase Pro, la biblioteca de Python usa get_productos punto final para obtener la información sobre los pares de negociación. El siguiente paso es importar la biblioteca, inicializar el cliente y obtener los datos de los productos:

importar cbpro 
importar pandas como pd 
c = cbpro.Cliente público() 
datos = pd.Estructura de datos (c. get_products()) 
datos.cola().

Datos De Precios Con Python Coinbase API

Para obtener la información sobre los datos de precios, utilice get_product_ticker (en inglés) endpoint y especifique el parámetro ticker. Para Cardano sería:

ticker = c. get_product_ticker(id_producto= 'ADA-USD') 
teletipo

La segunda forma de obtener la fecha es con la ayuda de API REST de Coinbase Pro puntos finales:

importar solicitudes ticker = requests. get ('https://api.pro.coinbase.com/products/ADA-USD/ticker'). json() 
teletipo

Datos Históricos Con La API De Coinbase De Python

Para obtener la información sobre los datos históricos, utilice get_product_histórico_rates punto final. Es posible especificar la granularidad, la fecha de inicio y finalización.

Mire lo simple que es obtener datos históricos de ETH-USD con los parámetros predeterminados y organizarlos todos en un marco de datos ordenado:

histórico = pd.DataFrame(c. get_product_historic_rates (product_id='ETH-USD')) histórico.columnas= ["Fecha", "Abierto","Alto","Bajo","Cerrar","Volumen"] 
histórico['Fecha'] = pd.to_datetime(histórico['Fecha'], unidad='s') 
hist.set_index ('Fecha', inplace=True) 
hist.sort_values(por= 'Fecha', ascendente=Verdadero, en su lugar=Verdadero) 
hist

Si es necesario, más tarde, estos datos podrían usarse para crear un indicador simple y producir un gráfico de velas.

Acceso A Indicadores Técnicos Con Python Coinbase API

Desafortunadamente, la API de Coinbase Pro no ofrece ningún indicador preestablecido. Sin embargo, es posible crearlos utilizando las funciones integradas de pandas o simplemente confiando en la biblioteca btalib.

Así es como se crea un indicador simple de 20 SMA con pandas:

histórico ['20 SMA'] = histórico.Cerca.rodando(20).significar() 
hist.cola()

Y teniendo todos estos datos, es posible crear un gráfico interactivo:

importar plotly.graph_objects como ir 
fig = ir.Figura (datos=[ir.Vela(x = histórico.Indice, 
open = histórico ['Abierto'], 
alto = histórico ['Alto'], 
bajo = histórico ['Bajo'], 
cerrar = histórico ['Cerrar'],), 
Ve.Dispersión (x=).índice, y=histórico ['20 SMA'], línea=dict (color= 'púrpura', ancho=1))]) 
higo.Mostrar()

Datos del Libro de Pedidos

Para acceder a los datos de la cartera de pedidos, utilice el get_product_order_book (en inglés) Punto final de la API de Coinbase Pro. Aquí hay un ejemplo de obtención de datos para BTC-USD y organización de las ofertas y solicitudes.

libro de pedidos = c. get_product_order_book ('BTC-USD') 
libro de pedidos

El siguiente paso es crear los dos marcos de datos:

pujas = pd.DataFrame(libro de pedidos ['pujas']) 
pregunta = pd.DataFrame (libro de pedidos ['asks']) 
oferta.cabeza()

Ahora fusionándolos y renombrando las columnas para que sean más informativas:

df = pd.fusionar (pujas, preguntas, left_index=True, right_index=True) 
df = df.rename ({"0_x": "Precio de la Puja","1_x": "Tamaño de la Puja", "2_x": "Importe de la Puja", 
"0_y":"Precio de venta","1_y": "Tamaño de venta","2_y": "Cantidad de venta"}, axis= 'columnas') 
df.cabeza()

Datos de Operaciones

Para obtener los datos de las operaciones, utilice el get_product_trades punto final. No olvide ingresar el activo que obtiene los datos en; ETH-USD en este ejemplo.

trades = pd. DataFrame (peticiones. get ('https://api.pro.coinbase.com/products/ETH-USD/trades'). json()) 
Trades.cola()

Para no atascar la biblioteca de Python, use la API REST.

Cómo usar la API de WebSocket de Coinbase Pro?

Para acceder a los WebSockets de Coinbase Pro, use el Cliente de Webscoket punto final. Gracias a él, los operadores pueden mantenerse actualizados fácilmente sobre los datos interesantes.

importar cbpro 
csm = cbpro.WebsocketClient(url="wss://ws-alimentación.pro.coinbase.com", productos="ADA-USD", 
canales=["ticker"])

Para cerrar el WebSocket, simplemente use un comando simple:

wsc.cerca()

El siguiente comando ayuda a recopilar los datos de precios del ticker hasta un cierto número de mensajes WebSocket e imprimirlos:

tiempo de importación, cbpro 
clase myWebsocketClient (cb).Cliente WebsocketClient): 
def en_abierto (self): 
auto.url = "wss://ws-alimentación.pro.coinbase.com/" 
auto.productos = ["ETH-USDT"] 
auto.canales=["ticker"] 
auto.conta_de_mensaje = 0 
def on_message(self, mensaje): 
auto.message_count += 1 
si 'precio' en msg y 'tipo' en el msg: 
print ("Tipo de mensaje:", msg ["tipo"], 
"\t@ {:.3f}".formato(float(msg["precio"]))) 
def en_cerrar (self): 
impresión ("Cierre") 
wsClient = myWebsocketClient() 
wsClient.empezar() 
imprimir(wsClient.url, wsClient.productos, wsClient.canal) 
mientras (wsClient.message_count < 50): 
print ("\nmessage_count =", "{} \n".formato(wsClient.message_count)) 
tiempo.dormir(1) 
wsClient.cerca()

Ejecución de operaciones en la API de Coinbase Pro

Con los comandos API de Python Coinbase, es bastante sencillo ejecutar operaciones. Echemos un vistazo a dos ejemplos: ejecutar una operación en ETH cuando BTC alcanza un precio determinado y ejecutar una operación en ETH cuando BTC se mueve un 5% en los últimos 5 minutos.

Cómo Ejecutar una Operación en ETH Cuando BTC Alcanza un Precio Determinado?

Ahora averigüemos cómo lanzar correctamente una orden con requisitos específicos: comience una operación en ETH cuando BTC alcance un precio determinado (por ejemplo, $38500).

1. Establecer una base de orden;
2. Cree un bucle que verifique si el nivel de precios se alcanza o no;
3. Una vez que se alcanza el precio, se ejecutará una orden de mercado; 
4. Espere unos segundos y verifique si el pedido se ha completado realmente. 

Después de configurar la lógica, es hora de importar las bibliotecas relevantes y configurar las API:

importar cbpro 
importar base64 
importar json desde time 
importar sueño 
clave = '' 
secreto = '' 
frase = '' 
codificado = json.vertederos(secreto).codificar() 
b64secret = base64.código b64 (codificado) 
auth_client = cbpro.AuthenticatedClient (clave=clave, b64secret=secreto, frase de contraseña=frase de contraseña) 
c = cbpro.Cliente público()

En cuanto a la lógica comercial principal, aquí hay un aviso importante para que el pedido sea más seguro. Para hacerlo, coloque una orden de límite tomando el precio actual de ETH-USD y agregando unos pocos dólares en la parte superior.

si bien es Cierto: 
tratar: 
ticker = c. get_product_ticker(id_producto= 'BTC-USD') 
excepto Excepción como e: 
print (f'Error obteniendo datos de ticker: {e}') 
si float (ticker['precio']) >= 38500.00: 
tratar: 
límite = c. get_product_ticker(id_producto= 'ETH-USD') 
excepto Excepción como e: 
print (f'Error obteniendo datos de ticker: {e}') 
tratar: 
order=auth_client.place_limit_order(id_producto= 'ETH-USDT', 
side= "comprar", 
precio=flotante (límite ['precio'])+2, 
tamaño= '0.007') 
excepto Excepción como e: 
print (f'Error al realizar el pedido: {e}') 
dormir(2) 
tratar: 
check = pedido ['id'] 
check_order = auth_client.get_order (id_orden=comprobar) 
excepto Excepción como e: 
imprima(f'unable para comprobar orden. Puede ser rechazada. {e}') 
si check_order['estado'] == 'hecho': 
imprimir ('Pedido realizado correctamente') 
de impresión(check_order) 
romper 
otra cosa: 
imprimir ('El pedido no coincide') 
romper 
otra cosa: 
imprimir (f) No se cumple el requisito. El precio del ticker está en {ticker ["price"]}') 
dormir(10)

Cómo ejecutar una operación de ETH cuando BTC se mueve un 5% en los últimos 5 minutos?

La tarea se complica un poco. El nuevo bucle tendrá que obtener los precios de las dos criptomonedas y calcular el cambio porcentual en el medio:

● Si el cambio porcentual es inferior al 5%, el programa dormirá durante 5 minutos más;

● Si el cambio porcentual es igual o superior al 5%, la operación se ejecutará.

Espere unos segundos después del logro y vuelva a verificar la operación.

si bien es Cierto: 
tratar: 
ticker_old = c. get_product_ticker(id_producto= 'BTC-USD') 
excepto Excepción como e: 
print (f'Error obteniendo datos de ticker: {e}') 
dormir(300) 
tratar: 
ticker_new = c. get_product_ticker(id_producto= 'BTC-USD') 
excepto Excepción como e: 
print (f'Error obteniendo datos de ticker: {e}') 
porcentaje = ((float(ticker_new['precio']) - float(ticker_old['precio']))*100)/float(ticker_old['precio']) 
si el porcentaje >= 5: 
tratar: 
límite = c. get_product_ticker(id_producto= 'ETH-USDT') 
excepto Excepción como e: 
print (f'Error obteniendo datos de ticker: {e}') 
tratar: 
order=auth_client.place_limit_order(id_producto= 'ETH-USDT', 
side= "comprar", 
precio=flotante (límite ['precio'])+2, 
tamaño= '0.007') 
excepto Excepción como e: 
print (f'Error al realizar el pedido: {e}') 
dormir(2) 
tratar: 
check = pedido ['id'] 
check_order = auth_client.get_order (id_orden=comprobar) 
excepto Excepción como e: 
imprima(f'unable para comprobar orden. Puede ser rechazada. {e}') 
si check_order['estado'] == 'hecho': 
imprimir ('Pedido realizado correctamente') 
de impresión(check_order) 
romper 
otra cosa: 
imprimir ('El pedido no coincide') 
romper 
otra cosa: 
imprimir (f) No se cumple el requisito. El cambio porcentual está en {por ciento}')

Cómo cancelar pedidos con la API de Coinbase Pro?

Es muy sencillo cancelar un pedido. Ir a la cancelar pedido Punto final de la API e introduzca el ID de pedido como parámetro:

cliente.cancel_order (order_id = "ID-DE-PEDIDO-AQUÍ")

Conclusion

En este artículo, analizamos más de cerca la API de Coinbase Pro y dimos algunos ejemplos de código de Python. El código completo se puede encontrar en la plataforma En GitHub pagina.

Las opiniones y valoraciones expresadas en el texto son las opiniones del autor del artículo y pueden no representar la posición de Cryptogeek. No olvide que invertir en criptomonedas y operar en el intercambio está asociado con el riesgo. Antes de tomar decisiones, asegúrese de hacer su propia investigación sobre el mercado y los productos que le interesan.


No hay comentarios aún. ¡Sé el primero!