¿Cómo puedo hacer spot trading con Jupyter Notebook?
Descubre cómo puedes hacer trading spot simple llamando a las funciones en python-okx biblioteca en un bloc de notas de Jupyter.
1. ¿Cómo puedo ejecutar fragmentos de código Python en Jupyter Notebook?
Jupyter Notebook es una herramienta increíblemente potente y fácil de usar para el desarrollo y el análisis de datos en Python. Puedes ejecutar un servidor Jupyter Notebook en Windows, Mac OS o Linux. Este tutorial Proporciona una guía bastante completa sobre cómo poner en marcha un bloc de notas Jupyter.
2. ¿Cómo puedo instalar el paquete python-okx?
Cuando tengas Jupyter Notebook en funcionamiento, podrás instalar sencillamente el paquete python-okx ejecutando el pip de instalación de python-okx
en el ordenador o en el terminal (o mediante orden de comando en Windows):
3. ¿Cómo puedo crear claves de API?
Después de iniciar sesión en nuestra plataforma, ve a Trade > Simulación de trading para crear claves de API con fines de prueba
Abre la página de trading
Ve a Perfil y selecciona API de simulación de trading para crear claves de API.
Abre la API para crear claves de API
Crea claves de API para las diferentes cuentas principales o subcuentas que tengas.
Selecciona Crear clave de API
Selecciona la opción Trade en la sección Permisos para tradear con la clave de API.
Selecciona Trade en Permisos
Y ya tienes acceso a tu clave de API, tu clave secreta y tu frase de contraseña. Guárdalas de forma segura.
Guarda los detalles de tu API en tu ordenador usando variables de Phyton para usarlas más tarde.
Python1 api_key = "xxxxx" 2 secret_key = "xxxxx" 3 passphrase = "xxxxxx"
4. ¿Cómo puedo importar módulos de OKX?
En python-okx, hay varios módulos basados en nuestros módulos de API REST. Consulta nuestra guía para saber cómo importar módulos de OKX.
Tradear.
BlockTrading
Funding
Account
Convertir
Earning
SubAccount
MarketData
PublicData
TradingData
Status
NDBroker
FDBroker
Para importar el módulo Trade, ejecuta el siguiente comando:
1 import okx.Trade as Trade
¡Ya puedes utilizar todas las funciones disponibles en python-okx!
5. ¿Cómo puedo acceder a los datos de mercado de OKX?
Obtén más información sobre cómo acceder a nuestros datos de mercado y consulta el código que aparece a continuación.
1 import okx.MarketData as MarketData
2 flag = "1" # live trading: 0, demo trading: 1
3 marketDataAPI = MarketData.MarketAPI(flag=flag)
4 result = marketDataAPI.get_tickers(instType="SPOT")print(result)
6. ¿Cómo puedo comprobar los pares de trading disponibles?
Obtén más información sobre cómo ver los pares de trading disponibles y consulta el código que aparece a continuación.
1 import okx.Account as Account
2
3 # API initialization
4 apikey = "YOUR_API_KEY"
5 secretkey = "YOUR_SECRET_KEY"
6 passphrase = "YOUR_PASSPHRASE"
7
8 flag = "1" # Production trading: 0, Demo trading: 1
9
10 accountAPI = Account.AccountAPI(apikey, secretkey, passphrase, False, flag)
11
12 result = accountAPI.get_instruments(instType="SPOT")
13 print(result)
7. ¿Cómo puedo consultar el saldo de mi cuenta?
Para obtener más información sobre cómo ver el saldo de tu cuenta, lee nuestra guía específica.
Nota: para trading en spot en "efectivo" tdMode
, principalmente debes comprobar los cashBal
, frozenBal
parámetros para cada uno ccy
menos de detalles
, y el totalEq
parámetro.
1 import okx.Account as Account
2 flag = "1" # live trading: 0, demo trading: 1
3
4 accountAPI = Account.AccountAPI(api_key, secret_key, passphrase, False, flag)
5
6 result = accountAPI.get_account_balance()
7 print(result)
8. ¿Cómo puedo acceder a los cuatro modos de cuenta diferentes?
En nuestro sistema de cuentas unificadas, existen cuatro modos de cuenta:
Modo spot
Modo de spot y futuros
Modo de margen multimoneda
Modo margen de portafolio
Para entender la diferencia entre los diferentes modos de cuenta y cómo configurar el modo de cuenta a través de la IU web, lee nuestra guía específica.
En el modo de margen o modo de trading, el parámetro tdMode
determina cómo se aplicará margen a tu posición y necesitarás establecerlo cada vez que crees una nueva orden.
Para trading spot en los modos spot o de spot y futuros, establece tdMode
='cash'.
Para trading spot en los modos de margen multimoneda o de margen de portafolio, establece tdMode
= 'cross'.
A continuación encontrarás una rápida explicación de cómo averiguar en qué modo está configurada tu cuenta.
9. ¿Cómo puedo comprobar en qué modo está configurada mi cuenta?
Para obtener más información sobre cómo averiguar en qué modo está configurada tu cuenta, lee nuestra guía especializada e introduce el parámetro acctLv
.
1 import okx.Account as Account
2
3 flag = "1" # live trading: 0, demo trading: 1
4
5 accountAPI = Account.AccountAPI(api_key, secret_key, passphrase, False, flag)
6 result = accountAPI.get_account_config()
7 print(result)
8
9 if result['code'] == "0":
10 acctLv = result["data"][0]["acctLv"]
11 if acctLv == "1":
12 print("Simple mode")
13 elif acctLv == "2":
14 print("Single-currency margin mode")
15 elif acctLv == "3":
16 print("Multi-currency margin mode")
17 elif acctLv == "4":
18 print("Portfolio margin mode")
10. ¿Cómo puedo crear órdenes spot en los modos spot y de spot y futuros?
10.1 ¿Cómo puedo crear una orden límite?
Para obtener más información sobre cómo crear una orden límite en el modo spot o spot y futuros, lee nuestra guía especializada.
Esto es un ejemplo de compra de 0,01 BTC al precio de 19.000 USDC.
1 # limit order
2 result = tradeAPI.place_order(
3 instId="BTC-USDT",
4 tdMode="cash",
5 side="buy",
6 ordType="limit",
7 px="19000",
8 sz="0.01"
9 )
10 print(result)
11
12 if result["code"] == "0":
13 print("Successful order request,order_id = ",result["data"][0]["ordId"])
14 else:
15 print("Unsuccessful order request,error_code = ",result["data"][0]["sCode"], ", Error_message = ", result["data"][0]["sMsg"])
10.2 ¿Cómo puedo crear una orden de mercado?
Para obtener más información sobre cómo crear una orden de mercado en el modo spot o spot y futuros, lee nuestra guía especializada.
Esto es un ejemplo de compra de BTC por valor de 100 USD al precio de mercado vigente.
1 # market order
2 result = tradeAPI.place_order(
3 instId="BTC-USDT",
4 tdMode="cash",
5 side="buy",
6 ordType="market",
7 sz="100",
8 )
9 print(result)
10.3 ¿Cómo puedo utilizar el parámetro de moneda de destino tgtCcy al hacer trading spot?
En el trading spot el parámetro tgtCcy
determina la unidad del parámetro de tamaño sz
, que puede ser la moneda base o la moneda de cotización del par de trading. Por ejemplo, en el par BTC/USDC, la moneda base es BTC y la moneda de cotización es USDC.
Por defecto, tgtCcy
= quote_ccy para órdenes de compra, lo que significa que el sz
que has especificado está indicado en relación con la moneda de cotización. Entretanto, el valor por defecto de tgtCcy
para las órdenes de venta es base_ccy, lo que significa que el sz
que has especificado está indicado en relación con la moneda base.
En el ejemplo que aparece a continuación, estás a punto de crear una orden de mercado para comprar BTC por valor de 100 USD.
1 # market order
2 result = tradeAPI.place_order(
3 instId="BTC-USDT",
4 tdMode="cash",
5 side="buy",
6 ordType="market",
7 sz="100",
8 tgtCcy="quote_ccy" # this determines the unit of the sz parameter.
9 )
10 print(result)
10.4 ¿Cómo puedo utilizar el parámetro clOrdId de ID de orden cliente?
Cuando creas una orden, puedes indicar tu propio ID de orden cliente con el parámetro clOrdId
, que más tarde puede ser usado como identificador en lugar de usar ordId
al solicitar la cancelación, la corrección o la recuperación de una orden.
1 # market order
2 result = tradeAPI.place_order(
3 instId="BTC-USDT",
4 tdMode="cash",
5 side="buy",
6 ordType="market",
7 sz="100",
8 clOrdId="003" # you can define your own client defined order ID
9 )
10 print(result)
11. ¿Cómo puedo obtener detalles sobre una orden concreta?
Para obtener más información sobre cómo obtener detalles sobre una orden determinada, lee nuestra guía específica.
11.1 Usar ordId
1 result = tradeAPI.get_order(instId="BTC-USDT", ordId="497819823594909696")
2 print(result)
11.2 Usar clOrdId
1 result = tradeAPI.get_order(instId="BTC-USDT", clOrdId="002")
2 print(result)
12. ¿Cómo puedo cancelar una orden?
Para obtener más información sobre cómo cancelar una orden, lee nuestra guía específica.
También puedes usar clOrdId
en lugar de ordId
.
1 result = tradeAPI.cancel_order(instId="BTC-USDT", ordId = "489093931993509888")
2 print(result)
13. ¿Cómo puedo modificar una orden?
Para obtener más información sobre cómo modificar una orden, lee nuestra guía específica.
También puedes usar clOrdId
en lugar de ordId
.
1 result = tradeAPI.amend_order(
2 instId="BTC-USDT",
3 ordId="489103565508685824",
4 newSz="0.012"
5 )
6 print(result)
14. ¿Cómo puedo acceder a la lista de órdenes abiertas?
Para obtener más información sobre cómo acceder a la lista de órdenes abiertas, lee nuestra guía específica.
1 result = tradeAPI.get_order_list()
2 print(result)
15. ¿Cómo puedo acceder al historial de órdenes?
15.1 De los últimos 7 días
Para obtener más información sobre cómo acceder al historial de órdenes de los últimos 7 días, lee nuestra guía específica.
1 result = tradeAPI.get_orders_history(
2 instType="SPOT"
3 )
4 print(result)
15.2 De los últimos 3 meses
Para obtener más información sobre cómo acceder al historial de órdenes de los últimos 3 meses, lee nuestra guía específica.
1 result = tradeAPI.get_orders_history_archive(
2 instType="SPOT"
3 )
4 print(result)
16.¿Cómo puedo ir aún más lejos con la API de OKX en Jupyter Notebook?
Para ver más ejemplos, descarga toda la información sobre Jupyter Notebook aquí.
Si tienes alguna pregunta sobre nuestras API, puedes unirte a nuestra comunidad de API y enviar tus preguntas.