
一、开篇:为什么你需要这个工具?
刷 K 线图时,你一定有过这种体验:股价突然跳水 8%,你盯着屏幕满头问号——发生了什么?是财报暴雷、行业利空,还是大资金出逃?新闻散落在各大平台,公告藏在巨潮资讯,券商研报需要付费订阅。等你拼凑完整套信息,半小时过去了,股价早已反弹到位。
对散户而言,K 线图只展示了「结果」,却把「原因」藏在了信息的海洋里。PokieTicker 想解决的就是这个痛点:把新闻直接钉在 K 线图上,让每一次价格异动都能追溯到具体事件。

二、项目简介:一句话说明它是什么
PokieTicker 是一款事件驱动的股票分析工具,核心定位是「K 线图 + 新闻 + AI 解读」三位一体。它通过 XGBoost 模型结合新闻情感与技术指标,对 T+1、T+3、T+5 三种时间窗口进行方向预测,并在前端用 D3.js 渲染可交互图表。
项目关键特性速览:
- 新闻点位叠加:在 K 线图每个交易日标注新闻事件,点击查看详情
- AI 归因分析:选定日期范围,AI 解释涨跌原因
- 历史相似事件匹配:基于余弦相似度找到历史上类似新闻密集出现的时间段
- 多周期预测:提供 7 天与 30 天趋势预测
截至目前,仓库已收获 815 Stars,使用 MIT 协议开源,技术栈覆盖 React + TypeScript + FastAPI + XGBoost,配套 51K+ OHLC 行与 61K+ 新闻条目,开箱即用。

三、核心功能深度解析
1. K 线图上的新闻点位
传统行情软件只展示 OHLC 四个数值,PokieTicker 在每根 K 线上方叠加新闻圆点。点击点位,右侧栏立即弹出当日新闻列表,按情感分数排序,附带「上涨原因」「下跌原因」摘要。
这套设计借鉴了「事件驱动思维」:股价是结果,事件是原因。把原因钉在结果旁边,眼睛一扫就能建立因果直觉,对新手尤其友好。
2. 按影响类型筛选新闻
项目内置六大分类:市场情绪、财报、产品、政策、竞争、管理层变动。点击任一分类,图表只保留相关事件,并区分看涨(bullish)与看跌(bearish)标签。例如筛选「财报」类别,能快速定位历史上每次业绩披露前后的股价反应。
3. 历史相似事件检索
系统会把当日新闻特征(情感分数、负面占比、话题关键词)转化为向量,与数据库中所有历史交易日做余弦相似度计算。匹配度最高的 N 天会展示在「Similar Days」面板,并标注其后 1 天、3 天、5 天的实际涨跌。
这相当于一个轻量级的「以史为鉴」机制:当你看到今日有 3 条负面财报新闻聚簇,系统会告诉你历史上类似情况发生后股价平均跌了多少。
4. AI 区间归因
在图表上框选一段日期,弹出「为什么下跌/上涨?」对话框,后端调用 Claude Sonnet 对区间内所有新闻做深度分析,输出结构化归因报告。这一层属于按需调用(on-demand),每次约 0.003 美元。

四、技术亮点与性能数据
特征工程共 31 维,分为两大块:
- 新闻特征(13 维):文章数量、情感分数、正负比、3/5/10 日滚动均值、情感动量
- 技术特征(18 维):1/3/5/10 日收益率、波动率、成交量比、RSI-14、均线交叉信号
数据处理流水线采用三层架构:
- Layer 0:基于规则过滤垃圾与 listicle 类内容,免费层,淘汰率约 17%
- Layer 1:Claude Haiku 批量 API,每批 50 篇,单价约 0.35 美元/千篇
- Layer 2:Claude Sonnet 按需深度分析,单价 0.003 美元/篇
预测引擎基于 XGBoost 分类器,对 T+1、T+3、T+5 三个时间窗口分别建模。回测显示,短期方向预测准确率优于随机基准,但作者明确标注「这是实验性学习工具,不是投资建议」。
架构层面:前端 React + Vite + D3.js,后端 FastAPI + SQLite(WAL 模式),全栈约 30 个模块、清晰的关注点分离。

五、适用场景与人群
场景 1:股票新手建立认知
K 线图配新闻点位 = 沉浸式教学。新手能在 30 分钟内理解「财报超预期」「指引下调」这些术语对股价的真实冲击。
场景 2:复盘历史异动
当你想研究某只股票过去一年的关键转折点,PokieTicker 的事件标注 + 相似日检索能帮你快速定位决策时刻。
场景 3:量化研究原型验证
项目自带回测框架(backtest.py)与特征工程代码,量化爱好者可以基于此快速验证「新闻情感 × 技术指标」类策略。
适合:股票初学者、量化爱好者、对事件驱动策略感兴趣的研究者。
不适合:需要实时 tick 级数据的日内交易者、追求高 Sharpe 的机构投资者、寻找「财富密码」的投机者。
六、竞品对比
| 工具 | 新闻叠加 | AI 归因 | 预测模型 | 开源 | 学习成本 |
|---|---|---|---|---|---|
| PokieTicker | ✅ K 线上钉点 | ✅ Sonnet 深度分析 | ✅ XGBoost T+1/T+3/T+5 | ✅ MIT | 中 |
| TradingView | ❌ 需手动加注释 | ❌ | ❌ | ❌ | 低 |
| FinGPT | ❌ | ⚠️ 仅情感分数 | ⚠️ 实验性 | ✅ | 高 |
| 东方财富 | ❌ 新闻独立栏 | ❌ | ❌ | ❌ | 低 |
相比 TradingView 的纯图表视角,PokieTicker 把新闻融进了图表本身;相比 FinGPT 的纯文本路线,它提供了端到端的可视化与回测。
七、如何快速上手
仓库内置预构建数据库 pokieticker.db.gz,无需 API Key 即可体验完整功能:
git clone https://github.com/owengetinfo-design/PokieTicker.git
cd PokieTicker
gunzip -k pokieticker.db.gz
tar xzf models.tar.gz -C backend/ml/
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cd frontend && npm install
启动两个服务:
# 终端 1:后端
uvicorn backend.api.main:app --reload
# 终端 2:前端
cd frontend && npm run dev
浏览器打开 http://localhost:7777/PokieTicker/ 即可使用。
进阶建议:若想接入实时数据,复制 .env.example 并填入 Polygon.io(免费层)与 Anthropic API Key,每周运行 python -m backend.weekly_update 即可增量更新,整体周成本约 1-2 美元。

八、总结与行动建议
PokieTicker 的核心价值在于「让价格变动有据可查」。它把碎片化新闻、AI 解读、量化预测整合进同一个交互界面,对培养事件驱动思维特别有帮助。三个层次的渐进使用建议:
- 入门:直接访问 mitrui.com/PokieTicker 在线 Demo,无需部署
- 进阶:本地运行仓库,体验完整 51K+ 数据集
- 深度:接入自有 API Key,跑通完整数据流水线与自定义模型训练
项目链接:
- GitHub:https://github.com/owengetinfo-design/PokieTicker
- 在线 Demo:https://mitrui.com/PokieTicker
- 协议:MIT
一句话推荐:如果你想看懂「K 线背后的故事」,PokieTicker 是目前最轻量、最完整的开源答案。