How it works

From login to square-off—what happens inside one Execute or Analyze run.

Pipeline

1
Universe

Resolve spot, nearest weekly expiry, ATM, ±5 strikes; subscribe websocket ticks.

2
Market context

Spot, VIX, gaps, ORB, CPR, VWAP proxy, wall OI & changes.

3
Probability

Base from walls → combine nudges → upside / downside %.

4
Decision

Map to CALL / PUT / BOTH / NO_TRADE with profitability gates.

5
Entry

Execute only: market BUY on chosen leg(s); dry_run logs instead of sending.

6
Monitor

SL / target / time exit / force exit on live ticks until flat or stopped.

Architecture

┌─────────────┐     WebSocket      ┌──────────────┐
│  Dashboard  │ ◄────────────────► │  Flask app   │
│  (browser)  │     REST / Socket  │  app.py      │
└─────────────┘                    └──────┬───────┘
                                          │ thread
                                          ▼
                                   ┌──────────────┐
                                   │  engine.py   │
                                   │  decision +  │
                                   │  option_signal│
                                   └──────┬───────┘
                                          │
                    ┌─────────────────────┼─────────────────────┐
                    ▼                     ▼                     ▼
             Zerodha Kite          Alice Blue ANT          Gemini / Claude
             (optional)            (optional)              (optional)

Data during the session

  • Zerodha — Intraday candles and quotes via Kite during market hours.
  • Alice Blue — Live LTP/OI via websocket during 9:15–15:30; minute history backfill after ~17:30 IST per vendor rules.
  • Chart on dashboard — Live merge while open; full-day 1m backfill when history API is available.

What does not happen

  • No cloud hosting of your keys or positions
  • No repeated AI calls in the monitoring loop
  • No automatic switch to LIVE mode from the UI (you edit dry_run in settings.json)

Setup guide