【山东大学项目实训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 逻辑架构

编排与报告

技术指标

数据提供层

外部数据源

AKshare

stock_provider
OHLCV

news_provider
多源新闻 + 严格模式

akshare_extras_provider
基本面 / 内幕交易

get_indicators
单指标时间窗口

get_tech_indicators_window
指标集合聚合

orchestrator
analyst 阶段聚合

report_generator
JSON + Markdown

schemas
报告契约扩展

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_sectioninsider_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_smaclose_200_smaclose_10_ema
  • MACD 类macdmacdsmacdh(分别为MACD 线、Signal 线、Histogram)
  • 动量类rsi(RSI(14),Wilder平滑)
  • 波动类boll(中轨)、boll_ubboll_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 > 0data[]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 statusrows;基本面快照;latest_event / events
技术指标 tests/run_indicators_smoke.py get_indicators×12 项指标 每指标窗口points>0non_null_points>0failed_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.pyfailed_indicators 为空,count_indicators=12 failed=0,末尾 PASS退出码 0(失败时为 1,便于脚本化检查)。
  • 终端输出如下:
  • 日行情
    日行情
  • 新闻拉取(展示部分)
    新闻拉取
  • 报表(部分)
    财务基本面
  • 内幕交易(部分)
    内幕交易
  • 技术指标(部分)
    技术指标

六、问题排查与修复

问题 现象 处理思路
内幕交易接口参数 连接被重置/请求异常 stock_ggcg_emsymbol仅支持分类枚举,拉取后按代码列本地过滤标的
JSON 序列化 date/NaN/numpy标量 Smoke脚本中_json_safe:日期转ISO,NaNnull``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

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐