32 Commits
Author SHA1 Message Date
OpenClaw Sub-agent 509723c197 fix(invest): mobile chart — fixed height, sane scales, horizontal x labels, compact legend/points, Chinese help
Root cause of the squashed chart: canvas had a fixed height=90 attr and no container, so on narrow viewports Chart.js compressed everything — legend overlapped the plot, x labels tilted 45deg, y ticks degenerated (-1000% scale). Fix: relative h-72/h-80 container + maintainAspectRatio:false, grace 5%, maxTicksLimit, maxRotation:0, smaller points (r2/1.5), compact legend/tooltip, Chinese help text.
2026-08-02 08:28:08 +10:00
OpenClaw Sub-agent b67a834def feat(invest): cost basis & P&L, AUD totals, chart ranges, per-ticker page, manual entry, tx search
P1:
- WAC cost basis per (portfolio, ticker): avg_cost / unrealized P&L / P&L%
  - transaction price when recorded, else trade-date market close (estimated, flagged)
  - dashboard: Unrealized P&L card + Avg Cost & P&L columns on holdings tables
  - fx: frankfurter.dev rates (USD/HKD->AUD, 24h cache, UA header required) -> AUD total on Total Value card
  - chart: 1M/3M/6M/YTD/1Y/ALL period buttons (all periods precomputed server-side, top-level payload stays YTD for compat)
P2:
- /invest/stocks/<ticker>/ per-ticker page: cross-account holdings, WAC, P&L, weight, theme, trade history
- manual transaction + cashflow entry forms (source=MANUAL, confidence=1.0)
- dashboard transaction search (?q= ticker/account) + add-transaction buttons
- tickers link to detail page; tabular-nums on all figures
- 8 new tests (WAC sell, estimated price, incomplete, per-portfolio agg, stock page, forms, search)
2026-08-02 08:09:58 +10:00
OpenClaw Sub-agent 5252222674 feat(invest): P0 dashboard polish — intcomma amounts, ticker-aggregated risk table, unified mobile grid, tx source badges, drop dead invest/base.html
- Add django.contrib.humanize; apply intcomma to every currency amount across invest templates (dashboard, portfolio detail, transactions)
- get_risk_summary now aggregates top_positions by ticker (MRVL across MOMO+IBKR merges into one row with Accounts column), keeping Top 1/3/5 cards and table on the same basis
- Mobile: metric cards all 2-col (2x2 + 2+1 with Last Snapshot spanning full width), no more 1-col break
- Transactions show source badges: purple 🤖 AI (source ai/ocr), grey 手动, amber ⚠ 低置信 when confidence < 0.9
- Delete unused invest/base.html (dead nav; page extends GoLinks base.html)
- tailwind.config.js: add invest/jbot/routermon template dirs so their classes are scanned (text-[10px] etc. were silently missing)
2026-08-02 07:45:21 +10:00
OpenClaw Sub-agent e87b714f84 fix: show legacy investment reports on invest dashboard 2026-06-14 09:04:43 +10:00
OpenClaw Sub-agent 526868630f feat: add invest chart value mode 2026-06-14 08:47:50 +10:00
OpenClaw Sub-agent f7a3d228c1 feat: add cashflow-adjusted invest dashboard 2026-06-14 08:19:44 +10:00
junv 81c56207d4 update 2026-05-11 20:25:25 +10:00
junv b52b821baf test change rate 2026-05-02 20:55:02 +10:00
junv 68dd32d2cd update performance chart logic! 2026-05-02 20:36:32 +10:00
junvandGitHub e5ea1e9bf4 Merge pull request #85 from wahyd4/feature/invest-portfolio
fix: remove duplicate serializer classes causing 500 on Transaction API
2026-04-28 14:17:12 +10:00
OpenClaw Sub-agentandCopilot 5125e69db5 fix: remove duplicate serializer classes causing 500 on Transaction API
The serializers.py file had two issues:
1. A second definition of TransactionSerializer that included a
   non-existent 'price_per_share' field, overriding the correct one
   and causing 500 errors on GET/POST /api/invest/transactions/.
2. Duplicate AIHoldingInputSerializer and AIUpdateSerializer blocks
   that were redundant (same content as the first definitions).

Removed all duplicate class definitions, leaving only the correct
single definitions that match the Transaction model fields.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-28 14:15:37 +10:00
junv e82a9c285e Update invest UI 2026-04-25 11:58:42 +10:00
junv 748a39975f Fix snapshot! 2026-04-25 11:58:42 +10:00
junv 9646cd7c7a fix: derive portfolio header change from sum of per-stock changes for consistency 2026-04-25 10:58:24 +10:00
junv f3e9e13297 fix: compare live portfolio value against last week snapshot (not this week) 2026-04-25 10:46:55 +10:00
junv 18c5a554d2 feat: show dollar + % week change per stock in portfolio table 2026-04-25 10:45:30 +10:00
junv 3acaa328cb feat: add per-stock weekly price change column to portfolio table 2026-04-25 10:42:21 +10:00
junv d4183f30e6 fix: show live values and correct change% on invest dashboard cards 2026-04-25 10:40:46 +10:00
junvandGitHub c0093ac6ab Merge pull request #83 from wahyd4/feature/invest-portfolio
fix: API bugs in invest portfolio
2026-04-18 23:42:21 +10:00
junv e9f7c90420 add transaction history section to invest dashboard 2026-04-18 23:29:56 +10:00
OpenClaw Sub-agent aee64a6df8 fix: remove duplicate PortfolioViewSet and add missing add_transaction helper 2026-04-18 23:24:38 +10:00
junv 8209ac34c7 fix weekly overview: use asof snapshot lookup and 5-day gap for last_week 2026-04-18 23:03:33 +10:00
junv 56bb5df57c cache benchmark prices in DB, refresh weekly 2026-04-18 22:58:25 +10:00
junv 3c2d97b31d update ui 2026-04-18 22:43:58 +10:00
junv 028b2eda76 Update ui 2026-04-18 22:43:58 +10:00
junv a5e9fe9cbb Update UI 2026-04-18 22:24:17 +10:00
junv e202304043 ui update 2026-04-18 22:16:45 +10:00
junv 830171b38a UI update 2026-04-18 22:04:01 +10:00
junv d933a99b8d Update logic 2026-04-18 22:01:34 +10:00
OpenClaw Sub-agent c34806a2e6 feat(invest): simplify model - Portfolio/Stock/Transaction, real-time P/L via yfinance 2026-04-18 21:25:48 +10:00
junv f44d76e9ad Rebase 2026-04-18 14:19:51 +10:00
OpenClaw Sub-agent 8d05a11eb6 feat(invest): Add investment portfolio management feature
- Portfolio management (MOMO, IBKR personal, IBKR Yanhua)
- Stock holdings with transaction history (buy/sell)
- Weekly AI report generation
- Real-time price cache via Finnhub API
- Dashboard with tree view and performance charts
- REST API with AI-friendly batch update endpoint
- Management command for scheduled report generation

For大哥's personal investment advisor system.
2026-04-18 11:26:48 +10:00