flagshipemporos.journeymen.in

A trading desk that refuses to guess.

Emporos trades Nifty weekly options through Angel One. It records the market every minute, paper-trades 24 books of one breakout rule, and trades one book for real, but only when five separate locks agree and sixteen risk rules pass.

1 minquote cadence
24paper books
1live book
16risk rules
30 sbroker reconcile
01 — the live book, O-N5-B5

Move, build-up, breakout, then the peak

The setup detector sees each Nifty 1-minute candle only after it closes, so it cannot look ahead. The live book then waits for Nifty’s live price to reach the breakout candle’s peak before it buys. It has traded real money since 2026-10-12.

  1. Pick the option

    Nearest expiry, highest open interest within ATM ± 2 strikes.

  2. Wait for the peak

    No depth gate on this book. It buys when Nifty’s live price reaches the breakout candle’s peak, up to 15:12.

  3. Size and buy

    Whole lots within 90% of available cash, as a limit order.

  4. Lock the floor, then trail

    A Rs 2,000 floor, then a trailing stop that keeps 80% of the peak gain.

  5. Or get out

    A Rs 10,000 gross hard stop, or 15:15. One position at a time; entries end for the day at net +Rs 8,000 or −Rs 5,000.

02 — research

The live book against the paper rule

The declared research rule, O-main, still runs on paper with the other books. The live book drops the width limit and the depth gate, enters on the peak instead of the close, keeps entering until 15:12 and trails its profit.

rulelive · O-N5-B5research · O-main (paper)
move5 candles≥ 3 closes, ≥ 0.10% of spot
build-up5 candles, no width limit5 candles, width ≤ 60% of the move
depth gatenonebuy share ≥ 0.90, row ≤ 90 s old
entrylive price reaches the breakout candle's peakat the breakout candle's close
last entry15:12before 12:00
per dayone position at a time, watches again after each exitone trade
sizingwhole lots within 90% of available cash40–60% of capital
floorRs 2,000, then a trailing stop keeping 80% of peak gainP* = entry + (Rs 2,000 + costs) / qty
hard stopRs 10,000 grossRs 10,000
time exit15:1515:15
day limitentries end at net +Rs 8,000 or −Rs 5,000—
03 — the order path

Intent first, broker second, never a blind retry

04 — risk engine

Sixteen rules, checked in order, every order

A pure, ordered list over an immutable snapshot of the account, so every rule is unit-testable. A rejection is always stored with its full context: a signal that silently vanished could not be audited.

05 — the live gate

Real money needs five yeses

live-trading flagswitched on in AWS SSM
committed overridenames this book and its limits
behaviour hash acktyped by the operator
kill switch clearmongo flag + file sentinel, polled every 5 s
dry / real switchthe operator's, on the dashboard
06 — the desk

The operator's dashboard

[emporos demo dashboard url]demo · pending
[live demo dashboard loads here: blocked, see /emporos/demo]
07 — where it runs

Only one process can touch the broker

ec2 · systemd

Trader + recorder

The only holder of broker credentials.

lambda · api gateway

Control API

Overview, live page, orders, command bus.

vercel · next.js

Dashboard

Reads the API only, holds no secrets.

s3 · parquet

Quotes and history

Nifty spot, India VIX and option chains, once a minute.

mongodb atlas

Live state

Orders, append-only order events, acks.

# layers, lowest first
core
 < domain
 < persistence / broker
 < execution / risk / quotes
   / breakout / livetrade
 < api / cli
python 3.12 · asyncioangel one smartapiaws ec2 · lambda · s3 · ssmmongodb atlasnext.js 16 · react 19 · verceltailwind 4 · lightweight-charts · tanstack query