SIESIF (Sistema Experto para la Selección de Inversiones Financieras) es una aplicación web inteligente basada en programación lógica. Su función principal es actuar como un asesor financiero digital, proporcionando recomendaciones personalizadas de instrumentos de inversión del mercado mexicano.
El sistema utiliza un Motor de Inferencia que analiza tres variables fundamentales del usuario a través de un cuestionario validado:
- Perfil de riesgo (Conservador, Moderado, Agresivo).
- Horizonte temporal de la inversión (Corto, Mediano, Largo plazo).
- Capacidad económica y tolerancia a la volatilidad.
Democratizar el acceso a la asesoría financiera mediante un sistema objetivo, consistente y disponible 24/7 que ayude a inversionistas novatos a tomar decisiones fundamentadas sin la necesidad de un asesor humano costoso.
El sistema sigue una arquitectura Cliente-Servidor desacoplada, comunicándose a través de una API RESTful.
- Backend (Lógica & API):
- Lenguaje: Python 3.11+
- Framework Web: Flask
- ORM: SQLAlchemy
- Servidor WSGI: Gunicorn (Producción)
- Base de Datos:
- Desarrollo: SQLite
- Producción: PostgreSQL (Compatible)
- Frontend (Interfaz):
- Estructura: HTML5
- Estilos: CSS3 (Metodología BEM y utilidades custom)
- Lógica Cliente: JavaScript (Vanilla ES6+, Fetch API)
graph LR
A[Usuario] -->|Llena Cuestionario| B(Frontend JS)
B -->|JSON Request| C{API Flask}
C -->|Datos| D[Motor de Inferencia]
D -->|Perfil Calculado| E[Reglas Lógicas]
E -->|Consulta SQL| F[(Base de Datos)]
F -->|Instrumentos| E
E -->|Recomendaciones| C
C -->|JSON Response| B
B -->|Renderiza| A
SIESIF/
│
├── backend/ # Código fuente del Servidor
│ ├── app.py # Punto de entrada y rutas API
│ ├── config.py # Configuración de entorno
│ ├── models.py # Modelos de Base de Datos (ORM)
│ ├── motor_inferencia.py # Cálculo de puntajes y perfiles
│ └── reglas_logicas.py # Selección de instrumentos
│
├── frontend/ # Código fuente del Cliente
│ ├── index.html # Landing Page
│ ├── cuestionario.html # Formulario de 13 preguntas
│ ├── puntaje.html # Visualización de resultados
│ ├── css/ # Hojas de estilo
│ └── js/ # Lógica de conexión con API
│
├── database/ # Scripts SQL
│ └── seed_data.sql # Datos iniciales (11 instrumentos)
│
├── requirements.txt # Dependencias de Python
└── README.md # Documentación
Sigue estos pasos para ejecutar el proyecto en tu computadora:
- Python 3.11 o superior instalado.
- Git instalado.
git clone https://github.com/tu-usuario/SIESIF.git
cd SIESIFEs crucial usar un entorno virtual para aislar las dependencias.
Windows:
python -m venv venv
.\venv\Scripts\activateMac/Linux:
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtCrea un archivo .env en la raíz del proyecto (opcional para desarrollo local, Flask usará SQLite por defecto si no existe).
cd backend
python app.pyEl servidor iniciará en http://127.0.0.1:5000.
La base de datos se creará y poblará automáticamente si está vacía.
El backend expone los siguientes endpoints JSON:
Endpoint: GET /api/instrumentos
Descripción: Retorna la lista completa de los 11 instrumentos financieros disponibles.
Respuesta:
{
"total": 11,
"instrumentos": [
{ "nombre": "CETES", "riesgo": "bajo", "tipo": "renta_fija", ... },
...
]
}Endpoint: POST /api/evaluar-perfil
Descripción: Recibe las respuestas del cuestionario, calcula el perfil y devuelve recomendaciones filtradas.
Body (JSON):
{
"respuestas": {
"p1": 1, "p2": 3, "p3": 2, ... "p13": 1
}
}Respuesta:
{
"puntaje": 35,
"perfil": "moderado",
"recomendaciones": [ ...lista de instrumentos... ]
}El sistema cuenta con una base de conocimiento de 11 instrumentos clave del mercado mexicano:
| Instrumento | Tipo | Riesgo |
|---|---|---|
| CETES | Renta Fija | Bajo |
| Bonos M | Renta Fija | Bajo-Medio |
| Udibonos | Renta Fija | Bajo |
| Bondes F | Renta Fija | Bajo |
| Bonos IPAB | Renta Fija | Bajo |
| Fondos Deuda | Renta Fija | Bajo-Medio |
| Fondos Mixtos | Mixto | Medio |
| ETFs | Mixto | Medio |
| FIBRAs | Alternativo | Medio |
| Acciones | Renta Variable | Alto |
| Fondos RV | Renta Variable | Alto |
Proyecto desarrollado por estudiantes del Instituto Tecnológico Nacional de México - Campus Celaya.
- Omar Gadiel Bolaños García - Coordinador, Arquitectura Backend & DevOps.
- Gael González Cruz - Base de Datos & Modelado de Datos.
- Diego Emilio Ortiz Vílchez - Frontend, UI/UX & Diseño Web.
- Brian García Mares - Base de Conocimiento & Motor de Inferencia.
- Christian Raúl Paramo Bautista - Lógica de Negocio & Reglas del Sistema.
Puedes probar el proyecto con su Deploy en el siguiente enlace:
[cite_start]Nota: El sistema se encuentra actualmente en la Fase 2 - Implementación [cite: 236][cite_start], por lo que algunas funcionalidades del catálogo completo de 11 instrumentos financieros [cite: 45] podrían estar en proceso de actualización en el entorno de producción.
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.