Cómo construir un bot de comercio algorítmico en 7 pasos

Aprenda paso a paso cómo crear un robot comercial utilizando Python, Alpaca API, Google Cloud Platform y notificaciones por correo electrónico.

El propósito de este artículo es proporcionar un proceso paso a paso sobre cómo automatizar las estrategias de negociación algorítmica de una persona utilizando Alpaca, Python y Google Cloud. Este ejemplo utiliza la estrategia de negociación de pares. Consulte el siguiente repositorio de GitHub para acceder a la secuencia de comandos de Python.

Paso 1: cree cuentas para Alpaca y Google Cloud Platform

Alpaca es una plataforma de corretaje sin comisiones * que permite a los usuarios operar a través de una API. Una vez que haya creado una cuenta, se le dará un ID de clave de API y una clave secreta a la que hará referencia en el script de Python. Esto creará el puente para automatizar su estrategia comercial.

* Negociación libre de comisiones significa que no hay cargos de comisión para las cuentas de corretaje de efectivo individuales autodirigidas de Alpaca que negocian valores cotizados en EE. Es posible que se apliquen las tarifas correspondientes de la SEC y FINRA.

Empiece con Alpaca

Google Cloud Platform (GCP) es un servicio de computación en la nube de primer nivel. Ofrecen cientos de productos en la nube. Sin embargo, para el propósito de este proyecto, solo necesitará usar dos servicios de GCP. Si es nuevo en Google Cloud, puede aprovechar la prueba gratuita para nuevos usuarios que viene con un crédito de $ 300 (más de lo que necesitará para automatizar este proceso). Aprovechar un servicio en la nube, como Google, significa que no tendrá que ejecutar manualmente la secuencia de comandos ni preocuparse de que su computadora esté encendida a la hora correcta todos los días.

Empiece a utilizar Google Cloud Platform.

Una vez que haya creado su cuenta, comience la prueba gratuita. Haga esto haciendo clic en “Activar” en la esquina superior derecha.

Complete la información necesaria y luego cree un “Proyecto nuevo”. En este ejemplo, se etiquetará como “Algo-trading”.

Paso 2: la secuencia de comandos de Python

Los siguientes pasos repasarán cómo estructurar el script de Python, adjuntar la API de Alpaca, enviar una notificación por correo electrónico y un ejemplo de cómo construir la lógica comercial. Lo primero que debe recordar con el script de Python es que necesitará crear solo una función. A continuación, se llamará a esa función en Google Cloud. Esto es crucial para automatizar el script.

Paso 3: Conecte la API de Alpaca

Puede acceder a sus claves API de Alpaca desde el Panel de Alpaca, una vez que su cuenta esté configurada. Este ejemplo se mostrará utilizando las claves comerciales en papel. Estas se pueden encontrar en el lado derecho del panel de control, y debajo del ID de la clave API está su propia clave secreta.

Deberá importar los siguientes paquetes: os y alpaca_trade_api como tradeapi. Siga la documentación de Alpaca sobre cómo descargar el paquete alpaca_trade_api. A continuación, se muestra un fragmento del código que se encuentra en el repositorio de GitHub.

La sección os.environ le permite especificar el entorno al que se está conectando: comercio en papel o comercio en vivo.

La primera área oscurecida es donde colocará su ID de clave API, la segunda es donde colocará su clave secreta.

La variable de la cuenta es asegurarse de que tenga una cuenta con Alpaca y de que esté activa. Esta variable se utilizará más adelante.

Paso 4: Cree una nueva cuenta de correo electrónico y agregue la funcionalidad de notificación por correo electrónico a la función Python

Agregar notificaciones por correo electrónico a su secuencia de comandos de operaciones es subjetivamente asombroso; le permiten saber cuándo se está ejecutando su secuencia de comandos y cuál es el resultado según la estrategia de operaciones.

Para comenzar a agregar notificaciones, consulte este artículo de Samuel Sam.

Por razones de seguridad, es probable que desee crear una nueva cuenta de correo electrónico (en este ejemplo, se usa Gmail y se llama “Robot comercial”). El paso más importante, ya sea que cree una cuenta nueva o no, es activar el acceso a sitios menos seguros. Configuración de la cuenta → Seguridad → Acceso a aplicaciones menos seguras activado.

El siguiente fragmento de código incluye los paquetes necesarios para enviar correos electrónicos. El asunto del correo electrónico será su estrategia comercial, que le permitirá ejecutar múltiples estrategias comerciales mientras se mantiene informado sobre su éxito.

Paso 5: cree una estrategia comercial en el script y agregue ciertos mensajes al correo electrónico

Los siguientes fragmentos de código de ejemplo muestran una forma muy descuidada de acceder a los datos gratuitos de Alpaca a través de IEX Exchange. Simplemente cree las variables necesarias para la lógica comercial, como promedios móviles de 5 días y ciertos diferenciales.

Este ejemplo utiliza ADBE y AAPL. Este código está disponible en el repositorio de GitHub.


A continuación, agregue la lógica comercial con el texto deseado para el correo electrónico. La variable de cartera verifica cuál es su posición actual, lo cual es importante para la lógica del algoritmo de negociación.

La variable de reloj le permite verificar fácilmente si el mercado está abierto. Si no es así, recibirá un correo electrónico que dice: “El mercado está cerrado”. En el futuro, podría ser más beneficioso ejecutar un script antes de esto para verificar si está abierto o cerrado, en lugar de enviar correspondencia por correo electrónico. Puede hacer que este script se ejecute en la nube, lo que le permite ahorrar tiempo y dinero en informática.

La variable mail_content se escribe en todo el algoritmo de negociación para que capte todo lo que ocurra dependiendo del día. Luego se coloca en el correo electrónico, se completa la información para el inicio de sesión y se envía el correo electrónico.

Se crea la última variable que está “lista” y eso es lo que escupe la función. ¡Tu guión está listo para funcionar!

Paso 6: Cree una función de Google Cloud

A continuación, abra la consola de Google Cloud. Asegúrese de estar en su proyecto de comercio de algoritmos y luego navegue a Cloud Functions en el panel lateral izquierdo, que se encuentra en compute. Siempre puede fijarlo para facilitar (se muestra a continuación).

Haga clic en “Crear función” en la parte superior. Esto lo llevará a una página similar a esta.

Nombra la función como quieras. Puede mantener todas las configuraciones preestablecidas, pero cambie el tiempo de ejecución a Python 3.7. Luego, copie y pegue la secuencia de comandos de Python que ha creado en main.py. Asegúrese de poner el nombre de la función en el cuadro Función para ejecutar.

El último paso es agregar los paquetes necesarios en requirements.txt. Esto hace que la nube sepa qué paquetes necesita para ejecutar su secuencia de comandos de Python. Continúe e implemente la función.

** Nota: es posible que deba agregar otros paquetes a esta lista si los agrega a su main.py. Su función no se implementará si falta algún paquete en el archivo requirements.txt.

Para probar la función, navegue hasta la pestaña Activador dentro de la función.

Haga clic en la URL y vea qué sucede. Si se ejecuta correctamente, la ventana debería mostrar “Correo enviado” y recibirá un correo electrónico. Si esto funciona correctamente, copie la URL.

Paso 7: cree un trabajo del Programador de Google

Navegue hasta el Programador de Google en el panel izquierdo. Se encuentra en “Herramientas”.

Cree un nuevo trabajo.

Su pantalla debería verse así:

Ponle el nombre que quieras. Por frecuencia, esta función de muestra se ejecuta todos los días de la semana a las 8:30 a.m. MST (una hora después de la apertura del mercado).

Pegue la URL que copió de Cloud Function. Después de esto, ¡estás listo! Esto se ejecutará, como ha especificado, por sí solo. Puede probar el trabajo haciendo clic en “Ejecutar ahora”.

Si se ejecuta correctamente, tendrá un buen correo electrónico en su bandeja de entrada similar al anterior, y estará haciendo intercambios (¡y tal vez dinero **!) en Alpaca.

Conclusión

Este ejemplo paso a paso muestra cómo automatizar sus estrategias de comercio de algoritmos favoritas. Espero que disfrute de las notificaciones por correo electrónico. Si tiene alguna sugerencia sobre cómo mejorar este proceso o la estrategia comercial en sí, envíe un mensaje o deje un comentario.

*** Todas las inversiones implican riesgos y el rendimiento pasado de un valor o producto financiero no garantiza resultados o rendimientos futuros. Siempre existe la posibilidad de perder dinero cuando invierte en valores u otros productos financieros.

La tecnología y los servicios son ofrecidos por AlpacaDB, Inc. Los servicios de corretaje los proporciona Alpaca Securities LLC (“Alpaca”), miembro de FINRA / SIPC, una subsidiaria de propiedad total de AlpacaDB, Inc.