Tutorial

Programar órdenes de trading con la API de Alpaca en Python

Aprende a automatizar estrategias de trading programando órdenes de compra y venta con Python usando la API de Alpaca.

En las plataformas de trading, puedes solicitar órdenes de compra o venta sobre un activo financiero.

Pantalla de plataforma de trading mostrando una orden de compra de Bitcoin con detalles como el símbolo BTCUSD y la cantidad invertida.
F1. Orden de compra de Bitcoin

Puedes programar un bot para ejecutar tus órdenes y automatizar tus operaciones.

En este tutorial, aprenderás a solicitar órdenes programáticamente con la API de Alpaca usando una cuenta demo.

Aviso: Este tutorial es con fines educativos para enseñarte a programar con casos prácticos. No es una recomendación de inversión.

Preguntas

  1. ¿Cómo autorizas el código para ejecutar operaciones de trading con tu cuenta de Alpaca?
  2. ¿Qué información general tienes sobre tu cuenta demo?
  3. ¿Cómo creas una orden de compra para un activo financiero?
  4. ¿Qué significa el parámetro GTC en una orden de compra? ¿Por qué es importante?
  5. ¿Cómo cierras una posición abierta en un activo específico?
  6. ¿Cómo ves la información actualizada de tu portafolio después de realizar operaciones?

Metodología

Crear una cuenta en Alpaca

Regístrate en Alpaca y genera una clave API para validar tu acceso programático.

Para evitar riesgos, no registres ningún método de pago al crear tu cuenta.

API_KEY = 'TU_API_KEY'
API_SECRET = 'TU_API_SECRET'

Propiedades de la cuenta

Una vez que hayas instalado la biblioteca de Alpaca:

pip install alpaca-py

Creas la instancia del cliente de trading en modo demo, paper=True, para validar tu conexión a la API.

from alpaca.trading.client import TradingClient
client = TradingClient(API_KEY, API_SECRET, paper=True)

Solicita la información de tu cuenta para verificar que todo está en orden.

data = client.get_account()

Comienzas con un saldo de $100,000 en tu cuenta demo.

Vista del saldo inicial de una cuenta demo en Alpaca, mostrando un saldo de 100,000 dólares.
F2. Saldo inicial en cuenta demo de Alpaca

Solicitar primera orden

Vamos all-in en Bitcoin BTCUSD con el saldo disponible.

Para registrar la orden, crea un objeto MarketOrderRequest especificando las condiciones.

  • notional es la cantidad de dinero que quieres invertir en la orden. Si quieres comprar un número específico de acciones, debes usar el parámetro qty.
  • GTC Good Till Cancelled indica que la orden permanecerá activa hasta que se ejecute.
order = requests.MarketOrderRequest(
    symbol='BTCUSD',
    notional=100_000,
    side=enums.OrderSide.BUY,
    time_in_force=enums.TimeInForce.GTC,
)

client.submit_order(order)

Si visitas tus órdenes activas, verás la orden de compra de Bitcoin.

En nuestro caso, la orden se ejecutó comprando 1.40 Bitcoins a un precio promedio de $69,837.9552.

Pantalla de plataforma de trading mostrando una orden de compra de Bitcoin con detalles como el símbolo BTCUSD y la cantidad invertida.
F1. Orden de compra de Bitcoin

La ejecución de la orden en Bitcoin debería ser inmediata. Sin embargo, para otros activos financieros, la orden puede tardar en ejecutarse.

Cerrar posición del activo

Ahora, tienes un activo como posición abierta en tu cuenta.

Para cerrar la posición, necesitarás el asset_id del activo.

position = client.get_open_position('BTCUSD')
client.close_position(symbol_or_asset_id=position.asset_id)
Captura de pantalla mostrando el proceso de cerrar una posición abierta en Bitcoin, con detalles de la operación.
F4. Proceso de cierre de posición en Bitcoin

Saldo del portafolio

Finalmente, observarás tu portafolio con el saldo actualizado en la plataforma de Alpaca.

Notamos que el saldo aumentó $92.86 después de las operaciones.

Resumen del saldo del portafolio en la plataforma Alpaca después de realizar operaciones, mostrando un aumento en el saldo.
F5. Saldo actualizado del portafolio en Alpaca

Y así es como puedes usar la programación para tomar decisiones que se reflejan en la realidad usando APIs.

¿Preguntas? Hablemos abajo en los comentarios.

Conclusiones

  1. Autorización para operaciones de trading: TradingClient en modo demo paper=True para operar con la API de trading.
  2. Información de cuenta demo: client.get_account recupera información de la cuenta demo, incluyendo saldo y estado.
  3. Creación de una orden de compra: client.submit_order crea y envía una orden de compra MarketOrderRequest para un activo especificando detalles como cantidad y precio.
  4. Uso de GTC en órdenes: enums.TimeInForce.GTC establece que la orden permanece activa hasta que se ejecute.
  5. Cierre de una posición abierta: client.close_position cierra una posición abierta para un activo específico.
  6. Visualización actualizada de operaciones: toda la información sobre las operaciones realizadas se refleja en la plataforma de Alpaca.

Si pudieras programar lo que quisieras, ¿qué sería? El próximo tutorial podría cubrirlo ;)

Hablemos en los comentarios abajo.

Suscríbete a nuestro newsletter

Recibe insights semanales sobre datos, automatización e IA.

© 2025 Datons. All rights reserved.