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_runin settings.json)