Sakurasan
|
317ea483d0
|
feat: 移除公开触发AI分析接口,仅管理面板可用
|
2026-09-01 19:16:09 +08:00 |
|
Sakurasan
|
45fe244330
|
feat: 移除AI分析页面触发按钮,仅保留管理面板触发
|
2026-09-01 19:09:16 +08:00 |
|
Sakurasan
|
21afb863b3
|
feat: 管理面板报告列表增加跳转链接
|
2026-09-01 18:51:24 +08:00 |
|
Sakurasan
|
08fa30cb78
|
style: 管理面板重构,与主站风格统一(oklch色彩+dark模式+响应式)
|
2026-09-01 18:50:12 +08:00 |
|
Sakurasan
|
7dba0238a5
|
feat: 管理面板(登录认证+触发AI分析+统计+CLI改密码)
|
2026-09-01 18:41:32 +08:00 |
|
Sakurasan
|
bfcc932406
|
feat: AI分析报告增加下个交易日建议模块
|
2026-09-01 18:13:29 +08:00 |
|
Sakurasan
|
d0eafe203c
|
fix: AI_MAX_TOKENS/AI_TEMPERATURE 未配置时使用模型默认值,避免截断分析输出
|
2026-09-01 17:58:27 +08:00 |
|
Sakurasan
|
86429f43c2
|
feat: 暴露fuyao SDK全部A股接口 + AI分析轮次上限提至30
|
2026-09-01 17:04:38 +08:00 |
|
Sakurasan
|
8b43b57bb2
|
feat: 同一交易日内可随时重新生成报告
|
2026-09-01 16:16:45 +08:00 |
|
Sakurasan
|
35ea82863f
|
fix: AI分析使用完整前日报告,不截断
|
2026-09-01 16:12:58 +08:00 |
|
Sakurasan
|
a005118aa4
|
feat: AI分析加入前日报告上下文 + 隐藏模型名 + Docker上海时区
|
2026-09-01 16:11:08 +08:00 |
|
Sakurasan
|
64c6ed92b0
|
fix: 主题切换改为点击展开收起模式
|
2026-09-01 12:41:47 +08:00 |
|
Sakurasan
|
6478e0d403
|
feat: AI分析单页展示 + 主题切换 + 移动端适配
- AI分析页改为直接展示最新报告,历史存数据库
- 新增浅色/深色/系统自动主题切换
- 市场看板、AI分析页适配主题变量
- 移动端表格可滑动、按钮自动换行
- Mermaid图表支持
- Markdown表格渲染支持(remark-gfm)
|
2026-09-01 12:33:27 +08:00 |
|
Sakurasan
|
912a224b6b
|
feat: AI市场分析功能
- 后端:AI分析服务、工具调用、定时任务
- 前端:报告列表、详情页、Mermaid图表支持
- 支持OpenAI API兼容模型
- 收盘后自动分析生成报告
|
2026-09-01 04:21:29 +08:00 |
|
Sakurasan
|
d7d019c2c4
|
feat: 市场看板 - 聚合同花顺SDK全量数据的A股实时看板
- 新增 /dashboard 页面:暗色主题,指数行情/市场温度/涨跌分布/行业强度/概念热度/事件情报
- 后端聚合接口 /api/market-dashboard,30秒缓存
- 利用SDK接口:指数行情、全市场快照、涨停/跌停/炸板池、连板天梯、热门股、飙升榜、龙虎榜、异动分析、集合竞价基准、行业/概念目录
- 市场温度评分:6因子加权(涨跌比/中位涨跌/强弱比/涨停活跃度/炸板惩罚/竞价信号)
- 首页添加市场看板导航入口
|
2026-08-31 10:29:37 +08:00 |
|
Sakurasan
|
b1f216b2a4
|
feat: K线增加分钟/小时周期切换,拆分独立KLineCard组件
- 后端:腾讯 mkline 新增 /api/stock/history-minute(m1/m5/m15/m30/m60)
- 新组件 kline-card.tsx:自包含周期/折线蜡烛/指标开关与K线数据加载,
切周期只重拉K线,不刷新页面其他模块
- 详情页瘦身为独立模块:K线图 / 今开最高最低昨收 / 每日行情明细互不耦合
- 时间统一按 UTC 解析传 Unix 秒,修复日线 invalid date/N/A 与分钟线时区问题
- 资金流向失败降级为非致命,不再导致整页报错
- vite 构建拆分 recharts/lightweight-charts/router 独立 chunk
|
2026-08-28 17:43:11 +08:00 |
|
Sakurasan
|
c4ed3346ab
|
feat: K线成交量独立pane、浅色调、移除KDJ
|
2026-08-28 15:37:17 +08:00 |
|
Sakurasan
|
813e5c345a
|
feat: 默认仅显示均线MA(5/10/20),MACD默认关闭;图表增加线颜色图例
- 默认指标改为只开 MA(MACD 默认关)
- MA 周期改为 5/10/20(去掉 30)
- 图表下方新增颜色图例:按启用的指标显示对应颜色线(MA各周期/DIF/DEA/RSI/K/D/J)
|
2026-08-28 12:25:45 +08:00 |
|
Sakurasan
|
bc9ce37dff
|
chore: MACD 参数由默认(12,26,9)改为(10,20,7)
|
2026-08-28 12:13:24 +08:00 |
|
Sakurasan
|
0743014f1a
|
feat: 详情页K线增加技术指标 MA/MACD/RSI/KDJ
- 新增 indicators.ts 指标计算库:SMA/EMA/MACD(12,26,9)/RSI(14)/KDJ(9,3,3)
- KLineChart 支持指标开关:MA(5/10/20/30) 主图叠加、MACD/RSI/KDJ 独立副图 pane
- 图表高度随指标 pane 数量动态增长(主图 300 + 每个副图 95),主图不被压缩
- 指标全部前端本地计算,无需后端
|
2026-08-28 12:05:37 +08:00 |
|
Sakurasan
|
25c179dc06
|
feat: 详情页K线改用 TradingView Lightweight Charts,蜡烛图原生支持
- 新增 KLineChart 组件(lightweight-charts v5):原生蜡烛图/折线切换、成交量副图(涨红跌绿)、自选日标记、双指缩放拖动
- 保留时间范围切换(3月/6月/1年,默认3月,一次性拉取365天前端切片)
- 修复 lightweight-charts 无法解析 CSS 变量/oklch 颜色的问题(改用固定 hex)
- 替换原 recharts K线(recharts Bar 自定义 shape 无法渲染蜡烛的问题彻底解决)
|
2026-08-28 11:15:48 +08:00 |
|
Sakurasan
|
24c8b31301
|
fix: 股票详情页K线 React 310 崩溃(useMemo置于early return前) + 时间范围切换
- 修复 React error #310:displayData 的 useMemo 原置于 if(loading) early return 之后,
导致 loading 切换时 hook 数量变化触发崩溃。移到所有 early return 之前。
- K线一次性拉取 365 天,前端按 3月/6月/1年 切片展示,默认近3月。
|
2026-08-28 03:41:18 +08:00 |
|
Sakurasan
|
d5516b72d7
|
feat: 接入同花顺官方SDK,新增v2数据接口,股票详情K线改用v2(前复权日K)
- vendor 同花顺官方 SDK 到 backend/sdk(含K线>10年自动切片、重试、拼音首字母检索兜底)
- 新增 /api/v2 路由:行情/估值/财务/日历/指数/K线/标的检索
- 股票详情页K线改用 v2 同花顺接口(前复权日K+总手+按昨收涨跌幅)
- 密钥仅后端持有,响应/日志无泄露
- 新增 run_local.sh 本地直接拉起(不再依赖 docker)
|
2026-08-28 02:09:49 +08:00 |
|
Sakurasan
|
82006f7cf9
|
feat: 每日题材采集改为涨幅/强度/热度/成交额4榜各前50合并去重
原逻辑只取题材涨幅前20入库。现改为从 4 个榜单
(sortField 1=涨幅/3=强度/4=热度排名/5=成交额) 各取前50,
按 themeCode 合并去重后写入 daily_top_themes,
覆盖更全面的当日活跃题材。
|
2026-08-28 00:42:09 +08:00 |
|
Sakurasan
|
86d0dded3a
|
feat: 题材热点历史页展示最近10个交易日题材涨幅矩阵
|
2026-08-27 20:18:51 +08:00 |
|
Sakurasan
|
57548c791d
|
fix: null guard toFixed in ThemeStockRow to prevent crash when API returns null
|
2026-08-22 00:10:48 +08:00 |
|
Sakurasan
|
1f9931da77
|
feat: 添加热点股追踪数据导出/导入脚本
|
2026-08-21 19:03:44 +08:00 |
|
Sakurasan
|
bb2be17ae2
|
feat: 热点穿透题材数从50提升到100,支持缓存定向清理
- 热点穿透top由50提升到100(涨幅榜+热度榜各取前100合并),保证题材数≥100
- themes.py graph路由top上限le由60放宽到200
- daily_collector HOTMAP_TOP_N同步到100与页面一致
- auvops.sh新增cache-clear-graph子命令定向清理theme_graph缓存
|
2026-08-18 04:14:17 +08:00 |
|
 SakurasanandClaude
|
48522cbfea
|
chore: 每日采集时间从15:00调整到15:01
收盘后留1分钟等数据稳定,避免15:00整点采集到不完整数据。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-12 19:55:49 +08:00 |
|
 SakurasanandClaude
|
a6497caf73
|
fix: 无领涨股题材导致/themes页面崩溃(startsWith null)
东方财富题材列表存在 securityCode 为 null 的题材(如"铟"01726),
getStockBoard(null) 调用 startsWith 抛 TypeError,React 渲染崩溃,
页面被错误边界接管。修复 getStockBoard 使其对空值兜底返回主板,
同时保护全部 8 处调用方;ThemeItem.securityCode/securityName 类型
如实标注为 string|null。新增最小回归脚本复现并验证修复。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-12 18:49:27 +08:00 |
|
 SakurasanandClaude
|
8cf4c40e2b
|
feat: 热点穿透股票球最小间隔4px改为6px
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 20:12:09 +08:00 |
|
 SakurasanandClaude
|
90569918a3
|
refactor: 删除板块资金流向,题材板块功能更全
- 删除前端 /sectors 页面、首页入口按钮、stock-api 板块类型与 fetchSectors
- 删除后端 /api/sectors 路由,main.py 移除注册
- eastmoney.py 移除板块数据段(_fetch_push2/_fetch_akshare/UT令牌管理),
清理重复 import 与无用 datetime 子导入
- mootdx.py 移除板块降级方案(fetch_sector_list)
- routeTree.gen.ts 由 build 自动重新生成,移除 sectors 路由
题材热点/热点穿透/核心股已覆盖板块能力,功能更全,板块资金流向不再需要
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 18:50:54 +08:00 |
|
 SakurasanandClaude
|
b0dbeef3fd
|
feat: 容器内统一运维脚本auvops.sh,recollect-daily并入
- 新增 backend/auvops.sh:容器内直接执行的统一运维工具
(cache-clear/clean-expired/cache-count/recollect/sh/help)
- heredoc传python代码,日期等参数走环境变量防注入
- 后续运维操作收敛到该文件,加 cmd_xxx + case 注册一行即可
- 删除 recollect-daily.sh,其能力并入 auvops.sh recollect
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 16:57:27 +08:00 |
|
 SakurasanandClaude
|
eb66ab02d0
|
feat: 交易日9:31清空全部缓存,保证开盘后数据全新
- services/cache.py 新增 clear_all() 清空整个 cache 表
- daily_collector.py 新增 cache_cleanup_loop() 后台循环:精确 sleep 到最近一个
工作日 9:31 清空缓存,跳过周末,出错1分钟重试
- main.py lifespan 启动清理任务,与采集任务一同优雅退出
与既有"非交易时段 TTL 截止到下次开盘前"的惰性过期形成双保险
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 16:56:56 +08:00 |
|
 SakurasanandClaude
|
7fe8074e22
|
feat: 题材列表盘中120s缓存共用,题材详情新增全量新闻分页+强度热度行情
- 题材热点与热点穿透共用题材列表缓存:盘中由"不缓存实时拉取"改为120s短缓存,
东财全量列表拉取降到每120s一次,图重建时涨幅/热度两榜直接命中缓存
- 详情页相关新闻升级为全量分页(getThemeRelatedNews):支持翻页+评论数,
替换原 getDetail 固定3条
- 详情页统计条新增强度+热度(getSingleThemeQuote)实时指标
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 16:56:44 +08:00 |
|
 SakurasanandClaude
|
f98a9255a5
|
feat: 股票球按涨幅绝对值调整大小
半径 = 覆盖数基础 + 涨幅绝对值增量(|f3|/10*4, 封顶20),
涨得猛/跌得深球更大。同覆盖下 0%vs10% 球径差约4px。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 01:07:59 +08:00 |
|
 SakurasanandClaude
|
776ab55fc3
|
feat: 股票球跌幅改为绿色空心球体
涨: 保留分级实心(覆盖数越多越红) + 红色光晕;
跌: 绿色空心球(绿描边+内部淡绿留白) + 绿色光晕。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 00:59:07 +08:00 |
|
 SakurasanandClaude
|
dfcce3abaf
|
feat: 所有股票小球统一光晕强度,涨红光晕/跌绿光晕更明显
光晕透明度不再乘覆盖数 alpha(覆盖1的股票 alpha=0.45 导致光晕过淡),
改为所有股票统一 0.5 强度,高亮淡出时降为 0.06。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 00:50:52 +08:00 |
|
 SakurasanandClaude
|
d473bbad6b
|
feat: 股票小球心跳动画(覆盖≥5题材) + 涨幅正红光晕/负绿光晕
- 覆盖≥5题材股票球按正弦脉动(周期900ms, 幅度22%), 越大越醒目
- 涨幅≥0红色径向渐变光晕, <0绿色光晕, 随心跳一起脉动
- 架构: 静态层不再画股票节点(只画边+题材), 股票常驻动态层重绘
以支撑持续动画; 新增常驻rAF动画循环驱动 timeRef
- 高亮态邻居淡出时, 光晕/心跳随 alpha 同步淡出
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 00:44:42 +08:00 |
|
 SakurasanandClaude
|
c4a0c50ed0
|
feat: 题材小球正涨幅蓝实心、负涨幅蓝空心
负涨幅球改为仅描边空心(内部淡蓝留白),边框加粗;
图例同步改为空心蓝球示意。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 00:10:31 +08:00 |
|
 SakurasanandClaude
|
0a32bfad78
|
feat: 题材小球整体放大(半径 6~30)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 23:53:47 +08:00 |
|
 SakurasanandClaude
|
69535bc782
|
feat: 题材小球改平方根映射,拉大中小涨幅区分度
线性映射被极端涨幅拉平均,多数 0~3% 题材球挤在最小值附近。
改平方根映射:零涨幅 4px、1%≈10px、3%≈15px、极值 22px,
中等涨幅区间球径差显著放大。碰撞力半径动态跟随节点,无需额外适配。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 23:51:58 +08:00 |
|
 SakurasanandClaude
|
254deb6a80
|
feat: 热点穿透题材节点按涨幅正蓝负绿、球大小随涨幅绝对值
- 后端题材列表下发 bf3(题材涨幅)
- 题材节点: 正涨幅蓝色/负涨幅绿色, 半径按 |bf3| 在 6~20 映射
- 题材标签文字颜色跟随正负
- 信息卡/底部浮层题材分支显示涨幅
- 图例拆分涨/跌两项并说明球大小含义
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 23:34:38 +08:00 |
|
 SakurasanandClaude
|
b29ca8413c
|
feat: 核心股追踪改名热点股追踪
页面标题、页面内'活跃核心股'描述、入口链接文案同步更名;
热点穿透页内'穿透核心股'列表概念(覆盖题材数)保留原名。
底层路由/表名/代码标识符 core_stocks 不变。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 23:02:39 +08:00 |
|
 SakurasanandClaude
|
c610faa4ad
|
chore: 新增服务器端清理重采脚本 recollect-daily.sh
选股逻辑变更后,服务器上当天旧数据需删除重采(幂等会跳过)。
脚本默认容器 auv、日期取服务器当天,支持显式传参;含日期格式与容器存在性校验。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 22:33:13 +08:00 |
|
 SakurasanandClaude
|
f93ffd381b
|
feat: 核心股追踪选股并入热点穿透核心股(覆盖题材数降序前100,去重)
选股口径由仅'题材领涨股涨幅前100'改为:
- 热点穿透核心股(覆盖题材数≥2,按覆盖数降序前100)
- 合并题材领涨股涨幅前100,按股票代码去重
复用 _build_theme_graph 计算每股覆盖题材数;热点穿透构建失败
时降级为仅领涨股前100,不影响当日采集。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 22:31:38 +08:00 |
|
 SakurasanandClaude
|
1d3ec3194c
|
feat: 核心股追踪题材默认展开显示
移除展开/收起交互,题材标签区始终展示
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 21:56:18 +08:00 |
|
 SakurasanandClaude
|
b4d48180b7
|
feat: 核心股追踪题材标签跳题材详情、股票名跳股票详情
- 题材标签 → /theme/$code
- 股票名 → /stock/$code(阻止冒泡避免触发行展开)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 21:53:47 +08:00 |
|
 SakurasanandClaude
|
6d3c470b7b
|
feat: 核心股追踪行点击展开显示所属题材列表
- active 接口返回每只核心股 themes(窗口内按题材去重)
- 页面行点击展开题材标签,chevron 指示展开状态
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 21:50:16 +08:00 |
|
 SakurasanandClaude
|
23644a9c77
|
feat: 题材涨幅前20存历史(原前10)
- daily_collector TOP_THEME_LIMIT 10 → 20
- 同步 routes/collector 注释与 spec/plan 文档
- 实测 2026-08-10 题材前20入库 20 条,themes/history 返回 20 条
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 21:27:54 +08:00 |
|