Black box LLM
"long BTC, conf 0.62" — source data, prompt, model version: nowhere on record. Nothing to attribute when it loses
Inalpha
research_id → backtest_run_id → plan_id, every decision traceable back through its full UUID chain
Factor lab · Risk engine · Strategy evolution · Plan/Exec — every factor proposed, every strategy mutated, every order routed is logged, versioned, and reviewable. The LLM writes the code; the engineering harness signs every decision.
git clone https://github.com/mirror29/inalphaMost "LLM + quant" stacks today: prompt in, "long BTC, conf 0.62" out, broker SDK next door. Lost money — no way to find which prompt or which slice of data broke. Made money — no way to tell alpha from overfit. Inalpha brings the Claude Code engineering harness (hooks / permissions / plan-exec) to LLM quant — the LLM only writes code; every decision is signed, every backtest is replayable, and the order path is never reachable by the LLM directly.
Black box LLM
"long BTC, conf 0.62" — source data, prompt, model version: nowhere on record. Nothing to attribute when it loses
Inalpha
research_id → backtest_run_id → plan_id, every decision traceable back through its full UUID chain
Black box LLM
How was last week's sharpe 2.14 computed? Params forgotten, data slice forgotten — recompute from memory
Inalpha
strategy_id + params_hash + as_of as a fingerprint. Same numbers any day, any week
Black box LLM
The LLM holds the broker SDK directly. One jailbreak prompt, one hallucination = real money out
Inalpha
permissions.yaml deny + plan/exec one-shot TTL token. The order path is unreachable by the LLM, ever
A.
B.
─── A alone is just a chat wrapper. B alone is just another backtest framework. Both — that's Inalpha.
Strategy code is written once. Swap the Clock for backtest vs live; swap the Gateway for paper vs broker. Business logic stays put — divergence can only come from physical reality (slippage, latency, data precision).
Strategy code is written once. Swap the Clock for backtest vs live; swap the Gateway for paper vs broker. Business logic stays put — divergence can only come from physical reality (slippage, latency, data precision).
from inalpha_paper import BacktestEngineengine = BacktestEngine(bars=bars_2024)strategy.run(engine)from inalpha_paper import LiveEngineengine = LiveEngine(broker=ibkr)strategy.run(engine)Multi-venue feeds. Freshness-anchored. Same client across markets.
from inalpha_data import get_barsIn-memory matching, backtest engine, persistent paper trading. State is replay-able.
from inalpha_paper import run_backtestMulti-analyst LLM debate. Opposing stances. No stale numbers passed as insight.
from inalpha_research import debateDeclarative configs decide what each agent can call. Plan → approve → execute is enforced by a one-shot, TTL-bound token — the LLM never reaches the order path unsupervised. Subagents isolate risk. MCP plugs in tools without hand-rolled glue.
── Click a mechanism on the right to inspect real source
Honest answers to the questions we get asked most.
All markets route through one orchestrator. Add a venue, every agent gets it for free.
── Crypto / 1
── Equities / 9
── Macro / 2
── Where we are honest with you
Inalpha is alpha-stage and AGPL-3.0. No real money yet — every line is on GitHub.
git clone https://github.com/mirror29/inalpha