Commit graph

26 commits

Author SHA1 Message Date
Manohar
dca5fea679 feat: add Analysis tab with position intelligence engine
Phase 1 of the position-tracker → analysis port:

Backend:
- src/ai/types.ts       — shared types (AnalysisInput, ClassifiedPosition, AnalysisResult, etc.)
- src/ai/greeks.ts      — added calcTheoreticalPrice() export for scenario analysis
- src/ai/classifier.ts  — pure-function position classifier (DEAD_WEIGHT/WORKING/UNDER_PRESSURE/HEDGE/DANGER_SHORT) with module-level hysteresis Map
- src/ai/portfolio-greeks.ts — aggregates per-unit Greeks × quantity into portfolio totals
- src/ai/risk-assessor.ts   — naked short detection, concentration, side imbalance, Greeks breach checks
- src/ai/scenario.ts        — P&L grid at ±100..±1000 spot moves per underlying
- src/ai/analyze.ts         — orchestrator: maps Position[] → AnalysisInput[], reads spot from market_cache, stores JSON in analysis_snapshots
- src/db/client.ts      — analysis_snapshots table + index
- src/tracker/poll.ts   — runAnalysis() called after every pollTick + forcePoll
- src/api/server.ts     — GET /api/analysis endpoint

Frontend (public/index.html):
- Multi-page nav with Dashboard | Analysis tabs (showView())
- Analysis view: summary cards (delta/theta/vega/risk level), action list (urgent positions sorted by urgency score), classification table with urgency bars, risk assessment details, scenario P&L grid per underlying
- loadAnalysis() + renderAnalysis() wired to tab switch

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 14:07:24 +05:30
Manohar
a1945d06e2 fix: tab filtering uses filtered not open; tab class quote; booked=netqty=0 today only 2026-05-27 13:32:35 +05:30
Manohar
acf8799880 fix: P&L today-only date filter (IST), expiry tabs in positions table 2026-05-27 13:17:44 +05:30
Manohar
b41839e529 fix: restore LABELS const 2026-05-15 04:20:30 +00:00
Manohar
64c222b172 fix: empty string unit literal stripped by heredoc 2026-05-15 04:18:41 +00:00
Manohar
2f13c0d7a2 fix: restore quotes stripped by heredoc in market.ts 2026-05-15 04:17:22 +00:00
Manohar
c53c188ae4 fix: market token collision via tradingSymbol lookup; correct avg_price 2026-05-15 04:15:14 +00:00
Manohar
206127976d fix: remove netAmount shorthand (field no longer declared) 2026-05-15 04:07:55 +00:00
Manohar
aba1dcbdda fix: avg_price from netprice, hardcode VIX/crude/USDINR tokens, UI market cache fallback 2026-05-15 04:07:16 +00:00
Manohar
580c03e959 fix: add sendPortfolioDigest to import 2026-05-12 05:50:20 +00:00
Manohar
cdddefc6a9 fix: let not const for state (reassigned in init block) 2026-05-12 05:49:11 +00:00
Manohar
c46570171a fix: snake_case->camelCase (alerts now work); feat: 2h portfolio digest cron 2026-05-12 05:47:59 +00:00
Manohar
91fd17b158 fix: correct booked PnL (netqty=0 only), closed positions card, no false is_closed on open qty 2026-05-12 04:57:18 +00:00
Manohar
4d1c956963 fix: booked PnL from closed legs, login mutex, market cache-on-error 2026-05-12 04:33:15 +00:00
Manohar
6f06755e11 fix: login mutex, zero-qty realised PnL, market cache-on-error, UI preserve cards 2026-05-12 04:23:50 +00:00
Manohar
ed84985237 feat: 30s polling, market open/close Telegram alerts, mobile responsive UI 2026-05-11 04:45:22 +00:00
Manohar
5bdf7fbffe fix: market cache in SQLite for after-hours; collapsible sections with localStorage state 2026-05-09 03:50:11 +00:00
Manohar
496d192435 fix: market.ts dual-source (Angel primary, Yahoo fallback for after hours) 2026-05-08 17:45:35 +00:00
Manohar
a3bb07f7ef feat: Angel SmartAPI market data endpoint (NIFTY/SENSEX/VIX/crude/INR) + global alert config 2026-05-08 17:42:43 +00:00
Manohar
03035b3965 fix: recordSnapshot type annotation + datetime quotes 2026-05-08 17:13:17 +00:00
Manohar
247f750de4 feat: P&L snapshots table, /api/pnl-history, intraday chart + totals row in UI 2026-05-08 17:10:17 +00:00
Manohar
f809fbdaa1 feat: options/F&O positions only — exclude equity holdings 2026-05-08 17:06:42 +00:00
Manohar
60e5c7647d feat: forcePoll at startup + POST /api/refresh (bypasses market hours) 2026-05-08 16:44:11 +00:00
Manohar
4a637351db fix: remove dotenv/config import — env vars injected by Dokploy in prod 2026-05-08 16:34:32 +00:00
Manohar
28178abbe5 fix: remove import.meta (ESM-only) — use native __dirname in CJS 2026-05-08 16:33:15 +00:00
Manohar
971c59df11 feat: initial position tracker scaffold 2026-05-08 11:22:05 +00:00