hmo
a40b97f5ca
feat(analysis): systematic daily 12-dim LLM analysis for holdings+watchlist
...
Gap (reported by user via zhiwei): premarket full review updated technical
params but full_analysis (12-dim LLM matrix) was empty for new holdings
and stale for old ones — batch_reassess existed but was never wired into
the daily pipeline and only covered watchlist.
System fix:
- premarket_full_review.py: new Step 1.5 runs batch_reassess --type
holding --today every trading day 08:10 (force-refresh today's analysis,
timeout 3600s, result in summary.json)
- batch_reassess.py:
- coverage: --type holding|watchlist|all (was watchlist-only)
- staleness: analysis >20h stale gets refreshed (was: skip if any
analysis exists = forever stale)
- --today flag: force re-analyze if not reassessed since 04:00 today
- cash/total read live from portfolio_summary (was hardcoded 321271/
952879 from weeks ago)
- HK stock prefix fix (5-digit codes -> hk, was sending sz00700)
- watchlist_12d_backfill.py: wrapper for hermes cron (no args support)
- cron job '批量补全九维分析-一次性' -> '自选12维分析补全-每日午间'
(daily 12:30 weekdays, covers 109 watchlist stocks missing analysis)
Verified: 300308 got 1920-char 12-dim analysis written to DB at 08:41,
signal=观望, stop/take-profit updated.
2026-07-20 08:48:08 +08:00
..
2026-07-08 12:34:39 +08:00
2026-07-06 14:01:54 +08:00
2026-07-08 23:54:01 +08:00
2026-07-09 17:57:17 +08:00
2026-07-08 12:37:36 +08:00
2026-07-20 01:12:38 +08:00
2026-07-10 13:58:23 +08:00
2026-07-04 09:30:50 +08:00
2026-07-08 23:54:01 +08:00
2026-07-09 19:42:35 +08:00
2026-07-10 14:06:20 +08:00
2026-07-20 08:48:08 +08:00
2026-07-20 01:34:37 +08:00
2026-07-19 20:12:47 +08:00
2026-07-19 11:06:50 +08:00
2026-07-20 08:48:08 +08:00
2026-07-20 01:12:38 +08:00
2026-07-19 11:06:50 +08:00
2026-07-19 11:06:50 +08:00
2026-07-19 11:06:50 +08:00
2026-07-06 14:01:54 +08:00
2026-07-08 23:54:01 +08:00
2026-07-08 23:54:01 +08:00
2026-07-08 19:50:44 +08:00
2026-07-14 10:56:38 +08:00
2026-07-20 01:12:38 +08:00
2026-07-14 12:14:08 +08:00
2026-07-06 14:01:54 +08:00
2026-07-08 23:54:01 +08:00
2026-07-08 19:50:44 +08:00
2026-07-10 11:59:08 +08:00
2026-07-14 11:08:07 +08:00
2026-07-19 20:12:47 +08:00
2026-07-20 01:12:38 +08:00
2026-07-14 15:00:56 +08:00
2026-07-19 11:06:50 +08:00
2026-07-20 01:12:38 +08:00
2026-07-19 11:06:50 +08:00
2026-07-10 10:26:14 +08:00
2026-07-20 01:34:37 +08:00
2026-07-06 14:01:54 +08:00
2026-07-01 23:00:28 +08:00
2026-07-06 14:01:54 +08:00
2026-07-03 12:12:05 +08:00
2026-07-09 19:42:35 +08:00
2026-07-17 23:08:11 +08:00
2026-07-14 10:56:38 +08:00
2026-07-19 20:12:47 +08:00
2026-07-19 11:06:50 +08:00
2026-07-02 13:46:53 +08:00
2026-07-01 23:00:28 +08:00
2026-07-08 12:37:36 +08:00
2026-07-19 12:47:15 +08:00
2026-07-08 20:04:32 +08:00
2026-07-08 12:37:36 +08:00
2026-06-27 01:37:18 +08:00
2026-06-24 00:15:33 +08:00
2026-07-08 12:34:39 +08:00
2026-07-06 14:01:54 +08:00
2026-07-08 23:54:01 +08:00
2026-07-09 16:35:27 +08:00
2026-07-06 14:01:54 +08:00
2026-07-06 14:01:54 +08:00
2026-07-08 23:54:01 +08:00
2026-07-08 23:54:01 +08:00
2026-07-14 11:01:59 +08:00
2026-07-14 10:56:38 +08:00
2026-07-08 12:37:36 +08:00
2026-07-06 14:01:54 +08:00
2026-07-09 11:13:45 +08:00
2026-07-08 12:34:39 +08:00
2026-07-08 23:54:01 +08:00
2026-06-30 02:56:35 +08:00
2026-07-13 12:09:25 +08:00
2026-07-19 20:12:47 +08:00
2026-07-08 23:54:01 +08:00
2026-07-09 13:43:30 +08:00
2026-07-10 12:20:18 +08:00
2026-07-08 16:18:26 +08:00
2026-07-14 15:33:35 +08:00
2026-07-06 14:01:54 +08:00
2026-07-13 12:09:25 +08:00
2026-07-04 09:30:50 +08:00
2026-07-08 23:54:01 +08:00
2026-07-06 14:01:54 +08:00
2026-07-03 12:12:05 +08:00
2026-07-04 09:45:27 +08:00
2026-07-20 00:40:32 +08:00
2026-07-20 08:48:08 +08:00
2026-07-14 10:56:38 +08:00
2026-07-08 12:34:39 +08:00
2026-07-06 14:01:54 +08:00
2026-07-13 12:09:25 +08:00
2026-07-13 12:09:25 +08:00
2026-07-08 23:54:01 +08:00
2026-07-08 23:54:01 +08:00
2026-06-29 23:25:54 +08:00
2026-07-08 12:37:36 +08:00
2026-07-08 23:54:01 +08:00
2026-07-08 12:37:36 +08:00
2026-07-17 23:08:11 +08:00
2026-07-08 23:54:01 +08:00
2026-07-08 12:34:39 +08:00
2026-07-08 23:54:01 +08:00
2026-07-19 10:56:42 +08:00
2026-07-09 13:43:30 +08:00
2026-07-06 14:01:54 +08:00
2026-07-07 11:20:04 +08:00
2026-07-19 23:23:46 +08:00
2026-07-17 23:08:11 +08:00
2026-07-08 12:34:39 +08:00
2026-07-10 21:07:59 +08:00
2026-07-19 20:12:47 +08:00
2026-07-19 23:23:46 +08:00
2026-07-19 22:09:15 +08:00
2026-07-19 20:12:47 +08:00
2026-07-20 01:12:38 +08:00
2026-07-20 00:21:49 +08:00
2026-07-19 20:12:47 +08:00
2026-07-19 11:06:50 +08:00
2026-07-19 23:23:46 +08:00
2026-07-19 20:12:47 +08:00
2026-07-08 12:37:36 +08:00
2026-07-20 08:48:08 +08:00
2026-07-08 10:13:49 +08:00
2026-07-20 01:12:38 +08:00
2026-07-20 08:48:08 +08:00
2026-07-20 00:07:28 +08:00
2026-07-07 15:33:14 +08:00
2026-07-19 11:06:50 +08:00
2026-07-10 12:20:18 +08:00
2026-07-08 12:37:36 +08:00
2026-07-01 23:00:28 +08:00
2026-07-06 14:01:54 +08:00
2026-07-09 10:35:34 +08:00
2026-07-02 01:43:33 +08:00