OpenInvestOp

Motor de decisión de inversión de grado de investigación para agentes de IA: comité multiagente aislado, veredictos auditables, backtests con protección de anticipación, resultados negativos publicados

Documentación

owl-02-lineart-gold

openInvest

Un motor de decisiones de inversión autoalojado, construido para agentes de IA modernos. Aislamiento de información multiagente y protocolo de desafío cruzado, que proporciona un rastro de decisiones auditable (Audit Trail).

Python Agents License Stars Glama MCP server

📚 Wiki de Arquitectura Completa · 🇨🇳 Versión en chino


¿Qué es OpenInvest?

OpenInvest es un motor de decisiones de inversión autoalojado, construido para agentes de IA modernos.

Proporciona un comité de inversión verificable, razonamiento basado en evidencia, backtesting de largo horizonte y registros de decisiones auditables. En lugar de reemplazar a Claude Code, Codex, Hermes u OpenClaw, OpenInvest está diseñado para potenciarlos.


Rendimiento en Vivo y PnL

PnL chart El feed de datos se actualiza automáticamente cada 2 horas usando `jobs/pnl_snapshot` y se envía a la rama pnl-data
Mitad superior: tendencia del valor liquidativo neto a 30 días · Mitad inferior: comparación del valor liquidativo neto contra 8 activos de referencia (divulgación transparente, no es una afirmación de alfa—el valor probado del comité es la disciplina y la transparencia, no el exceso de retorno, ver ADR-023)
📌 Nota: El gráfico actual muestra la cartera de producción en vivo del autor. Después del autoalojamiento, el sistema renderizará automáticamente tu propia curva de capital basada en las tenencias definidas en tu directorio `memory/`.
  • Cartera de Referencia: El sistema introduce 8 benchmarks de control estándar en 4 cuadrantes (Asesores de IA / Fondos mutuos / Gestión patrimonial / Índice de mercado amplio). Para detalles sobre la metodología de comparación y la lógica de limpieza de datos, ver docs/wiki/README.md.

Investigación y Falsificación

Autodivulgación del Sistema: Este sistema es una herramienta de auditoría para eliminar los sesgos cognitivos humanos en la inversión y hacer cumplir la transparencia del razonamiento, no una caja negra que amplifica retornos. Última auditoría automatizada (docs/verdict_accuracy.md): Los veredictos direccionales (excluyendo HOLD) tienen una tasa de acierto real de 42.2% (n=56, por debajo del azar); HOLD representa 56% de todas las decisiones. El valor del sistema reside en la transparencia y la disciplina (mayormente inactivo, baja rotación), no en la predicción direccional. El flujo de registros detallado se encuentra en docs/verdict_accuracy.md.

Este proyecto intenta sistemáticamente falsificar su propia ventaja y publica los resultados negativos tal como son. Las características deterministas que lee el comité, y las señales de sincronización asociadas, fueron probadas contra umbrales estadísticos pre-registrados — ninguna sobrevivió como alfa comerciable.

PruebaResultadoVeredicto
Selección de acciones transversal Q16 características, IC medio 0.025–0.067, p=0.397 corregido por HolmSin señal significativa de selección de acciones
GBM multivariante M1 (fuera de muestra)IC OOS medio +0.003, p=0.925La combinación de características tampoco ayuda — sin señal
Tendencia Q2 oro MA200p_holm=0.016, significativa — pero trend_dca muestra que es beta, no alfa comerciable: valor terminal de sincronización 3.07 vs 15.10 comprar y mantener, Sharpe +0.36 vs +0.68, drawdown máximo más profundo (−57% vs −44%)Estadísticamente significativa, económicamente no comerciable
Familias de señales múltiples por activo3 activos × 4 familias de señales × cuadrícula de parámetros = 24 variantes por activo; después de costos + deflación DSR, ninguna pasa DSR > 0.95Sin señal comerciable en ninguna familia
Control positivoUna señal de sincronización tramposa con previsión perfecta puntúa DSR = 1.00El arnés puede detectar una señal real

Metodología: Estadísticos t HAC de Newey-West, Ratio de Sharpe Deflactado (Bailey & López de Prado 2014, re-derivado ecuación por ecuación), corrección de Holm, cero lookahead, y sondas de corte de entrenamiento de LLM.

Detalles: experiments/signal-eval/README.md · docs/verdict_accuracy.md · ADR-022 · ADR-023


Filosofía del Producto

La mayoría de los asistentes de inversión con IA intentan convertirse en mejores chatbots. OpenInvest, en cambio, construye un motor de decisiones transparente, verificable y auditable que se conecta a agentes personales como Claude Code, Codex, Hermes y OpenClaw — cada mejora en esos agentes hace automáticamente que OpenInvest sea más capaz.

La división del trabajo es deliberada: tu agente maneja la memoria a largo plazo, la conversación natural y la comprensión del usuario; OpenInvest maneja el comité de inversión verificable, el razonamiento basado en evidencia, el backtesting de largo horizonte y los registros de decisiones auditables.

                   User
                     │
         ┌───────────┴───────────┐
         ▼                       ▼
    Your Agent             OpenInvest
(User Understanding)   (Market Understanding)
         │                       │
         └───────────┬───────────┘
                     ▼
            Better Investment Decisions

Tu agente te conoce. OpenInvest conoce la inversión.

Evitar la Propiedad del Usuario

OpenInvest evita intencionalmente "poseer" al usuario. La mayoría de los productos de IA intentan poseerlo todo—memoria, persona, historial de chat y espacios de trabajo. OpenInvest toma un asiento trasero. Expone APIs limpias, comandos CLI y habilidades de agente (Claude Code / Codex / Hermes / OpenClaw), permitiendo que tu agente principal gestione la conversación y el contexto mientras OpenInvest impulsa la inteligencia de inversión subyacente.


Características

  • Comité de Inversión Multiagente: Análisis aislado y debate de refutación por rondas.
  • Arquitectura Coordinador-Trabajador: Previene la contaminación del contexto y la alucinación de roles.
  • Aislamiento de Información: Bloquea rígidamente a los analistas cuantitativos y de riesgo de contextos fuera de límites.
  • Rastro de Decisiones Auditable: Registros limpios que muestran exactamente "por qué" se tomó cada decisión.
  • Markdown como Base de Datos: Frontmatter (YAML) + Markdown (Cuerpo) como fuente única de verdad.
  • Backtesting de Largo Horizonte: Arnés de prueba integrado con protecciones contra sesgo de lookahead.
  • Consolidación de Memoria Basada en Sueños: Destilación de memoria nocturna para prevenir la deriva del contexto.
  • Autoalojado / Cero Costo: Impulsado directamente por los recursos de razonamiento de tu agente local.
  • Habilidad de Agente: Plugin ligero para Claude Code / Codex / Hermes / OpenClaw, con asistente de arranque interactivo.
  • Despliegue Automatizado: Flujo de trabajo de GitHub Actions para ejecutar el comité y enviar informes por correo diariamente.

Inicio Rápido

1. Integra con tu agente (Recomendado)

Añade la habilidad ligera desde el registro de plugins de tu agente. El agente anfitrión extraerá automáticamente el código central y alineará las dependencias en la primera ejecución:

# Claude Code
/plugin marketplace add longsizhuo/openInvest
/plugin install invest@openinvest

# Codex
codex plugin marketplace add longsizhuo/openInvest

# Hermes Agent
hermes plugins install longsizhuo/openInvest --enable

# OpenClaw
openclaw plugins install clawhub:openinvest

Cualquier otro cliente MCP: registra el servidor MCP del paso 2 a continuación (tutorial completo en el tutorial de agente).

2. Independiente — Servidor MCP o CLI (sin necesidad de clonar)

El backend se publica en PyPI; ~/openInvest contiene solo tus datos:

# MCP (18 tools, any MCP client; add --http for a remote streamable-HTTP server — BETA)
claude mcp add openinvest -e INVEST_HOME=~/openInvest -- uvx openinvest-mcp

# or plain CLI
INVEST_HOME=~/openInvest uvx openinvest status

Envía set up invest (o 帮我初始化 invest) a cualquier terminal de IA con habilidades habilitadas. El sistema activará un asistente de arranque interactivo para guiarte a través de:

  1. Detección de la ruta de almacenamiento de estado memory/ y configuración de .env.
  2. Perfilado en 5 dimensiones (Nombre legal, Capacidad de riesgo, Estructura de deuda, Tenencias iniciales y claves opcionales).
  3. Ejecución de la migración de datos estática para generar inmediatamente tu primer memo de exposición de activos.

💡 Ejecución de Cero Costo: En el modo interactivo de habilidades, el razonamiento subyacente del comité depende completamente del pipeline de razonamiento del agente anfitrión (por ejemplo, Claude Code). No se consume ninguna clave de API de terceros. Solo necesitas configurar una clave de API al configurar crons automatizados o llamar a APIs web independientes.

Para detalles de autoalojamiento, ver docs/QUICK_START.md. (La GUI web incluida fue retirada el 2026-07-05 — todas las capacidades se exponen vía CLI/MCP; un frontend independiente puede regresar más adelante.)

3. Autoalojamiento Serverless (GitHub Actions)

Ejecuta el comité automáticamente vía GitHub Actions y recibe correos de resumen diarios.

⚠️ El fork debe ser Privado: Los archivos de estado (tenencias, veredictos) se enviarán de vuelta a tu fork. Los forks públicos filtrarán tu información financiera privada.

  1. Haz fork de este repositorio y cambia su visibilidad a Privado (Settings -> Visibility).
  2. Ejecuta set up invest localmente para generar la carpeta inicial memory/, luego haz commit y empuja a tu fork privado:
    git add -f memory/ && git commit -m "chore: init memory state" && git push
    
  3. En Settings -> Secrets and variables -> Actions de tu fork, añade los siguientes Secrets:
    • LLM_API_KEY (o DEEPSEEK_API_KEY): Clave de API para ejecutar el comité.
    • EMAIL_SENDER / EMAIL_PASSWORD: Dirección de Gmail + Contraseña de aplicación.
    • DIGEST_EMAIL_TO: Dirección de correo del destinatario.
  4. Habilita Workflows en la pestaña Actions. El flujo de trabajo se ejecuta automáticamente a las 10:00 AM (hora de Beijing) diariamente; también puedes activar manualmente daily-report vía Run workflow.

Arquitectura y Orquestación Multiagente

openInvest no ejecuta un debate simulado en una sola sesión de LLM. El sistema hace cumplir un Contrato de Aislamiento de Información en la capa core/committee/, orquestando 4 procesos LLM independientes en un grafo acíclico dirigido (DAG):

                [ Macro Data Injection ]
                           │
                 ▼ 1. Macro Alignment Context
             ┌──────────────────────────┐
             │    Macro Strategist      │ (VIX / Interest rate spread / Currency momentum)
             └─────────────┬────────────┘
                           │
                 ▼ 2. Async Multi-Dimensional Scrutiny (Async DAG)
             ┌─────────────┴────────────┐
             ▼                          ▼
   ┌──────────────────┐        ┌──────────────────┐
   │  Quant Analyst   │        │   Risk Officer   │
   │ (RSI / Momentum) │        │ (Concentration)  │
   │                  │        │                  │
   │ 🛑 No Holdings   │        │ 🛑 No Indicators │
   └─────────┬────────┘        └─────────┬────────┘
             │                           │
             └─────────────┬─────────────┘
                           │
             ▼ 3. Round 2 Rebuttal & Cross-Challenge
             │ Mutual feedback loop for signal correction
             ▼
   ┌──────────────────────────────────────────────┐
   │         Chief Investment Officer (CIO)       │
   └───────────────────────┬──────────────────────┘
                           │
             ▼ 4. Deterministic State Persistence
          [ BUY / ACCUMULATE / HOLD / TRIM / SELL ]
  1. Estratega Macro: Evalúa el panorama macro global (VIX, diferencial de la curva de rendimiento, matriz de divisas centrales) para establecer el umbral de riesgo de la cartera.
  2. Analista Cuantitativo: Un filtro puramente matemático de momentum e indicadores técnicos. Estrictamente bloqueado de conocer las tenencias de la cartera para eliminar el apego humano y los sesgos de aversión a la pérdida.
  3. Oficial de Riesgo: Se enfoca enteramente en riesgos de cola (buffers de drawdown, límites de concentración, multiplicadores de solvencia). Estrictamente bloqueado de indicadores técnicos para tomar decisiones objetivas de exposición de activos.
  4. Refutación de Ronda 2: Los analistas cuantitativo y de riesgo reciben los informes de la Ronda 1 del otro en la Ronda 2, desafiando límites hasta que las señales converjan o se activen las válvulas de seguridad.
  5. CIO (Director de Inversiones): Sintetiza los informes auditados y emite un Verdict estructurado (BUY / ACCUMULATE / HOLD / TRIM / SELL) con un nivel de confianza. No se ejecuta ninguna orden automática; la acción final sigue siendo estrictamente responsabilidad del auditor humano.

Las compensaciones clave detrás de este diseño están registradas como ADRs en docs/wiki/adr/ (24 hasta la fecha), incluyendo fallos que revirtieron nuestros propios diseños anteriores — ADR-007 retiró la ruta de CIO few-shot, y ADR-009 rechazó los agentes analistas de estilo TA después de un experimento pre-registrado.


Diseño Central

  • Patrón Coordinador-Trabajador: Los trabajadores operan en espacios de nombres aislados. Las restricciones de límites están codificadas en la capa del framework en Python para prevenir la contaminación de la atención en prompts grandes de múltiples roles.
  • Markdown como Base de Datos: El sistema usa Frontmatter (YAML) + Markdown (Cuerpo) como fuente única de verdad. Aprovechando los bloqueos de archivos de proceso fcntl.flock y el reemplazo atómico temporal de archivos, proporciona un rastro de auditoría de inversión a prueba de manipulaciones, rastreado nativamente por Git.
  • Consolidación de Sueños en Tres Fases: Destila las decisiones diarias contra los resultados reales del mercado nocturnamente (Sueño Ligero $\rightarrow$ REM $\rightarrow$ Sueño Profundo) para consolidar conocimientos a largo plazo, previniendo la deriva del contexto del Modelo de Lenguaje Grande (LLM) en largos períodos de ejecución.

Configuración

El sistema usa por defecto los endpoints de DeepSeek y soporta cualquier API estándar compatible con OpenAI. La configuración del proveedor de LLM y todas las anulaciones de tiempo de ejecución ajustables (ADR-017) están documentadas en docs/wiki/22-configuration.md.


Descargos de Responsabilidad y Limitaciones del Backtest

  1. Sin asesoramiento financiero: Este sistema es una herramienta de apoyo a la toma de decisiones impulsada por LLMs. Los memorandos de salida representan razonamiento simulado basado en datos deterministas y no constituyen asesoramiento sobre asignación de activos.
  2. Bloqueo de tiempo de backtest y protección contra lookahead: El motor de backtest (scripts/backtest_runner.py) tiene una válvula de seguridad codificada: rechaza backtests para decision_date > 2024-06-30 por defecto (anular con --allow-lookahead). Dado que los modelos fundacionales convencionales tienen fechas de corte de entrenamiento alrededor de mediados de 2024, realizar backtests en intervalos posteriores introduce un Sesgo de Lookahead severo (fuga de preentrenamiento del modelo). El ajuste de parámetros, los barridos de Optuna y la optimización de prompts deben ejecutarse estrictamente en ventanas históricas anteriores al 30 de junio de 2024.

Agradecimientos

  • MiMo — Agradecimientos especiales al Laboratorio Cuantitativo MiMo por patrocinar la inferencia de LLM de alto rendimiento de grado de producción (impulsando los barridos de horizonte largo de mimo-v2.5-pro).
  • OpenClaw Dreaming Guide — Fundamento teórico para el marco de destilación de memoria de ciclo de sueño de tres fases.

Licencia

Este proyecto está licenciado bajo la Licencia MIT; consulte el archivo LICENSE para obtener más detalles.