EN

Proyecto

Stock Signals Tracker

Sistema serverless que detecta señales de compra y venta en acciones de la Bolsa Mexicana de Valores.

Ver en GitHub →

Objetivo

Sistema serverless en AWS que rastrea precios diarios de acciones en la Bolsa Mexicana de Valores (BMV) y el Sistema Internacional de Cotizaciones (SIC). Aplica indicadores de análisis técnico — Bandas de Bollinger y RSI — para detectar automáticamente señales de compra y venta. El sistema no ejecuta órdenes: observa, calcula y registra para apoyar decisiones informadas.


Cómo funciona

  1. Captura diaria de preciosDe lunes a viernes a las 16:30 CDMX, Windows Task Scheduler ejecuta un script Python local que descarga precios OHLCV desde Yahoo Finance (yfinance). La ejecución local es necesaria porque Yahoo Finance bloquea las IPs de AWS Lambda.
  2. Tipo de cambio USD/MXNEl mismo script consulta la API Frankfurter (ECB) para obtener el tipo de cambio del día y calcula el precio en pesos de las acciones cotizadas en dólares.
  3. Persistencia en DynamoDB y S3Los precios y el tipo de cambio se almacenan en DynamoDB y en archivos Parquet particionados por mercado y fecha en S3.
  4. Análisis reactivo vía StreamsCada escritura en la tabla de precios activa un DynamoDB Stream que invoca automáticamente la Lambda analyze-signals.
  5. Cálculo de indicadores técnicosLa Lambda consulta los últimos 90 días de historial, calcula Bandas de Bollinger (20 días) y RSI (14 períodos) con pandas, y clasifica cada ticker como BUY, SELL o HOLD.
  6. Almacenamiento de señalesLas señales se persisten en DynamoDB y S3, disponibles para consulta SQL vía Amazon Athena con catálogo Glue.

Automatización diaria

La captura de precios se ejecuta a las 16:30 CDMX (lunes–viernes) desde Windows Task Scheduler. El análisis de señales es completamente reactivo mediante DynamoDB Streams — sin polling ni scheduler adicional en AWS. Si el equipo estaba apagado a las 16:30, la tarea se ejecuta en cuanto se reconecta a la red.


Servicios AWS


Servicios externos


Stack

Python 3.12AWS CDK (TypeScript)pandaspyarrowyfinanceDynamoDBLambdaS3GlueAthenaSSMCloudFormationWindows Task Scheduler