Memoria causal adaptativa para predicción bursátil multimodal
Proyecto de investigación y desarrollo de Gonzalo García Lama sobre memoria neural y predicción financiera multimodal.
Tablero Kanban privado · Issues · Hitos · Documentación
Observatorio de experimentos · Uso, contrato y límites
Los mercados cambian, las noticias llegan a distintas horas y una parte de la información financiera se publica después del periodo al que se refiere. En estas condiciones, una buena predicción sobre un histórico no basta para demostrar que un modelo generaliza.
MARS-TITAN estudia si una memoria neural adaptativa, que selecciona eventos financieros relevantes y conserva información útil de distintos contextos de mercado, aporta valor frente a modelos más sencillos. El trabajo combina precios, noticias y, cuando su disponibilidad temporal pueda justificarse, información fundamental y representaciones de gráficos de FinMultiTime.
La investigación incorpora mecanismos de aprendizaje y memoria, recurrencia interna de pocos pasos y contexto macroeconómico. La inspiración biológica se traduce en hipótesis sobre retención, adaptación y reaprendizaje. Los antecedentes recientes, incluidos DeepSeek y modelos financieros con memoria, sirven para decidir qué comparar y qué técnicas pueden ser útiles en una GPU pequeña.
La pregunta principal es: ¿mejora una memoria adaptativa de eventos la predicción de retornos residuales fuera de muestra, con un presupuesto de cómputo comparable y después de controlar la fuga temporal? La utilidad financiera se examinará mediante simulaciones con costes. Una mejora predictiva no implica por sí sola rentabilidad.
Estado actual: preparación documental, configuración, fuentes y observatorio, sin implementación científica iniciada. La arquitectura está propuesta. Los experimentos y sus resultados están pendientes. Las utilidades conservan la biblioteca, verifican el repositorio, descargan fuentes públicas y exportan resúmenes permitidos. El observatorio muestra inicialmente un registro vacío, no entrenamientos simulados. Los diagramas muestran el diseño del estudio, no rendimiento observado. «Causal» se refiere al orden de disponibilidad de la información. No implica haber identificado causas económicas.
El equipo de trabajo tiene 32 GB de RAM y una RTX 4070 Max-Q de 8 GB. Se propone un piloto de hasta 64 activos y una comparación principal de hasta 128, seleccionados con información del periodo de desarrollo. La lectura por bloques permite preparar el recorrido de toda la copia, que ocupa unos 109 GiB. Ampliar el entrenamiento a más activos o a China dependerá del coste medido y del calendario.
Los entrenamientos prolongados deberán guardar y restaurar optimizador, semillas, cursor de datos y memoria adaptativa. La política de checkpoints está especificada, pero no existen todavía pesos entrenados. El plan de cómputo contempla la disponibilidad del equipo durante las 24 horas.
flowchart LR
D[FinMultiTime<br/>precios · noticias · tablas · gráficos] --> P[Disponibilidad temporal<br/>calidad y procedencia]
P --> X[Representaciones<br/>y objetivo residual]
X --> B[Modelos base<br/>cero · Ridge · árboles · GRU]
X --> M[MARS-TITAN<br/>memoria · sorpresa · régimen]
M --> A[Ablaciones<br/>componentes y modalidades]
B --> E[Evaluación walk-forward<br/>predicción · incertidumbre · costes]
A --> E
E --> C[Análisis crítico<br/>mejoras, fallos y límites]
Una predicción solo puede usar datos disponibles en su instante de decisión. La memoria se actualiza con errores de predicciones anteriores cuando sus etiquetas ya han madurado. Las tablas contables necesitan fechas de publicación y los gráficos se construirán exclusivamente con ventanas pasadas.
| Objetivo / fase | Resultado que se deberá demostrar |
|---|---|
| 1. Datos multimodales | Subconjunto reproducible, contrato temporal, procedencia y controles contra fuga de información. |
| 2. Problema predictivo | Objetivo residual respecto al mercado. Extensión sectorial solo si los datos permiten justificarla. |
| 3. Memoria adaptativa | Prototipo compacto, actualización temporal verificable, regímenes e incertidumbre. |
| 4. Comparativa | Modelos base y ablaciones con iguales datos, particiones y presupuesto documentado. |
| 5. Evaluación | Walk-forward, métricas predictivas y financieras, costes y estimación de incertidumbre de las diferencias. |
| 6. Análisis crítico | Interpretación por periodo, modalidad y régimen. Resultados negativos, limitaciones y trabajo futuro. |
Los objetivos se gestionan como seis hitos y 64 tareas canónicas, con prioridad, tamaño, dependencias y criterios de aceptación. Cada issue concreta herramientas, entradas, pasos, artefactos previstos y pruebas. Cinco tareas redundantes se han consolidado conservando su historial. El código y la documentación se organizan por su función, no por fase. El plan de trabajo, el catálogo del tablero y la guía de implementación explican cómo avanzar sin convertir las extensiones en obligaciones del núcleo.
- Mapa de documentación.
- Protocolo de investigación, experimentos y revisión del documento inicial.
- Arquitectura candidata, hipótesis y antecedentes y revisión adversarial.
- Contrato de datos, inspección inicial de FinMultiTime y arquitectura.
- 140 indicadores macroeconómicos candidatos, con fuentes, fórmulas y reglas de disponibilidad. Los valores no están calculados ni validados como entradas de entrenamiento.
- Fuentes gratuitas y nueve archivos complementarios obtenidos, conservados en instantáneas locales separadas del benchmark, y actualización manual.
- Biblioteca y revisión bibliográfica: publicaciones primarias, libros, fuentes financieras, BibTeX y descargas locales con huella de integridad.
- Memoria y aprendizaje, eficiencia de DeepSeek, recorrido completo del dataset y presupuesto de latencia.
- Contraste de los ocho posts aportados: recursos aprovechables, límites de acceso y afirmaciones que no se pueden verificar.
- Entorno y reproducción y riesgos.
- Verificación de esta entrega, con comprobaciones realizadas y límites pendientes.
src/mars_titan/ Espacio reservado para los futuros módulos científicos
native/ C/C++ y CUDA con CMake, optimización guiada por perfilado
configs/ Configuraciones de datos y experimentos
tests/ Verificación documental y plan de pruebas científicas
scripts/ Biblioteca, captura de fuentes y mantenimiento
site/ Observatorio estático, sin ejecutar modelos en el navegador
notebooks/ Exploraciones acotadas y reproducibles
data/ Contratos y manifiestos, derivados locales ignorados
dataset/ Copia local existente de FinMultiTime, fuera de Git
docs/ Investigación, ingeniería y bibliografía
thesis/ Documento de investigación en LaTeX
reports/ Plantillas de resultados y fichas de experimentos
.github/ Planificación y plantillas de revisión
Requisitos: Git, uv y ripgrep. La comprobación nativa necesita CMake y compiladores C/C++. El entorno de desarrollo usa Python 3.12, gestionado por uv. La guía de entorno recoge las dependencias del sistema.
git clone https://github.com/GonxKZ/mars-titan.git
cd mars-titan
uv sync --locked
uv run pytest
uv run ruff check .
uv run ruff format --check .
uv run python scripts/check_repository.pyLas comprobaciones se ejecutan localmente antes de publicar cambios. La única excepción autorizada de GitHub Actions es publicar la página de GitHub Pages, sin pruebas ni entrenamientos en GitHub.
Para preparar análisis y entrenamiento en Linux x86-64 con NVIDIA:
uv sync --locked --extra data --extra research --extra cuda
nvidia-smi
uv run python - <<'PY'
import torch
if not torch.cuda.is_available():
raise RuntimeError("CUDA no está disponible")
device = torch.device("cuda:0")
print(torch.cuda.get_device_name(device))
print(torch.ones(1, device=device).item())
PYLa comprobación falla si no hay CUDA. Los experimentos seleccionarán cuda:0. La instalación de PyTorch tiene un índice CUDA explícito y los controles de calidad no requieren descargarlo. Para tareas independientes existe además un entorno compartido compatible: véase reproducibilidad.
La biblioteca se obtiene desde las fuentes registradas:
uv run python scripts/fetch_references.pyLos fallos de acceso quedan registrados. El catálogo no autoriza redistribuir publicaciones. Los PDF de terceros se conservan en docs/references/library/, fuera de Git. Un clon contiene las referencias y el procedimiento de descarga.
Para consultar las fuentes públicas habilitadas y obtener una captura nueva del RSS monetario oficial:
uv run python scripts/refresh_public_sources.py --list
uv run python scripts/refresh_public_sources.py --source fed_monetary_rssEl actualizador necesita curl. Sin --source, consulta las ocho fuentes renovables validadas. Cada ejecución crea su propio manifiesto y conserva las capturas anteriores. No mezcla actualizaciones con el benchmark ni instala tareas periódicas. Los límites, la selección explícita de documentos PDF y las precauciones temporales se detallan en la guía de actualización.
Para generar una instantánea del observatorio desde estados locales:
uv run --locked python scripts/export_observatory.py --output site/data/observatory.json
node --test site/tests/*.test.mjsEl exportador no usa GPU, red ni logs completos. Generar una instantánea no la publica. La web puede consultar el último resumen publicado o importar un JSON local sin enviarlo a un servidor. La guía del observatorio explica la integración futura con los entrenadores, el historial privado y la protección del test.
La copia de FinMultiTime y sus derivados no se suben al repositorio. La selección experimental se fijará tras auditar cobertura, fechas y derechos de uso. No se presentan aquí resultados de rentabilidad ni recomendaciones de inversión.
El código y la documentación originales se distribuyen bajo MIT, una licencia gratuita y permisiva. Los documentos de terceros, los datos, los artículos y los libros mantienen sus condiciones originales: avisos de terceros.
Para citar el proyecto, utilizar CITATION.cff. Las normas de desarrollo están en CONTRIBUTING.md.