【山东大学项目实训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.pyAnalyst 阶段拉取基本面与内幕交易;技术指标增加 indicator_windows(由窗口工具聚合)
backend/app/models/schemas.py报告JSON增加 fundamental_section、insider_section
backend/app/services/report_generator.pyMarkdown增加财务与内幕章节;技术指标展示含ATR等(与既有MVP摘要并存)

3.3 技术指标

模块职责
backend/app/services/indicators.py实现 get_indicators(symbol, indicator, curr_date, look_back_days),基于日线OHLCV
backend/app/agents/tech_agent.pycompute_tech_indicators 保留兼容;新增 get_tech_indicators_window 聚合指标清单

3.4 测试脚本

脚本用途
run_stock_provider_smoke.pyOHLCV真实拉取+JSON
run_news_provider_smoke.py新闻真实拉取+JSON+count
run_akshare_extras_smoke.py基本面 + 内幕交易+JSON-safe
run_indicators_smoke.py12项指标窗口校验+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 矩阵

目标脚本验证对象建议关注输出
日行情 OHLCVtests/run_stock_provider_smoke.pyfetch_stock_ohlcvtotal_rows > 0;data[] 含 date/open/high/low/close/volume
新闻tests/run_news_provider_smoke.pyfetch_news(含 strict_mode)JSO 数组字段齐全;末尾count=
财务+内幕tests/run_akshare_extras_smoke.pyfetch_financial_fundamentals + fetch_insider_tradingstatus;rows;基本面快照;latest_event / events
技术指标tests/run_indicators_smoke.pyget_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

Logo

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

更多推荐