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 |
|