Manja desk Research paper →

One engine.
Backtest, paper, live.

Manja is a personal algorithmic trading desk for Indian markets. An event-sourced Rust engine runs research and production through the same loop — broker-agnostic by design, compliance-gated by default.

/ 01the terminal

This is the desk. Touch it.

A working slice of the live terminal — dummy portfolio, dummy strategies, dummy trades, dummy market. The real desk runs behind sign-in.

Manja desk DEMO DATA
Net P&L
+₹41,500 +3.95%
Total equity
₹10.92L
Open P&L
+₹28,340
Funded
₹10.5L
portfolio NIFTY 200
where the profit comes from — winning strategies vs losing strategies
5 gainers +₹48,780 2 losers −₹7,280 net +₹41,500
/ 02Strategies — ranked by net P&L
/ 01Activity — desk-wide, demo
Orders filled
312
Trades closed
96
Books
7
DateSymbolActionQtyPrice
/ 01Breadth — NIFTY 200 universe, demo
ADV118 DECL74 UNCH8 RATIO1.59
/ 02Indices
INDIA VIX 12.42 −2.1% LOW calm regime · trend strategies favoured
/ 01Sector heatmap — demo
    / 02the loop

    Research is production.

    BACKTEST
    every idea starts against history
    SWEEP
    parameters searched, not guessed
    FORWARD PAPER
    live market, paper capital
    LIVE
    compliance-gated execution

    The engine doesn't know which mode it's in. Only the adapters change.

    / 03engine

    An engine, not a notebook.

    the loop

    One engine. Backtest and live are the same code.

    For a backtest it reads historical bars and fills orders against a simulator. To go live you point it at a live feed and a real broker. The loop between those two ends never changes. One feed reaches every strategy at once, and their orders pass the risk manager before the broker sees them.

    MARKET FEED historical ⇆ live ENGINE same loop strategy A strategy B … N strategies RISK GATE kill · limits · sizing BROKER simulator ⇆ live running
    event sourcing

    Restart-safe by design

    Every order, fill, and risk change is written to an append-only log. If the process dies, it replays the log and comes back in the same state it was in. Memory holds nothing you can't rebuild.

    costs

    Costs priced in

    Every simulated fill is charged brokerage, STT, exchange fees, and stamp duty. A backtest that skips these will happily show you a profit that costs would have wiped out.

    risk

    Risk & sizing in the loop

    Position sizes scale with volatility and the cash a strategy actually has. The kill switch and hard limits live inside the engine, so a strategy can stop itself the moment it breaches. No dashboard in the loop.

    compliance

    Compliance-ready

    Order rate is capped in code at the regulatory limit, right where orders leave the system. Compliance is built into that boundary, not bolted on afterward.

    deployment

    Running in production

    Strategies trade forward every session on live market data. It's the same engine that ran the backtests, now in production.

    dispatch

    The desk letter

    One mail when something ships — a strategy goes live, a phase lands, a post-mortem gets written. No noise.