【山东大学项目实训FinAgent】本周进度报告:AKshare 数据接入与测试
·
【山东大学项目实训FinAgent】本周进度报告:AKshare 数据接入与测试
周期:2026-03-31~2026-04-05
项目:FinAgent
实现:后端 / 量化数据工程 / Agent 编排
摘要
本周工作围绕 FinAgent 数据层 展开:统一接入 AKshare 作为数据源,覆盖 日行情OHLCV、财务基本面/报表、新闻、内幕交易/增减持。测试策略以真实拉取Smoke为主,在tests/下对 行情、新闻、基本面/内幕、技术指标分别提供可执行脚本,验证链路可用性与 JSON 可序列化性。
关键词:AKshare;OHLCV;财务基本面;新闻;内幕交易;技术指标;MACD;RSI;布林带;ATR;VWMA;Pandas
目录
一、本周目标与范围
| 维度 | 目标 |
|---|---|
| 数据覆盖 | 日行情OHLCV;财务基本面;新闻;内幕交易;技术指标 |
| 工程化 | Provider 分层;Orchestrator串联;Report/Schema 承载新字段 |
| 可验证性 | 真实网络拉取;JSON 安全输出 |
| 文档 | 周报 |
二、整体架构与数据流
2.1 逻辑架构
2.2 说明
- Providers 负责从 AKshare 拉取并归一化;技术指标在 OHLCV 上计算并输出 截止到
curr_date的最近N个交易日窗口;Orchestrator 将各部分写入阶段日志与最终报告结构。
三、主要交付
3.1 数据提供层(Providers)
| 模块 | 职责 | 说明 |
|---|---|---|
backend/app/data/providers/stock_provider.py |
日行情 OHLCV | 作为价格与成交量基础 |
backend/app/data/providers/news_provider.py |
新闻 | 多源候选、字段归一化、strict_mode 严格过滤 |
backend/app/data/providers/akshare_extras_provider.py |
基本面 / 内幕交易 | 结构化输出、排序与本地过滤等鲁棒处理 |
3.2 编排、契约与报告
| 模块 | 变更要点 |
|---|---|
backend/app/application/orchestrator.py |
Analyst 阶段拉取基本面与内幕交易;技术指标增加 indicator_windows(由窗口工具聚合) |
backend/app/models/schemas.py |
报告JSON增加 fundamental_section、insider_section |
backend/app/services/report_generator.py |
Markdown增加财务与内幕章节;技术指标展示含ATR等(与既有MVP摘要并存) |
3.3 技术指标
| 模块 | 职责 |
|---|---|
backend/app/services/indicators.py |
实现 get_indicators(symbol, indicator, curr_date, look_back_days),基于日线OHLCV |
backend/app/agents/tech_agent.py |
compute_tech_indicators 保留兼容;新增 get_tech_indicators_window 聚合指标清单 |
3.4 测试脚本
| 脚本 | 用途 |
|---|---|
run_stock_provider_smoke.py |
OHLCV真实拉取+JSON |
run_news_provider_smoke.py |
新闻真实拉取+JSON+count |
run_akshare_extras_smoke.py |
基本面 + 内幕交易+JSON-safe |
run_indicators_smoke.py |
12项指标窗口校验+PASS |
四、技术指标实现要点
4.1 指标清单(本周口径)
- 均线类:
close_50_sma、close_200_sma、close_10_ema - MACD 类:
macd、macds、macdh(分别为MACD 线、Signal 线、Histogram) - 动量类:
rsi(RSI(14),Wilder平滑) - 波动类:
boll(中轨)、boll_ub、boll_lb(20 日、2 倍标准差)、atr(ATR(14)) - 量价类:
vwma(默认VWMA(20))
4.2 测试输出形态
get_indicators:返回{ "YYYY-MM-DD": float | null, ... },为 最近look_back_days个交易日(截止到curr_date)。- 分析流程中:
tech_section内增加indicator_windows,聚合上述指标序列与latest快照(与原有compute_tech_indicators输出并存,便于渐进迁移)。
五、测试与验证
本周以Integration / Smoke为主:真实调用 AKshare,对各数据源与技术指标分别验证非空结果、字段完整、JSON 可序列化。tests/下当前脚本如下:
5.1 全链路 Smoke 矩阵
| 目标 | 脚本 | 验证对象 | 建议关注输出 |
|---|---|---|---|
| 日行情 OHLCV | tests/run_stock_provider_smoke.py |
fetch_stock_ohlcv |
total_rows > 0;data[] 含 date/open/high/low/close/volume |
| 新闻 | tests/run_news_provider_smoke.py |
fetch_news(含 strict_mode) |
JSO 数组字段齐全;末尾count= |
| 财务+内幕 | tests/run_akshare_extras_smoke.py |
fetch_financial_fundamentals + fetch_insider_trading |
status;rows;基本面快照;latest_event / events |
| 技术指标 | tests/run_indicators_smoke.py |
get_indicators×12 项指标 |
每指标窗口points>0且 non_null_points>0;failed_indicators=[];PASS |
5.2 示例命令(可以按需改ticker/日期,此处以贵州茅台股票代码为示例)
# 1) OHLCV
python tests/run_stock_provider_smoke.py --ticker 600519 --start 2026-03-27 --end 2026-04-03 --rows 3
# 2) 新闻(严格模式)
python tests/run_news_provider_smoke.py --ticker 600519 --start 2026-03-27 --end 2026-04-03 --limit 10 --strict-mode true
# 3) 基本面 + 内幕交易
python tests/run_akshare_extras_smoke.py --ticker 600519
# 4) 技术指标(12 项窗口 + 退出码)
python tests/run_indicators_smoke.py --ticker 600519 --curr-date 2026-04-03 --look-back-days 5
5.3 成功判定
- 行情/新闻/extras:脚本能完整打印JSON、无未捕获异常;人工对照字段与
status(或新闻count)。 - 技术指标(
run_indicators_smoke.py):failed_indicators为空,count_indicators=12 failed=0,末尾PASS,退出码 0(失败时为 1,便于脚本化检查)。 - 终端输出如下:
- 日行情

- 新闻拉取(展示部分)

- 报表(部分)

- 内幕交易(部分)

- 技术指标(部分)

六、问题排查与修复
| 问题 | 现象 | 处理思路 |
|---|---|---|
| 内幕交易接口参数 | 连接被重置/请求异常 | stock_ggcg_em的symbol仅支持分类枚举,拉取后按代码列本地过滤标的 |
| JSON 序列化 | date/NaN/numpy标量 |
Smoke脚本中_json_safe:日期转ISO,NaN→null``numpy标量.item() |
| 最新事件顺序 | latest_event与列表重复 |
按公告日等字段降序排序后再取head(1),列表从第二条起展示 |
| 指标导入路径 | 根目录运行脚本时app包找不到 |
indicators.py使用 backend.app... 与测试脚本一致 |
七、本周结论
7.1 本周结论
- 数据面:OHLCV、基本面、新闻、内幕交易已形成可调用闭环。
- 技术面:
get_indicators与 12 项指标窗口已落地,并可通过run_indicators_smoke.py一键验证。 - 工程面:报告与 Schema 已承载新增章节;Orchestrator 已串联窗口指标输出。
完成git上传:

项目概述:https://blog.项目开展概述及计划csdn.net/2301_80139500/article/details/159476008
更多推荐


所有评论(0)