恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

TradingAgents-CN 新闻数据同步功能完全指南:多源采集、情绪分析与存储实践

  • 首页
  • 资讯中心
  • /
  • TradingAgents-CN 新闻数据同步功能完全指南:多源采集、情绪分析与存储实践

相关资讯

aigcbiye:当论文写作遇上AI5.0,一场学术生产力的静默革命 2026/9/10 18:06:17
高安全场景下大文件断点续传组件的安全设计实践 2026/9/10 18:06:17
5款AI写论文哪个好?实测后发现aigcbiye的图表生成能力太惊艳 2026/9/10 18:06:17

最新资讯

农村土地二轮延包政策实施中的数据分析局限与实践重点
生成式AI时代:搜索引擎优化(GEO)的核心技术与实战策略
Mongoose 5.x 升级 6.x 迁移指南:破坏性变更全解析与源码级应对方案
储能电站多时间尺度调度与Matlab实现
读懂CPU错误码06H:从机器检查异常到硬件根因定位
Vivo手机数据备份与恢复全攻略

今日推荐

AI搜索重构内容生态:企业从“流量争夺”转向“答案共建”
AI搜索的信任缺口:企业内容如何在答案时代自证可信
Spring Boot+Vue+Node.js售后服务系统开发实战

本周热门

超人会飞不算本事:系统稳定依赖清晰规则与边界设计
超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论
基于CNN的调制信号识别:MATLAB实现时频图分类实战

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

TradingAgents-CN 新闻数据同步功能完全指南:多源采集、情绪分析与存储实践

发布时间:2026/9/10 18:11:17
TradingAgents-CN 新闻数据同步功能完全指南:多源采集、情绪分析与存储实践 TradingAgents-CN 新闻数据同步功能完全指南多源采集、情绪分析与存储实践【免费下载链接】TradingAgents-CN基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN新闻数据是金融交易框架感知市场情绪的重要输入。TradingAgents-CN中文增强版多智能体交易框架在 v1.4 版本中为 Tushare 与 AKShare 两大数据源加入了完整的新闻同步能力支持多新闻源采集、智能去重、情绪分析、关键词提取、新闻分类与重要性评估并将结果统一落库至 MongoDB。阅读本文后你将掌握tushare_init.py/akshare_init.py的 CLI 同步命令、TushareSyncService等同步服务的 Python API 调用方式以及新闻数据结构与底层实现原理可直接在本地仓库中复现整套新闻数据流水线。功能概述新闻数据同步功能为 Tushare 和 AKShare 数据源添加了完整的新闻同步能力支持从多个新闻源获取股票相关新闻并在此基础上提供情绪分析和关键词提取等文本加工能力。该功能位于 news_data_sync_service.py多源同步编排与 news_data_service.py存储与查询两层服务中整体架构可概括为采集层Tushare Provider、AKShare Provider、RealtimeNewsAggregator 分别从各自新闻源拉取原始新闻加工层同步服务对原始新闻进行标准化、去重、情绪分析、关键词提取、分类与重要性评估存储层标准化后的新闻统一写入 MongoDB 的stock_news集合。多数据源支持Tushare 新闻源9 个Tushare 提供 9 个新闻源在 tushare.py 的get_stock_news方法中以优先级列表形式定义新闻源标识媒体名称sina新浪财经eastmoney东方财富10jqka同花顺wallstreetcn华尔街见闻cls财联社yicai第一财经jinrongjie金融界yuncaijing云财经fenghuang凤凰财经从源码实现看get_stock_news(symbol, limit, hours_back, src)会先计算回溯时间范围start_time now - hours_back随后默认依次尝试前 3 个新闻源sources_to_try news_sources[:3]一旦累计获取的新闻数量达到limit即停止尝试后续源你也可以通过src参数显式指定单一新闻源。获取结果会按发布时间降序排序并去重后返回。AKShare 新闻源2 个AKShare 提供 2 个新闻源实现在 akshare.py 的get_stock_news_sync方法中东方财富个股新闻ak.stock_news_em(symbolsymbol_6)按 6 位股票代码获取个股新闻内置 3 次重试与指数退避机制应对 JSON 解析错误CCTV 市场新闻ak.news_cctv()不指定股票代码时获取全市场新闻。实时新闻聚合realtime除两大 Provider 外同步服务还支持RealtimeNewsAggregator实时新闻聚合源。在 news_data_sync_service.py 中未显式指定数据源时默认启用[tushare, akshare, realtime]三路采集任一来源异常不会影响其他来源继续执行。智能去重去重贯穿两个层面同步服务层_deduplicate_news以「标题 URL」二元组作为去重标识见 news_data_sync_service.py在写入前过滤同批次内的重复项并统计duplicate_skipped数量存储层save_news_data使用ReplaceOne(filter, doc, upsertTrue)批量写入过滤条件为「URL 标题 发布时间」三元组见 news_data_service.py配合url_title_time_unique唯一索引从数据库层面保证跨批次、跨数据源的全局去重。这意味着同一则新闻即使被 Tushare 与 AKShare 同时抓取也只会保留一条记录覆盖更新而非重复插入。情绪分析每条新闻都会被自动打上情绪标签并计算情绪分数情绪类型positive积极/negative消极/neutral中性通过积极、消极财经关键词计数对比得出见 news_data_sync_service.py。积极词如「增长、上涨、利好、盈利、突破、创新」消极词如「下跌、亏损、风险、下滑、警告」情绪分数范围 -1.0极度消极到 1.0极度积极分数解读区间为0.5~1.0 强烈积极重大利好、0.2~0.5 积极一般利好、-0.2~0.2 中性、-0.5~-0.2 消极一般利空、-1.0~-0.5 强烈消极重大利空。分数采用加权计算不同关键词权重不同例如涨停1.0、跌停-1.0、暴涨0.9、大跌-0.8、利好0.6、上涨0.5等详见 新闻情绪分析功能说明。注意情绪分析基于关键词规则实现属于启发式判断官方文档明确提示其结果仅供参考。关键词提取系统自动从标题与正文中提取财经相关关键词支持股票、公司、市场、政策等多类关键词最多返回 10 个。实现为关键词表匹配common_keywords列表如业绩、年报、增长、利润、营收、股价、投资、市场、行业、政策、监管、风险等见 news_data_sync_service.py。新闻分类自动将新闻归类到 6 种类别之一分类依据标题关键词见 news_data_sync_service.py类别触发关键词示例company_announcement公司公告年报、季报、业绩、财报、公告policy_news政策新闻政策、央行、监管、法规market_news市场新闻市场、行情、指数、板块research_report研究报告研报、分析、评级、推荐industry_news行业新闻行业相关其余分支general一般新闻未命中以上关键词重要性评估按标题关键词将新闻分为三个级别见 news_data_sync_service.pyhigh高命中「重大、紧急、突发、年报、业绩、重组、收购」等词medium中命中「公告、通知、变更、调整、计划」等词low低未命中上述关键词。数据结构新闻数据模型标准化后的新闻文档结构如下字段含义与取值范围见注释{ // 股票信息 symbol: 000001, // 股票代码 full_symbol: 000001.SZ, // 完整代码含交易所后缀 market: CN, // 市场 symbols: [000001], // 相关股票列表 // 新闻内容 title: 新闻标题, content: 新闻正文内容, summary: 新闻摘要, url: https://..., // 新闻链接 source: sina, // 新闻来源 author: 作者名, // 时间信息 publish_time: 2025-09-30 12:00:00, // 发布时间 // 分类和标签 category: general, // 分类 sentiment: neutral, // 情绪 (positive/negative/neutral) sentiment_score: 0.0, // 情绪分数 (-1.0 到 1.0) keywords: [关键词1, 关键词2], // 关键词最多10个 importance: medium, // 重要性 (high/medium/low) language: zh-CN, // 语言 // 元数据 data_source: tushare, // 数据源 created_at: 2025-09-30 12:00:00, updated_at: 2025-09-30 12:00:00, version: 1 }存储层实际落库时_standardize_news_data见 news_data_service.py还会补充full_symbol字段的推导逻辑A 股市场CN下6 位代码以60/68开头映射为.SH以00/30开头映射为.SZsymbols数组为空时会自动将主symbol放入publish_time支持%Y-%m-%d %H:%M:%S、ISO 格式等多种输入解析。数据库集合与索引新闻数据统一存储在 MongoDB 的stock_news集合中。save_news_data首次调用时会自动创建 10 个索引见 news_data_service.py核心索引包括url_title_time_uniqueURL标题发布时间唯一索引防止重复新闻symbol_index/symbols_index按股票代码查询publish_time_desc按时间范围查询symbol_time_index股票代码发布时间复合索引常用查询data_source_index、category_index、sentiment_index、importance_index多维筛选updated_at_index数据维护。CLI 命令使用Tushare 数据源CLI 入口为 cli/tushare_init.py--sync-items参数支持的可选值为basic_info,historical,weekly,monthly,financial,quotes,news。# 1. 仅同步新闻数据默认回溯24小时同步所有股票 python cli/tushare_init.py --full --sync-items news # 2. 同步新闻和其他数据 python cli/tushare_init.py --full --sync-items basic_info,news python cli/tushare_init.py --full --sync-items historical,financial,news # 3. 完整初始化包含新闻在内的所有数据类型 python cli/tushare_init.py --full --sync-items basic_info,historical,financial,quotes,newsCLI 会对--sync-items的值做合法性校验非法项会直接报错并提示有效选项见 tushare_init.py。其他常用参数包括--historical-days历史数据天数默认 365、--batch-size批处理大小默认 100、--force强制覆盖已有数据、--check-only仅检查数据库状态会输出新闻数据量统计。AKShare 数据源CLI 入口为 cli/akshare_init.py用法与 Tushare 一致# 1. 仅同步新闻数据 python cli/akshare_init.py --full --sync-items news # 2. 同步新闻和其他数据 python cli/akshare_init.py --full --sync-items basic_info,news python cli/akshare_init.py --full --sync-items historical,financial,news # 3. 完整初始化包含新闻 python cli/akshare_init.py --full --sync-items basic_info,historical,financial,quotes,news需要说明的是--full未显式指定--sync-items时初始化服务默认同步basic_info,historical,financial,quotes多周期模式下追加weekly,monthly即新闻并不在默认同步列表内需显式传入news才会触发这一点在 tushare_init_service.py 的run_full_initialization中可以看到。Python API 使用1. 使用同步服务Tushare 同步服务tushare_sync_service.pyfrom app.worker.tushare_sync_service import get_tushare_sync_service # 获取同步服务 sync_service await get_tushare_sync_service() # 同步所有股票的新闻 result await sync_service.sync_news_data( hours_back24, # 回溯24小时 max_news_per_stock20 # 每只股票最多20条新闻 ) # 同步指定股票的新闻 result await sync_service.sync_news_data( symbols[000001, 600000], hours_back48, max_news_per_stock50 )sync_news_data其余可选参数还包括force_update强制更新与job_id调度任务 ID用于进度跟踪与取消检测。其内部按batch_size100分批处理逐只调用provider.get_stock_news后经news_service.save_news_data落库成功与失败路径均设计了休眠间隔成功 0.2 秒、失败 1.0 秒以规避 API 限流与失败雪崩。AKShare 同步服务akshare_sync_service.py接口略有差异——不提供hours_back参数回溯由 API 决定但额外提供favorites_only参数默认True时仅同步自选股可有效控制同步范围与耗时from app.worker.akshare_sync_service import get_akshare_sync_service sync_service await get_akshare_sync_service() result await sync_service.sync_news_data( symbols[000001, 600000], # 指定股票为 None 时按 favorites_only 决定范围 max_news_per_stock20, favorites_onlyFalse # False 表示同步所有股票 )2. 使用初始化服务from app.worker.tushare_init_service import get_tushare_init_service # 获取初始化服务 init_service await get_tushare_init_service() # 运行完整初始化包含新闻 result await init_service.run_full_initialization( historical_days365, sync_items[basic_info, historical, news] )初始化服务中新闻步骤的实现值得注意见 tushare_init_service.py回溯小时数按min(historical_days * 24, 24 * 7)计算即新闻最多回溯 7 天超出部分会被截断。3. 直接使用 Provider跳过同步服务、直接调用底层数据提供者from tradingagents.dataflows.providers.china.tushare import get_tushare_provider # 获取 Provider provider get_tushare_provider() await provider.connect() # 获取单只股票的新闻 news_data await provider.get_stock_news( symbol000001, limit20, hours_back24 ) # 可选参数 src 可指定单一新闻源如 srcsinaAKShare 对应使用tradingagents.dataflows.providers.china.akshare.get_akshare_provider其get_stock_news签名不含hours_back个股新闻接口由数据源决定返回范围。4. 通过 HTTP API 触发仓库还提供了 REST 接口封装app/routers/news_data.py带鉴权保护POST /api/news-data/sync/start后台启动股票或市场新闻同步任务参数含symbol、data_sources、hours_back、max_news_per_sourcePOST /api/news-data/sync/single同步执行单只股票新闻同步GET /api/news-data/query/{symbol}查询股票新闻数据库无数据时会自动降级为实时抓取。同步结果统计同步完成后返回详细统计信息Tushare/AKShare 同步服务的返回结构如下{ total_processed: 100, # 处理的股票总数 success_count: 98, # 成功数量 error_count: 2, # 错误数量 news_count: 1234, # 获取的新闻总数 duration: 120.5, # 耗时秒 errors: [...] # 错误列表 }此外news_data_service.py 还提供get_news_statistics聚合统计情绪分布、重要性分布、分类分布、来源分布、search_news全文搜索基于 MongoDB$text索引以及delete_old_news默认清理 90 天前的过期新闻用于数据维护等查询侧能力。功能特性对比功能TushareAKShare新闻源数量9个2个回溯时间可配置默认24小时最多7天由API决定情绪分析✅✅情绪分数✅✅关键词提取✅✅新闻分类✅✅重要性评估✅✅数据质量高需权限中免费API限制有速率限制较宽松注意事项1. 权限要求新闻数据需要 Tushare 新闻接口权限属付费功能。get_stock_news在遇到权限类错误permission、unauthorized、access denied等时会给出明确提示积分不足积分/point也会单独提示见 tushare.py部分新闻源可能需要更高积分等级免费用户可能只能访问部分新闻源Tushare 同步服务还内置了按账户等级free/basic/standard/premium/vip配置的速率限制器TUSHARE_TIER与TUSHARE_RATE_LIMIT_SAFETY_MARGIN可从环境变量读取见 tushare_sync_service.py。2. 限制说明默认回溯时间24小时最大回溯时间7天初始化服务按min(historical_days*24, 24*7)强制截断每只股票默认最多获取 20 条新闻受 Tushare API 速率限制约束每分钟调用次数受限。3. 数据质量新闻数据的完整性取决于数据源部分新闻可能缺少作者、摘要等字段例如 Tushare 新闻接口本身不返回 URL见 tushare.py 附近处理逻辑情绪分析基于关键词规则结果仅供参考。4. 性能考虑新闻同步速度受网络和 API 限制影响全市场同步为逐股串行拉取耗时较长建议在非交易时间进行大批量同步可以使用--sync-items news单独同步新闻AKShare 侧还可利用favorites_onlyTrue只同步自选股以显著缩短耗时。故障排查问题1: 未获取到新闻数据可能原因:Tushare 账户没有新闻权限源码会输出Tushare新闻接口需要单独开通权限付费功能类日志指定时间段内没有新闻API 调用频率超限解决方法:检查 Tushare 账户权限与积分等级增加回溯时间范围hours_back调大注意上限 7 天等待一段时间后重试避免频繁触发限流问题2: 新闻保存失败可能原因:新闻数据缺少必需字段URL、标题等导致唯一索引冲突MongoDB 连接问题数据格式不正确解决方法:检查日志中的详细错误信息BulkWriteError会记录前 3 条错误的错误码与消息验证 MongoDB 连接状态检查publish_time字段格式服务支持多种格式解析无法解析时回退为当前时间问题3: 同步速度慢可能原因:网络延迟API 速率限制服务对每次成功调用后休眠 0.2 秒、失败后休眠 1.0 秒股票数量过多全市场约数千只股票逐只拉取解决方法:使用更快的网络连接减少每批次处理的股票数量分批次进行同步或使用favorites_only限定自选股范围相关文档多周期数据同步更新多数据源同步指南Tushare 使用指南新闻情绪分析功能说明更新历史v1.4 (2025-09-30)✅ 添加 Tushare 新闻数据同步功能✅ 添加 AKShare 新闻数据同步功能✅ 支持多新闻源Tushare 9个AKShare 2个✅ 实现智能去重标题URL 层与 URL标题发布时间唯一索引层双重保障✅ 添加情绪分析positive/negative/neutral✅ 添加情绪分数计算-1.0 到 1.0✅ 添加关键词提取最多10个✅ 添加新闻分类6种类别✅ 添加重要性评估high/medium/low✅ 更新 CLI 工具tushare_init.py 和 akshare_init.py新增--sync-items news选项✅ 更新文档【免费下载链接】TradingAgents-CN基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号