Saltar al contenido

Tu Robot De Trading En Tiempo Real Con Alpaca

    Portada de conexión en tiempo real

    Siempre que hablamos de bolsa y python parece que solo es posible descargarse los datos históricos para hacer estudios, pero hay mucho más. También es posible hacer operaciones en tiempo real, y tener un robot de trading y hacer que nos haga operaciones automáticas.

    Aquí veremos como hacer una conexión en tiempo real al broker Alpaca, del que ya vimos como conectar para descargar los datos. Es muy sencillo y en menos de cinco minutos tendrás tu conexión realizada.

    Conexión al stream

    Lo primero que tenemos que hacer es simplemente conectarnos a la API de alpaca a través de la librería que tiene python para ello. Posteriormente crear el “Stream” con nuestros datos para poder realizar la descarga en tiempo real de los datos.

    from alpaca_trade_api.stream import Stream
    stream = Stream("TU_API_KEY",
                    "TU_API_SECRET",
                    base_url='https://paper-api.alpaca.markets',
                    data_feed='iex')  # si tenemos la subcripción pro habár que poner "SIP"

    Como se puede ver, es muy sencillo instanciar la clase para empezar a trabajar con ella. El único detalle que llama la atención es que el argumento “data_feed” cambia según tengamos nuestra conexión. Para aquellos afortunados en tener una conexión pro, solo hay que poner “sip” en vez de “iex”, y con eso ya estaría configurado. La conexión pro, como es normal, tiene más ventajas que veremos más adelante.

    Conexión para ver las operaciones

    Primero veremos la forma en la que podemos conectar un para ver todas las operaciones que se van a producir sobre una acción determinada. En este caso utilizaremos Apple (con simbolo AAPL).

    La forma de conectar el script para ver las operaciones es la siguiente:

    async def trade_callback(t):
        print('trade', t)
    stream.subscribe_trades(trade_callback, 'AAPL')
    stream.run()

    Una vez que ya hemos guardado el script cuando lo lancemos empezaremos a ver todas las operaciones que se están produciendo sobre la acción de Apple. La salida que os saldrá será muy similar a esta.

    salida de subscribe_trdes de alpaca

    Como podéis observar aquí se ve cada operación, lo que permite llevar a cabo estrategias de trading basadas en la cinta o las estrategias Order Flow.

    Conexión para ver los spreads

    Según el tipo de estrategias que quieras hacer en la bolsa puede ser que necesites saber como está el bid y el ask en cada momento. Este tipo de detalles también te los da el brocker Alpaca con este sencillo código:

    async def quote_callback(q):
        print('quote', q)
    stream.subscribe_quotes(quote_callback, 'IBM')
    stream.run()

    Como en el caso anterior, en cuanto ejecutes el código verás que tu salida será similar a esta:

    Salida de subscribe_quotes

    Estos datos también son importantes para las estrategias que hemos mencionado anteriormente. Entender estos conceptos ayuda mucho a saber como puede ir la bolsa en un momento determinado. Si necesitas profundizar estos consejos existen una gran cantidad de pagínas que hablan del tema, como las dos que os he puesto anteriormente o esta otra.

    Conexión para ver los datos ohlc

    Alpaca también nos da la posibilidad de obtener un gráfico de velas de toda la vida, con sus precios de apertura, máximos, mínimos y cierre. Estos datos los puedes conseguir minuto a minuto con este código:

    async def bars_callback(v):
        print('bar', v)
    stream.subscribe_bars(bars_callback, 'IBM')
    stream.run()

    En este caso en la salida veremos todos los datos de lo que ha sucedido en el último minuto y el script nos lo mostrará de esta forma.

    Salida de subscribe_bars

    Con esto ya entraremos en estrategias para desarrollar scalping en velas de un minuto. Aquí entran en juego indicadores técnico con sus muchas estrategias para hacer trading, como alguna de las que ya hemos probado en el blog con el SMA o las bandas de bollinger.

    A tener en cuenta

    Las cuentas gratuitas de Alpaca tiene alguna restricción:

    • Solo puedes tener una conexión a la vez. Es decir, no puedes abrir múltiples “streams“. Por ejemplo no puedes tener una conexión para las velas y otro para las operaciones.
    • Cada conexión está limitada a 30 canales a la vez para operaciones y quotes.
    • No hay límite para los canales en velas.
    • Las velas están basadas en las operaciones que se producen en el IEX.

    Las ventajas de las cuentas pro son las siguientes:

    • No hay restricciones para el número de canales ni en operaciones, ni en quotes ni en barras.
    • Todos los datos vienen dados por CTA (administrador por NYSE) y UTP (administrado por el Nasdaq)

    Podéis encontrar más información sobre todo esto y mucho más en su página web dedicada a la API.

    Conclusión

    Como ya vimos anteriormente el broker Alpaca y la librería en python dedicada a esto nos pone las cosas muy fáciles para crear nuestros propios robots de trading.

    A partir de aquí solo queda la imaginación de cada uno para saber que hacer con Alpaca y el robot que se puede crear. Una vez que se tienen acceso a los datos en tiempo real las posibilidades son infinitas y hay que reconocer que este broker nos lo pone muy fácil para probar todas nuestras estrategias.

    Como siempre para cualquier duda o sugerencia no dudéis en contactar conmigo.

    Oval@3x 2

    ¡No te pierdas ningún post!

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

    Deja una respuesta

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