Saltar al contenido
Home » Blog » Como conectar con Alpaca gratis para recibir datos históricos

Como conectar con Alpaca gratis para recibir datos históricos

    Logo de Alpaca

    Alpaca es un broker que tiene una interfaz mucho mejor de la que nos podemos encontrar en otros muchos brokers, como por ejemplo Interactive broker (que otro día explicaré pero que es horrible de configurar).

    Es más, con unas pocas líneas de código python, seremos capaces de conectar con Alpaca y ejecutar todas las operaciones que te puedas imaginar hacer con un broker. Esto se debe principalmente a la muy buena librería de python que han creado para conectar con el brocker, llamada “alpaca-trade-api

    En esta entrada voy a explicar como realizar la conexión para que podáis empezar a trastear con ella. Comprendiendo esto, será fácil crear vuestros primeros scripts para tener un robot funcional.

    Creación de la cuenta y la API key

    Lo primero que tenemos que hacer es crear una cuenta en la página del broker. Este proceso no es nada complicado ya que no te piden demasiados datos, y sobre todo no tienes que hacer un juramento de sangre como te piden en otros brokers (esta vez no pongo nombres pero todos conocemos varios).

    Una vez que ya nos hemos dado de alta vamos a ir directos a conseguir nuestra API key. Para ello, hay que fijarse en parte derecha del menú, donde nos ponen “live trading“. Al pulsar sobre este menú, veremos que nos ponen un número de cuenta de nuestra cuenta para simular el trading “Paper trading“:

    Pantalla de inicio al conectar con Alpaca

    Una vez que hemos entrado dentro de nuestra cuenta de simulación vemos todo lo que es posible hacer con esta plataforma a nivel de web. Entre las muchas opciones que nos dan de de la pantalla principal podemos ver que hay un botón para conseguir nuestra API key:

    Inicio de usuario en Alpaca

    Si pulsamos el botón donde pone “View” nos permitirá generar nuestra API key. Con esto ya lo tendremos todo para acceder al broker desde nuestro futuro script.

    API Keys en Alpaca

    Y con estos pasos ya tendremos todo lo necesario para empezar ya a teclear nuestro código de conexión.

    Instalación de las librerías necesarias

    Antes de empezar realmente con el código es necesario instalar la librería que nos van a permitir realizar la conexión con Alpaca. Para ello, y como suele ser normal, ya existe una librería en python que nos facilita esto, así que toca instalarla con el comando pip:

    pip install alpaca-trade-api

    Ahora sí que ya podemos empezar a jugar con nuestro nuevo broker.

    Conectar con Alpaca

    Lo primero que vamos a hacer es realizar una descarga de datos. Pero antes de empezar con el código, hay que poner cuales son los datos de nuestra API key para no tener problemas con la conexión.

    # authentication and connection details
    api_key = 'TU_API_KEY'
    api_secret = 'TU_API_SECRET'
    base_url = 'https://paper-api.alpaca.markets'
    

    La forma de trabajar con la librería de alpaca es muy sencillo: basta con importar la clase REST. Esta clase es la puerta de acceso a toda la api de Alpaca. Seguidamente, le pasamos los datos que hemos configurado previamente y la versión de la api que queremos utilizar:

    from alpaca_trade_api.rest import REST
    api = REST(api_key, api_secret, base_url, api_version='v2')

    Con todo esto, ya tenemos instanciada la clase en la variable API con la que podemos empezar a trabajar de diferentes formas.

    Quizá lo primero que se deba hacer es conseguir toda la información que nos da la API sobre nuestra cuenta y ver que todo se encuentra perfectamente:

    # obtain account information
    account = api.get_account()
    print(account)

    Como resultado, nos devolverá una salida en la que se mostrarán los datos de la cuenta:

    Detalle de la cuenta desde python

    La parte más importante que nos tenemos que fijar en todo esto es que el ‘status’ de la cuenta se encuentre en estado ‘ACTIVE’ para que podamos trabajar con ella directamente.

    Descarga de datos de mercado

    Ahora que ya hemos configurado correctamente nuestra cuenta toca descargar los datos, algo que también es terriblemente fácil gracias a esta librería.

    En una sola línea de código podemos decir que descargue un determinado símbolo, con el timeframe que nosotros escojamos. Además, si ponemos el final con “.dt” haremos que nos devuelva el resultado en formato dataframe de python para que podamos trabajar mejor.

    appl = api.get_barset('AAPL', '15Min').df
    appl = appl['AAPL']

    A mi también me gusta que cuando pongo un nombre de variable sea directamente para el dataframe con el símbolo que estoy trabajando. Por esta razón incluyo la segunda línea, por claridad en el código.

    Ordenes

    Finalmente ya lo tenemos todo preparado para lanzar nuestra primera orden simulada contra el mercado. Por lo tanto, voy a comprar una acción de Apple con una orden tipo ‘Limit’ que estará en los 200$ y además será del tipo ‘good to cancel’.

    api.submit_order(symbol='AAPL', 
        qty=1,
        side='buy', 
        time_in_force='gtc', 
        type='limit', 
        limit_price=200.00, 
        client_order_id='001')

    Como resultado de este comando tendríamos la siguiente salida:

    Detalle de la orden desde python

    Como se puede observar, en la salida tenemos todos los datos de la operación. Este resultado se podría guardar en una variable y, de esta forma, seguir programando nuestro código del robot.

    No me quiero extender muchísimo con esta pequeña introducción a la operativa del Alpaca desde python. El resto sería explicar todas las posibles operaciones que se pueden realizar desde la librería y eso viene muy bien explicado en la web del autor. Asimismo, también muestra muy buenos ejemplos de otro tipo de operativas y otras acciones que se pueden realizar, así que exprimirla un poco y seguro que os será de mucha utilidad.

    Como siempre, cualquier duda o aclaración no dudéis en ponérmela en los comentarios y os contestaré lo antes posible.

    ¡No te pierdas ningún post!

    ¡No enviamos spam! Lee nuestra política de privacidad para más información.

    Etiquetas:

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *