用途
cnn-fear-and-greed-parse 是一个 Go 包,用于获取 CNN 的美国股市恐惧与贪婪指数(Fear & Greed Index),该指数是一个 0–100 的市场情绪衡量指标。它可以返回当前评分和评级、前收盘、上周、上月、上年的数值、约一年的每日历史,以及七个组成指标的数据。
主要能力
- 返回当前评分与评级。
- 返回前收盘、上周、上月、上年的数值。
- 返回约一年的每日历史数据。
- 返回七个组成指标:市场动能(market momentum)、股价强度(stock price strength)、股价广度(stock price breadth)、看跌/看涨期权(put/call options)、市场波动率(market volatility)、垃圾债券需求(junk bond demand)、避险需求(safe haven demand)。每个指标都有各自的评分、评级和原始值历史。
- Indicator 的 History 保存原始底层序列(动能对应 S&P 500 水平,波动率对应 VIX 水平,其余为比率和利差),Score 是 CNN 的 0–100 归一化值。
- 支持替换 cnnfag.HTTPClient 以使用自定义的 http.Client(超时、代理)。
使用方式
命令行工具(CLI)
适用于 cron 任务和 shell 管道,无需编写 Go 代码:
-json打印完整结果,包括每日历史。-timeout更改请求超时时间(默认 15 秒)。
MCP 服务器
cnnfag mcp 通过 stdio 运行 Model Context Protocol 服务器,AI 助手可以查询该指数。它暴露一个工具 get_fear_and_greed,带一个可选参数 include_history。MCP 客户端配置时,客户端必须能找到该二进制文件:如果 MCP 客户端不继承 shell 的 PATH,请使用完整路径(通常为 ~/go/bin/cnnfag)。与模块其余部分一样,服务器仅基于标准库构建。该服务器已发布到 MCP Registry,标识为 io.github.wildsurfer/cnnfag,并提供容器镜像 ghcr.io/wildsurfer/cnnfag 供偏好 Docker 的客户端使用。
数据来源
CNN 未提供文档化的公共 API。该包请求 Fear & Greed 页面自身使用的 JSON 端点。该端点拒绝不像来自浏览器的请求,因此包会发送类似浏览器的 User-Agent 和 Referer 头。这与其他语言的已知包装器使用的数据源相同。一个定时 CI 任务每周针对真实端点运行测试套件,因此 CNN 侧的变化可在数天内被检测到。
从 v1 迁移
v2 是完全重写:CNN 移除了 v1 解析的 HTML 页面,导致 v1 停止工作,其数据模型不再匹配 CNN 发布的内容。首先更新导入路径,然后调整调用:评分从舍入整数变为 CNN 提供的精确浮点数,因此 v1 中的 44 对应 v2 中的约 43.71。如果需要旧样式,可用 %.0f 或 math.Round 舍入。
项目历史
v1(2021)使用 goquery 解析 money.cnn.com/data/fear-and-greed 的 HTML,还可以下载指数指针图像。CNN 移除了该页面,导致解析中断,图像也不再存在。v2(2026)是基于 JSON 端点的重写,API 更小,包含历史数据且零依赖。最后一个 v1 版本标记为 v1.2.0。
限制与免责
- 该包与 CNN 无关联,也未获得 CNN 认可。
- Fear & Greed Index 及其数值属于 CNN(Warner Bros. Discovery)。
- MIT 许可证仅覆盖本仓库中的代码,不授予对 CNN 数据的任何权利。
- CNN 的使用条款允许个人使用网站内容,并限制商业利用。如果在产品中使用此数据,合规性是使用者的责任,且端点可能随时更改或消失。