INALPHAOPEN-SOURCE QUANT AGENT FRAMEWORKD-11REV 0.112026.06.05AN ORACLE THAT KEEPS A LEDGERFACTOR TIMING · RANK ICINVESTING LEGENDS PANELSTRATEGY EVOLUTIONPLAN · APPROVE · EXECUTEAUTONOMOUS PAPER RUNNERAGENTS · FIRST-CLASSAGPL-3.012 MARKETSINARI OMIKUJI
InalphaInari × alpha

An oracle that keeps a ledger.

Quant agents that evolve under audit.

Agents pick the factors that work now, convene a panel of investing legends, write and evolve the strategies — and route every order through machine approval. The LLM writes the code; the engineering harness signs every decision.

$git clone https://github.com/mirror29/inalpha
View on GitHub
Why Inalpha · the black box vs the ledger

Most AI trading is a black box.Inalpha writes everything down.

the black box
When it loses

"Buy BTC, 0.62 confidence" — and no way to tell which data or which step went wrong.

When it wins

Was that skill, or luck? If you can't reproduce it, you can't trust it.

Who can place a trade

The model holds the keys to your account. One bad prompt becomes a real order.

Inalpha · ledger
01
When it loses

Replay the exact decision: the data it saw, the logic it ran, the reason it gave.

02
When it wins

Every idea and test is on record, so real edge is something you can prove — not a lucky streak.

03
Who can place a trade

The AI only proposes. A rule you set places the order — it can't pull the trigger itself.

An AI that explains itself — and never trades behind your back.

Intelligence · factors that work now

Agents that pick the factors that work now.

factor.timing ranks the factor zoo by rolling Rank IC and surfaces the currently-effective signals — every factor formalized, IC-tested, multiple-testing-checked, and logged with author, timestamp, and the economic-story gate decision.

factor.timing · rolling Rank IC
factor.timing — ranked by 60d rolling Rank IClive · illustrative
momentum_60deffective
+0.082
residual_reversaleffective
+0.061
vol_carryeffective
+0.047
amihud_illiq
+0.024
pead_drift
+0.012
value_bm
-0.007
Research · opposing minds, one synthesis
deep_dive ~ NVDA · live debateillustrative
bulls 00 bears

Research is a debate, not a single voice.

A deep dive convenes technical, fundamental, sentiment, and valuation analysts — and, when you ask, a panel of investing legends. They argue opposing cases, then Inalpha synthesizes the disagreement into one decision on record.

Optional · a panel of investing legends
BuffettLynchWoodBurryDruckenmillerMarks
Evolution · written, sandboxed, mutated

Agents write the strategy — then rewrite it to beat itself.

An agent writes a full strategy in Python. Three sandbox gates clear it before a single backtest runs. Then it mutates under a multi-objective fitness, so no one metric can be gamed — only strategies that beat the baseline survive.

Agent writes
class Strategy(Bar): ...
Three sandbox gates
1AST audit

no os / eval / jailbreak imports

2Isolated subprocess

runs walled off from the kernel

3Strategy contract

must subclass + implement on_bar

Multi-objective fitness
sharpe + 0.3·calmar − 0.1·turnover − 1.0·(maxDD > 30%)
mutate · evaluate · keep what beats the baseline
Unified kernel · same code, three modes

One codebase.
Three modes.

Strategy code is written once. Backtest, paper, and the live runner all share it — swap only the Clock and the Gateway. Business logic never changes; divergence can only come from physical reality — slippage, latency, data precision.

strategy = MomentumStrategy(params)
clock =SimClock(bars_2024)
gateway =SimGateway()
engine.run(strategy, clock, gateway)
only clock + gateway change · your strategy never does
01 / kernelv0.x

data

Multi-venue feeds. Freshness-anchored. Same client across markets.

from inalpha_data import get_bars
02 / kernelv0.x

paper

In-memory matching, backtest engine, persistent paper trading. State is replay-able.

from inalpha_paper import run_backtest
03 / kernelv0.x

research

Multi-analyst LLM debate. Opposing stances. No stale numbers passed as insight.

from inalpha_research import debate
Trust boundary · the moat

The AI proposes.
It never places the order.

Every order intent walks a one-way path: the agent drafts a plan, a rule you set (or you) approves it, and only then does a single-use, expiring token unlock execution. The model has no tool that reaches the order book directly — not after a jailbreak, not after a hallucination.

LLM agent
trade.create_planAgent drafts a plan
trade.approve_planA rule, or you, approves
trade.execute_planOne-shot token executes
Order book
LLM agent
denied — no direct path for the LLM
Order book
Coverage · twelve markets, one kernel

Same kernel. Same prompts. Same agents.

All markets route through one orchestrator. Add a venue, every agent gets it for free.

orchestrator
research
factor
risk
execution

add a venue — every agent gets it for free

── Where we are honest with you

  • 01D-11 shipped: cross-currency cash + an autonomous paper runner — promoted strategies trade a simulated account on live bars, machine-approved through plan/exec, with full decision replay
  • 02RiskEngine enforced at the paper HTTP boundary: notional cap / price deviation / drawdown veto / real exchange calendars across every market
  • 03No real-capital deployment — the runner trades a paper account, orders matched locally; every step passes plan/exec approval and lands on disk
FAQSEO.md §FAQ

What you're probably wondering.

Honest answers to the questions we get asked most.

Get startedagpl-3.0 · audited · open

Star it. Read it. Tear it apart.

Inalpha is alpha-stage and AGPL-3.0. No real money yet — every line is on GitHub.

$git clone https://github.com/mirror29/inalpha
0── stars
0── contributors
0── commits
0── markets
not for live capital