关于 Signal Ledger Financial Intelligence
Signal Ledger Financial Intelligence 是面向金融分析人员的观点与公开情报审计仪表盘。它将 X 帖子中的市场判断与重大事件转化为带证据链的影响分析,并用行情事后验证判断。
主要功能
- 01抽取并验证 X 市场判断
- 02聚合并去重重大公开事件
- 03生成多资产影响链与指数评分
- 04按作者、事件等条件筛选
- 05登录保护、搜索与 CSV 导出
适用场景
- 01复核 X 作者的历史市场判断
- 02追踪制裁、灾害等事件的市场传导
- 03比较重大事件对五个指数的影响
- 04导出判断账本供后续审阅
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://43-135-4-66.sslip.io/mcpclaude mcp add --transport http blf2097-signal-ledger-financial-intelligence https://43-135-4-66.sslip.io/mcp{"mcpServers":{"blf2097-signal-ledger-financial-intelligence":{"type":"http","url":"https://43-135-4-66.sslip.io/mcp"}}}在 Cursor 中打开{"servers":{"blf2097-signal-ledger-financial-intelligence":{"type":"http","url":"https://43-135-4-66.sslip.io/mcp"}}}在 VS Code 中打开{"mcpServers":{"blf2097-signal-ledger-financial-intelligence":{"type":"http","url":"https://43-135-4-66.sslip.io/mcp"}}}{"mcpServers":{"blf2097-signal-ledger-financial-intelligence":{"serverUrl":"https://43-135-4-66.sslip.io/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
2| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| mode | enum | 否 | 可选的显式模式。若未提供,则根据 report_text 或 symbol 推断。text | symbol |
| period | string | 否 | latest、2025/FY2025、2025-Q4 或 YYYY-MM-DD。 |
| symbol | string | 否 | 美国上市公司的股票代码,例如 AAPL 或 BRK.B。服务会获取官方申报文件。 |
| company | string | 否 | 文本模式下可选的公司名称。 |
| report_text | string | 否 | 财务报表、年度报告、季度报告、SEC 10-K、10-Q 或 8-K 文件中的纯文本。 |
| report_type | enum | 否 | 符号模式下首选的申报/报告类型。10-K | 10-Q | 8-K |
| source_context | object | 否 | 调用方提供文本的可选来源元数据。 |
| source_context.source_url | string | 否 | |
| source_context.source_name | string | 否 | |
| source_context.metric_basis | string | 否 | |
| source_context.published_at | string | 否 | |
| source_context.retrieved_at | string | 否 | |
| source_context.report_period | string | 否 | |
| source_context.cross_checked_sources | array | 否 |
详细介绍
来自项目 READMESignal Ledger / 聪明钱观点账本
一个可直接运行的“观点与情报审计 Agent”。第一板块每 6 小时从指定 X 账号增量抓取帖子,用 Qwen 抽取个股、行业和市场判断,到期后以真实行情验证;第二板块聚合 Osiris、Third‑Eye 与美国财政部 OFAC 的重大公开事件,把事件拆成对股票、行业、领域和市场的利多/利空影响链。两部分统一在带登录保护的中文仪表盘中展示。
已实现
- 首次抓取最近 30 天,后续按 X
since_id增量抓取,不重复消费旧帖子。 - 一条帖子中的多条独立判断拆成多行;只有明确的前瞻判断或买卖/回避建议才入表。
- 必备字段全部覆盖:判断来源、判断类型、判断对象、判断趋势、原因原文摘录、到期验证时间、到期验证结果。
- 作者没给期限时使用可解释的默认口径:个股/行业 30 天、市场 7 天;页面会明确标注“系统默认”。
- 个股用自身价格;行业用映射 ETF;美股市场默认 SPY。涨/跌达到 ±3% 算命中,震荡落在 ±3% 内算命中。
- “波动加大/收窄”比较到期窗口与此前等长窗口的年化实现波动率,变化至少 15% 才算命中。
- 服务进程内每 6 小时自动调度,systemd 负责进程异常后的自动恢复。
- 页面手动刷新与定时任务调用完全相同的抓取、抽取、去重和验证流水线。
- 按作者汇总最近 3 天帖子;只有帖子集合变化时才重新调用模型,避免重复消耗额度。
- 判断账本支持按表头排序,并可按作者、类型、对象、趋势、原因、发布时间、到期时间和验证结果筛选。
- 账本同时展示判断产生时间、到期验证时间、验证口径、结果与原帖详情。
- 全球情报板块只读取能形成交易传导的重大离散事件:重大新闻、战争/GDELT 冲突、制裁、火山、较强地震、重大天气、网络漏洞和太空天气告警。
- 不抓取航空轨迹、船舶位置、港口、CCTV 或卫星位置等高体量遥测。Third-Eye 的普通火点也不进入流水线,
fires接口只提取火山事件。 - 重大制裁除新闻识别外,还轻量读取 OFAC 官方最新制裁更新及详情摘要;不会下载完整制裁数据库,也不会把个人 SDN 明细送入模型。
- 同一事件跨平台自动合并,保留平台、底层信息源和证据链接,避免重复情报制造虚假热度。
- 通过上述轻量规则进入候选池的重大事件会全部接受 Qwen 审查并进入事件视图;没有明确指数方向的事件保留并记 0 分,不再因为缺少行业结论而从页面消失。
- Qwen 将每个事件拆成多条资产影响链;同一事件可以同时对不同对象产生利多与利空,并显示期限、置信度和反向条件。
- 每个事件都对纳斯达克综合指数、富时中国A50、沪深300、恒生指数和日经225生成一组结构化评分因子;最终 -100 到 +100 分由代码统一复算,模型不能直接决定展示分数。
- 影响结果经过代码级质量防线:剔除抽象目标、未知或错配代码,灾害对保险业的短期方向按理赔逻辑校正;偏远地震和只有监测标记、没有产能中断证据的火山事件不会形成资产影响。
- 外部证据链接只接受 HTTP/HTTPS 协议;模型分析结果不会自动触发交易或外部操作。
- 全球情报支持按类别、方向、平台、期限、关键词和重要度筛选或排序。
- 全球情报提供事件视图与指数视图:事件卡片内展示五个指数的单项影响分;每个指数卡片汇总所有相关事件、单项分数、利多/利空复合压力和组合净分。
- 页面手动刷新只要求用户已经登录,不再额外询问刷新密钥。
- 支持全文搜索、详情查看和 UTF-8 CSV 导出。
- 未配置密钥时自动进入明确标注的演示模式,不会把模拟记录冒充真实判断。
工作方式
X API 增量帖子
├─ Qwen 结构化抽取 → 判断账本 → 到期行情验证
└─ 最近 3 天滚动缓存 → Qwen 博主简报
Osiris + Third-Eye 重大事件 + OFAC 制裁更新
└─ 轻量事件过滤 → 跨来源去重 → Qwen 结构暴露/传导因子 → 代码复算五指数影响分
浏览器 → 登录保护 → 仪表盘 / CSV / 手动刷新
运行数据保存在 data/store.json。该文件、日志和 .env 均不会进入 Git;仓库只保留 data/.gitkeep 作为持久化目录占位。
默认追踪名单
| 账号 | 主要用途 | 备注 |
|---|---|---|
@aleabitoreddit / Serenity | AI、半导体供应链、个股 | 用户指定,主题集中度较高 |
@BillBrooklyn10 / Bill Brooklyn | 明确买卖清单 | 用户指定;身份与履历未核验,页面有风险提示 |
@StockMarketNerd | 个股基本面、财报 | 推荐加入,用来平衡纯题材/动量观点 |
@LizAnnSonders | 宏观、风格与市场结构 | 推荐加入,用来覆盖整体市场判断 |
名单在 src/config.js 的 SOURCES 数组里,增删账号不需要改抓取逻辑。
本地运行
要求 Node.js 20 或更高版本;本项目没有第三方 npm 依赖。
cp .env.example .env
# 编辑 .env,至少填 X_BEARER_TOKEN 和 DASHSCOPE_API_KEY
npm start
打开 http://localhost:8787。首次启动会在约 2 秒后自动跑一轮,也可以点击“立即刷新”。
密钥
X_BEARER_TOKEN:X Developer Portal 创建 App 后获得的只读 Bearer Token。只读取公开帖子,不需要发帖权限。DASHSCOPE_API_KEY:阿里云百炼 API Key,供默认的 Qwen 抽取引擎使用。AI_PROVIDER:默认qwen。如所在地区支持 OpenAI API,也可改为openai并配置OPENAI_API_KEY。OSIRIS_BASE_URL、THIRD_EYE_BASE_URL:两个 OSINT 平台的 API 根地址;默认使用公开演示站。OFAC 使用固定的官方 Recent Actions 地址。INTELLIGENCE_LOOKBACK_DAYS:保留并展示的情报回看天数,默认 7 天。INTELLIGENCE_MAX_ANALYZE:每轮最多交给模型分析的新增事件数,默认 40;进入模型前已过滤遥测、弱地震、普通火点和过期事件。
密钥只从环境变量读取;.env 和运行时数据文件都已加入 .gitignore。
数据和验证口径
运行时状态保存在 data/store.json,写入时使用临时文件原子替换。生产部署需要把 /app/data 挂载到持久卷,否则容器重启会丢失历史。
价格验证使用 Yahoo Finance 图表接口返回的复权日线:
- 起点取发帖当天或之后第一个可用交易日。
- 终点取到期日当日或之前最后一个可用交易日。
- 涨:区间收益
>= +3%;跌:<= -3%;震荡:绝对收益< 3%。 - 阈值可用
VALIDATION_THRESHOLD_PCT修改。 - 行情暂缺时标记“行情数据暂缺”,后续每轮自动重试,不会误判。
行业映射在 src/config.js 的 INDUSTRY_BENCHMARKS 中。无法识别的行业当前用 SPY 兜底,并在页面明确标注。
五大指数影响分
每个重大事件都保留在事件视图中,并对五个指数分别生成一条记录。Qwen 只负责依据事件证据和指数结构选择标准化传导通道,并给出 exposure(指数暴露)、transmission(传导清晰度)、confidence(方向证据可靠性)、方向和期限;最终分数、因果链与反向条件均由代码生成,模型的自由文本指数解释不会直接展示:
证据基础分 = 20% × 事件相关度
+ 20% × 事件严重度
+ 30% × 传导清晰度
+ 25% × 方向置信度
+ 5% × 独立来源广度
单事件指数影响分 = 方向符号 × 证据基础分 × (指数暴露/100) × 新鲜度因子 × 期限系数
- 方向符号:利多
+1、利空-1、中性0。 - 事件严重度:低 25、中 40、较高 60、高 80、极高 100。
- 独立来源广度:1 个底层来源 60、2 个 80、3 个及以上 100。
- 指数暴露是乘法闸门而不是加法项:直接暴露不足时,不能靠事件严重度或泛化的风险情绪把分数补高。80—100仅用于指数本国/地区经济或高权重成分群的直接暴露;50—79用于重要成分行业;20—49用于间接商品、利率、汇率或供应链渠道;泛化风险情绪低于20。
- 新鲜度:3.5 天半衰期;先算 20—100 的新鲜度分,再转换为
0.55 + 0.45 × 新鲜度/100,所以当前 7 天窗口中的事件不会只因时间衰减到零。 - 期限系数:即时 1.00、短期 0.90、中期 0.75、长期 0.60。
- 硬门槛:方向为中性、指数暴露
<10、传导清晰度<20或方向置信度<40,一律记 0 分。 - 代码级暴露校准:单一 CVE/厂商漏洞、没有广泛贸易或行业传导的窄范围名单更新,以及既不触及指数本地经济、也没有系统性变量通道的域外局部冲突,指数暴露上限为 9,因此强制记 0;页面会显示模型原始暴露、校准后暴露和原因。
- 分数经四舍五入并限制在
-100…+100:负数表示利空,正数表示利多;±80…100极强、±60…79强、±40…59中等、±1…39弱、0为中性或证据未过门槛。
指数视图的组合净分不直接相加:相同指数、同传导通道、同方向的第 n 条事件先乘 1/√n,避免同一风险机制被不同新闻类别重复堆高;利多与利空分别按 100 × (1 − Π(1 − |有效分|/100)) 合成为两侧压力,组合净分等于利多压力减利空压力。这些分数是可审计的相对事件冲击,不是预计收益率、涨跌概率或仓位建议。
6 小时自动刷新
服务进程存活时,内置调度器会按 REFRESH_INTERVAL_HOURS 同时运行大 V 抓取、到期验证和全球重大事件刷新;在 VPS/systemd 或 Docker restart: unless-stopped 环境中不需要额外 cron。登录后的页面可以直接手动刷新,不再要求第二个刷新密钥。
只需要初始化或重跑全球情报板块、不想重复抓取全部 X 帖子时,可执行:
npm run refresh:intelligence
API
GET /api/data:仪表盘全部数据与运行状态GET /api/export.csv:导出账本GET /api/health:健康检查POST /api/refresh:运行一次完整刷新;网页环境需要有效登录会话
测试
npm test
测试覆盖抽取结果清洗、基准映射、方向阈值、波动率规则、区间收益验证,以及重大新闻、GDELT、火山、较强地震、OFAC 制裁更新、跨来源去重、多方向影响链清洗、代码映射白名单、置信度和页面契约。X、Qwen、行情和 OSINT 接口属于外部集成,真实密钥下的刷新用于最终端到端检查。
部署提示
可以直接使用仓库中的 Dockerfile 和 compose.yaml。容器仅绑定服务器回环地址 127.0.0.1:8787,公网必须通过 HTTPS 反向代理访问;裸机运行时设置 HOST=127.0.0.1 达到同样效果。生产环境至少需要:
- 持久化
/app/data - 注入
.env.example中的环境变量 - 配置
APP_USERNAME、APP_PASSWORD_HASH和随机APP_SESSION_SECRET;额外账号使用APP_USERS_JSON的“用户名 → scrypt 哈希”映射 - 配置 HTTPS;只用公网 IP 时,可用 Let’s Encrypt 短期 IP 证书并自动续期
- 安全组只开放公网 80/443;SSH 仅允许管理员固定 IP
推荐将应用作为独立服务运行,并用 Caddy 或 Nginx 反向代理到 127.0.0.1:8787。仓库的 deploy/nginx-ip.conf.template 可作为 Nginx 起点;使用域名时,Caddy 可以自动管理 HTTPS 证书。
访问保护覆盖首页、数据 API、CSV 和手动刷新接口。密码使用 scrypt 哈希存储,登录 Cookie 带签名、HttpOnly 和 SameSite=Strict;同一来源 15 分钟内连续失败 5 次会被暂时锁定。生成密码哈希:
node scripts/hash-password.mjs '你的至少12位密码'
多账号示例(主账号仍使用上面的两个单值变量):
APP_USERS_JSON={"analyst":"scrypt$盐$派生值","reviewer":"scrypt$盐$派生值"}
本工具只做观点记录、公开情报拆解与可重复的事后检验,不会自动交易,也不构成投资建议。平台风险标记、模型传导分析与股票代码映射都可能出错,作出决策前必须回看原始证据。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。