OpenInvestOp
Motor de decisão de investimento de nível de pesquisa para agentes de IA: comitê multiagente isolado, vereditos auditáveis, backtests com proteção contra lookahead, resultados negativos publicados
Documentação
openInvest
Um mecanismo de decisão de investimento auto-hospedado, construído para agentes de IA modernos. Isolamento de informações multiagente e protocolo de desafio cruzado, fornecendo uma trilha de decisão auditável (Audit Trail).
O que é o OpenInvest?
O OpenInvest é um mecanismo de decisão de investimento auto-hospedado, construído para agentes de IA modernos.
Ele fornece um comitê de investimento verificável, raciocínio baseado em evidências, backtesting de longo horizonte e registros de decisão auditáveis. Em vez de substituir o Claude Code, Codex, Hermes ou OpenClaw, o OpenInvest foi projetado para potencializá-los.
Desempenho ao Vivo e PnL
Metade superior: tendência do valor patrimonial líquido de 30 dias · Metade inferior: comparação do valor patrimonial líquido com 8 ativos de referência (divulgação transparente, não é uma alegação de alfa—o valor comprovado do comitê é disciplina e transparência, não retorno excessivo, veja ADR-023)
📌 Nota: O gráfico atual mostra o portfólio de produção ao vivo do autor. Após o auto-hospedagem, o sistema renderizará automaticamente sua própria curva de patrimônio com base nas participações definidas no seu diretório `memory/`.
- Portfólio de Referência: O sistema introduz 8 benchmarks de controle padrão em 4 quadrantes (Assessores de IA / Fundos mútuos / Gestão de patrimônio / Índice de mercado amplo). Para detalhes sobre a metodologia de comparação e a lógica de limpeza de dados, veja docs/wiki/README.md.
Pesquisa e Falsificação
Autodeclaração do Sistema: Este sistema é uma ferramenta de auditoria para eliminar vieses cognitivos humanos em investimentos e impor transparência de raciocínio, não uma caixa-preta que amplifica retornos. Última auditoria automatizada (docs/verdict_accuracy.md): Vereditos direcionais (excluindo HOLD) têm uma taxa de acerto real de 42,2% (n=56, abaixo do aleatório); HOLD representa 56% de todas as decisões. O valor do sistema está na transparência e disciplina (permanecendo majoritariamente inativo, baixo turnover), não na previsão direcional. O fluxo de logs detalhado pode ser encontrado em docs/verdict_accuracy.md.
Este projeto tenta sistematicamente falsificar sua própria vantagem e publica resultados negativos como estão. As características determinísticas que o comitê lê, e os sinais de timing ao redor delas, foram testados contra portões estatísticos pré-registrados — nenhum sobreviveu como alfa negociável.
| Teste | Resultado | Veredito |
|---|---|---|
| Seleção de ações transversal Q1 | 6 características, IC médio 0,025–0,067, Holm corrigido p=0,397 | Sem sinal significativo de seleção de ações |
| GBM multivariado M1 (fora da amostra) | IC OOS médio +0,003, p=0,925 | A combinação de características também não ajuda — sem sinal |
| Tendência Q2 ouro MA200 | p_holm=0,016, significativo — mas trend_dca mostra que é beta, não alfa negociável: valor terminal de timing 3,07 vs 15,10 comprar e manter, Sharpe +0,36 vs +0,68, drawdown máximo mais profundo (−57% vs −44%) | Estatisticamente significativo, economicamente não negociável |
| Famílias de múltiplos sinais por ativo | 3 ativos × 4 famílias de sinais × grade de parâmetros = 24 variantes por ativo; após custos + deflação DSR, nenhuma passa DSR > 0,95 | Sem sinal negociável em nenhuma família |
| Controle positivo | Um sinal de timing trapaceiro com previsão perfeita pontua DSR = 1,00 | O harness consegue detectar um sinal real |
Metodologia: Estatísticas t de Newey-West HAC, Índice de Sharpe Deflacionado (Bailey & López de Prado 2014, re-derivado equação por equação), correção de Holm, zero lookahead e sondas de corte de treinamento de LLM.
Detalhes: experiments/signal-eval/README.md · docs/verdict_accuracy.md · ADR-022 · ADR-023
Filosofia do Produto
A maioria dos assistentes de investimento com IA tenta se tornar melhores chatbots. O OpenInvest, em vez disso, constrói um mecanismo de decisão transparente, verificável e auditável que se conecta a agentes pessoais como Claude Code, Codex, Hermes e OpenClaw — cada melhoria nesses agentes torna automaticamente o OpenInvest mais capaz.
A divisão de trabalho é deliberada: seu agente cuida da memória de longo prazo, conversa natural e compreensão do usuário; o OpenInvest cuida do comitê de investimento verificável, raciocínio baseado em evidências, backtesting de longo horizonte e registros de decisão auditáveis.
User
│
┌───────────┴───────────┐
▼ ▼
Your Agent OpenInvest
(User Understanding) (Market Understanding)
│ │
└───────────┬───────────┘
▼
Better Investment Decisions
Seu agente conhece você. O OpenInvest conhece investimentos.
Evitando a Propriedade do Usuário
O OpenInvest evita intencionalmente "possuir" o usuário. A maioria dos produtos de IA tenta possuir tudo—memória, persona, histórico de chat e espaços de trabalho. O OpenInvest fica em segundo plano. Ele expõe APIs limpas, comandos CLI e habilidades de agente (Claude Code / Codex / Hermes / OpenClaw), permitindo que seu agente principal gerencie a conversa e o contexto enquanto o OpenInvest potencializa a inteligência de investimento subjacente.
Recursos
- Comitê de Investimento Multiagente: Análise isolada e debate de réplica em rodadas.
- Arquitetura Coordenador-Trabalhador: Previne contaminação de contexto e alucinação de papéis.
- Isolamento de Informações: Bloqueia rigidamente analistas quantitativos e de risco de contextos fora dos limites.
- Trilha de Decisão Auditável: Logs limpos mostrando exatamente o "porquê" de cada decisão.
- Markdown como Banco de Dados: Frontmatter (YAML) + Markdown (Corpo) como fonte única de verdade.
- Backtesting de Longo Horizonte: Harness de teste integrado com proteções contra viés de lookahead.
- Consolidação de Memória Baseada em Sonhos: Destilação noturna de memória para prevenir desvio de contexto.
- Auto-Hospedado / Custo Zero: Alimentado diretamente pelos recursos de raciocínio do seu agente local.
- Habilidade de Agente: Plugin leve para Claude Code / Codex / Hermes / OpenClaw, com assistente de bootstrap interativo.
- Implantação Automatizada: Fluxo de trabalho do GitHub Actions para executar o comitê e enviar relatórios por e-mail diariamente.
Início Rápido
1. Integre com seu agente (Recomendado)
Adicione a habilidade leve do registro de plugins do seu agente. O agente host puxará automaticamente o código central e alinhará as dependências na primeira execução:
# 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
Qualquer outro cliente MCP: registre o servidor MCP do passo 2 abaixo (tutorial completo no tutorial do agente).
2. Autônomo — servidor MCP ou CLI (sem necessidade de clone)
O backend é distribuído no PyPI; ~/openInvest contém apenas seus dados:
# 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
Envie set up invest (ou 帮我初始化 invest) para qualquer terminal de IA com habilidade habilitada. O sistema acionará um assistente de bootstrap interativo para guiá-lo através de:
- Detecção do caminho de armazenamento de estado
memory/e configuração.env. - Perfilamento em 5 dimensões (Nome legal, Capacidade de risco, Estrutura de dívida, Participações iniciais e chaves opcionais).
- Execução de migração de dados estática para gerar imediatamente seu primeiro memorando de exposição de ativos.
💡 Execução de Custo Zero: No modo interativo de habilidade, o raciocínio subjacente do comitê depende inteiramente do pipeline de raciocínio do agente host (ex.: Claude Code). Nenhuma chave de API de terceiros é consumida. Você só precisa configurar uma chave de API ao configurar crons automatizados ou chamar APIs Web independentes.
Para detalhes de auto-hospedagem, veja docs/QUICK_START.md. (A GUI Web incluída foi aposentada em 2026-07-05 — todos os recursos são expostos via CLI/MCP; um frontend autônomo pode voltar mais tarde.)
3. Auto-Hospedagem Serverless (GitHub Actions)
Execute o comitê automaticamente via GitHub Actions e receba e-mails de resumo diários.
⚠️ O fork deve ser definido como Privado: Arquivos de estado (participações, vereditos) serão commitados de volta ao seu fork. Forks públicos vazarão suas informações financeiras privadas.
- Faça um fork deste repositório e altere sua visibilidade para Privado (Configurações -> Visibilidade).
- Execute
set up investlocalmente para gerar a pasta inicialmemory/, depois faça commit e push para seu fork privado:git add -f memory/ && git commit -m "chore: init memory state" && git push - Nas Configurações -> Segredos e variáveis -> Actions do seu fork, adicione os seguintes Segredos:
LLM_API_KEY(ouDEEPSEEK_API_KEY): chave de API para executar o comitê.EMAIL_SENDER/EMAIL_PASSWORD: endereço Gmail + Senha de aplicativo.DIGEST_EMAIL_TO: endereço de e-mail do destinatário.
- Habilite Workflows na aba Actions. O workflow é executado automaticamente às 10:00 (horário de Pequim) diariamente; você também pode acionar manualmente
daily-reportvia Run workflow.
Arquitetura e Orquestração Multiagente
O openInvest não executa um debate simulado em uma única sessão de LLM. O sistema impõe um Contrato de Isolamento de Informações na camada core/committee/, orquestrando 4 processos LLM independentes em um grafo acíclico direcionado (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 ]
- Estrategista Macro: Avalia o panorama macro global (VIX, spread da curva de juros, matriz de moedas centrais) para estabelecer o limite de risco do portfólio.
- Analista Quantitativo: Um filtro puramente matemático de momentum e indicadores técnicos. Estritamente bloqueado de saber as participações do portfólio para eliminar apego humano e vieses de aversão à perda.
- Oficial de Risco: Foca inteiramente em riscos de cauda (buffers de drawdown, limites de concentração, multiplicadores de solvência). Estritamente bloqueado de indicadores técnicos para fazer determinações objetivas de exposição de ativos.
- Réplica da Rodada 2: Os analistas Quantitativo e de Risco recebem os relatórios da Rodada 1 um do outro na Rodada 2, desafiando limites até que os sinais convinjam ou válvulas de segurança sejam acionadas.
- CIO (Chief Investment Officer): Sintetiza os relatórios auditados e gera uma
Verdictestruturada (COMPRAR / ACUMULAR / MANTER / REDUZIR / VENDER) com um nível de confiança. Nenhuma execução automática de ordens ocorre; a ação final permanece estritamente a cargo do auditor humano.
As principais compensações por trás deste design estão registradas como ADRs em docs/wiki/adr/ (24 até o momento), incluindo decisões que reverteram nossos próprios designs anteriores — ADR-007 aposentou a rota de CIO few-shot, e ADR-009 rejeitou agentes analistas estilo TA após um experimento pré-registrado.
Design Central
- Padrão Coordenador-Trabalhador: Trabalhadores operam em namespaces isolados. Restrições de limite são codificadas na camada de framework em Python para prevenir contaminação de atenção em prompts multi-papéis grandes.
- Markdown como Banco de Dados: O sistema usa Frontmatter (YAML) + Markdown (Corpo) como fonte única de verdade. Aproveitando
fcntl.flockbloqueios de arquivo de processo e substituição atômica temporária de arquivos, fornece uma trilha de auditoria de investimento à prova de adulteração, rastreada nativamente pelo Git. - Consolidação de Sonhos em Três Fases: Destila decisões diárias contra resultados reais de mercado à noite (Sono Leve $\rightarrow$ REM $\rightarrow$ Sono Profundo) para consolidar insights de longo prazo, prevenindo desvio de contexto do Modelo de Linguagem Grande (LLM) ao longo de execuções longas.
Configuração
O sistema usa endpoints DeepSeek por padrão e suporta qualquer API padrão compatível com OpenAI. A configuração do provedor de LLM e todas as substituições de runtime ajustáveis (ADR-017) estão documentadas em docs/wiki/22-configuration.md.
Avisos Legais e Limitações de Backtest
- Sem Consultoria Financeira: Este sistema é uma ferramenta de apoio à decisão baseada em LLMs. Os memorandos de saída representam raciocínio simulado com base em dados determinísticos e não constituem aconselhamento de alocação de ativos.
- Trava de Tempo de Backtest e Proteção contra Lookahead: O mecanismo de backtest (
scripts/backtest_runner.py) possui uma válvula de segurança embutida: ele rejeita backtests paradecision_date > 2024-06-30por padrão (substituível com--allow-lookahead). Como os modelos de fundação convencionais têm datas de corte de treinamento em meados de 2024, realizar backtests em intervalos posteriores introduz severo Viés de Lookahead (vazamento de pré-treinamento do modelo). O ajuste de parâmetros, varreduras Optuna e otimização de prompts devem ser executados estritamente em janelas históricas anteriores a 30 de junho de 2024.
Agradecimentos
- MiMo — Agradecimentos especiais ao Laboratório Quantitativo MiMo por patrocinar inferência LLM de alto desempenho em nível de produção (alimentando varreduras de longo horizonte do
mimo-v2.5-pro). - Guia de Sonhos OpenClaw — Fundamento teórico para o framework de destilação de memória em ciclo de sono de três fases.
Licença
Este projeto é licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.