一只阿木木

OpenClaw 免费 API 搭建股票筛选器:实时数据 + 情绪分析,月成本不到 $100

华尔街的量化团队花几百万美金搭建的情绪分析系统,我用 OpenClaw + 几个免费 API 复制了 80% 的核心逻辑。上个月运行成本:$73。这不是投资建议,这是工程美学。


写在前面:一个散户的认知觉醒

我不是金融从业者。我是一个写代码的独立开发者,业余炒股。

过去三年,我的投资方式是这样的:每天早上花 30 分钟刷财经新闻,看几个 YouTube 财经频道,偶尔翻翻 r/wallstreetbets 和雪球,然后凭"感觉"做决策。

结果嘛——三年下来,年化收益 4.2%。连标普 500 的 ETF 都没跑赢。

2025 年底,我开始认真研究一个问题:散户和机构的真正差距在哪里?

不是资金量。不是交易速度。甚至不完全是信息。

是信息处理能力。

一家量化基金每天处理的信息源包括:实时行情数据、SEC 财报、新闻情绪分析、社交媒体舆情、卫星图像、供应链数据、专利申请……一个散户每天能处理的信息源大概是:手机上的三个 App。

这就是差距所在——不是信息不够,而是处理信息的带宽差了 1,000 倍。

然后我想到了 OpenClaw。

如果我把 Agent 变成我的"量化分析助手"呢?不需要百万美金的基础设施。用免费 API 获取数据,用 AI Agent 做情绪分析和综合判断,用 Telegram 推送筛选结果——一个人的量化 Lite 版。

这篇文章,是我过去 45 天搭建并运行这套系统的完整复盘。

再次声明:本文不构成任何投资建议。我分享的是工程实现,不是交易策略。股市有风险,入市需谨慎。


第一章 为什么 AI Agent ≠ 聊天机器人,在金融场景下尤其如此

聊天机器人的局限

你问 ChatGPT:"特斯拉现在值得买吗?"

它会给你一段正确但无用的废话:「特斯拉是一家创新型公司,但投资需要考虑多方面因素,包括市盈率、行业趋势、宏观经济环境……」

这不是 AI 的错。这是架构的局限——聊天机器人没有实时数据、没有历史追踪、没有情绪感知、没有持久记忆。它只能基于训练数据给你"正确的废话"。

Agent 的范式跃迁

OpenClaw 的本质不同在于——当人们期望一个更好的 Siri 时,他们得到的实际上是一个与其说是语音助手,不如说更像是 AI 驱动的操作系统。你不只是和它聊天——你给它工具、数据和行动权限。

在金融场景下,这意味着:

text

聊天机器人:你问 → 它答(基于旧数据)→ 结束

Agent:
  → 主动获取实时行情数据(通过 API)
  → 主动扫描新闻和社交媒体情绪(通过 Skill)
  → 对比历史记忆中的判断(通过 Obsidian)
  → 综合所有信号生成筛选结果
  → 主动推送到你的手机(通过 Telegram)
  → 记录本次判断,供未来回测(通过 MEMORY.md)

这就是 Agent 和聊天机器人的本质区别——Agent 不是等你问问题。Agent 是在你睡觉的时候,帮你盯着市场上的每一个信号。


第二章 数据层架构:免费 API 矩阵

核心设计原则

金融数据 API 的世界是一个典型的"免费层就够用"的领域——大量 API 提供慷慨的免费额度。关键是知道用哪些、怎么组合、怎么不超限额。

我的免费 API 矩阵

数据类型
API 选择
免费额度
获取内容
实时/延迟行情
Yahoo Finance (yfinance)
无限制
价格、成交量、基本面指标
基本面数据
Financial Modeling Prep
250 次/天
PE、EPS、营收增长、资产负债表
技术指标
Alpha Vantage
25 次/天(免费)
RSI、MACD、SMA、布林带
新闻
NewsAPI
100 次/天
财经新闻标题+摘要
Reddit 讨论
Reddit JSON API
无限制(有频率限制)
r/wallstreetbets, r/stocks 帖子
X/Twitter 情绪
xAI API(via Last30Days)
按 Key
市场情绪实时脉搏
SEC 文件
SEC EDGAR
无限制
10-K、10-Q、8-K 财报
宏观经济数据
FRED API
无限制
利率、CPI、失业率

为什么不用付费 API?

对于一个散户的筛选系统来说,免费层的数据质量已经足够了。

免费实时报价和基础筛选已经足以满足大多数散户需要。只有当你需要日内交易级别的毫秒延迟或历史 Tick 数据时,才需要付费 API。而我们做的是日频筛选 + 情绪分析,不是高频交易。延迟 15 分钟的行情对我们的场景完全够用。

API 额度管理策略

这是初学者最容易踩的坑——一个早上就把免费额度用完了。

Markdown

# API 额度分配策略

## Alpha Vantage(最紧缺:25 次/天)
- 分配:每日开盘前一次性批量拉取 20 只目标股票的技术指标
- 预留:5 次给紧急查询
- 技巧:缓存到 Obsidian,当天不重复拉取

## Financial Modeling Prep(250 次/天)
- 分配:150 次给每日筛选(覆盖 150 只股票的基本面)
- 分配:50 次给竞品/行业对比
- 预留:50 次给临时调研
- 技巧:基本面数据变化慢,周一拉一次够用一周

## NewsAPI(100 次/天)
- 分配:每 2 小时拉取一次目标关键词新闻(12 次/天)
- 分配:每只重点关注股票每天 1 次(~20 次/天)
- 预留:68 次给突发事件追踪

## Yahoo Finance(无限制)
- 主力数据源:实时报价 + 基础筛选 + 历史数据
- 技巧:用 yfinance Python 包直接调用,无需 API Key


第三章 OpenClaw 的金融 Skill 生态

社区已有的金融相关 Skill

OpenClaw 社区已经有一些面向金融的 Skill 可以直接使用。在 ClawHub 的 13,000+ Skill 中,我筛选出了与金融数据最相关的几类:

① 新闻聚合类

综合新闻聚合器——从 8+ 数据源获取、筛选并深度分析实时内容,包括 Hacker News、GitHub Trending、Product Hunt,以及国内的华尔街见闻(WallStreetCN)等。

华尔街见闻是中国最重要的金融信息平台之一。这个 Skill 可以直接获取中文金融新闻——对于关注 A 股或中概股的投资者来说极其有价值。

② 网页搜索类

Last 30 Days Skill 在金融场景下同样强大——

text

/last30days Tesla stock sentiment Reddit
/last30days people switching from growth to value stocks
/last30days what are traders saying about Fed rate decision

搜索 Reddit、X 和网页上过去 30 天内发布的内容,综合社区正在讨论的话题,并交付可操作的输出。组合情绪词——"frustrated"、"love"、"hate"、"wish"——能找到更强烈的意见。

在金融场景中,"情绪词"就是:bullish、bearish、crash、moon、dump、buy the dip、overvalued、undervalued。

③ 数据获取类

tavily 搜索工具可以做实时网页搜索,获取最新的财经新闻和分析师观点。

blogwatcher Skill 可以监控 RSS/Atom 订阅源——我用它订阅了 Seeking Alpha、Bloomberg Opinion 和几个高质量的独立金融博客。

④ 自定义 Skill——这才是核心

社区 Skill 能覆盖一部分需求,但股票筛选器的核心逻辑需要自定义。OpenClaw 的 Skill 本质上就是 Markdown 文件中的指令集——这是它设计哲学中最美的部分之一。

自定义 Skill 不需要写复杂代码。Skill 是 markdown 文件,告诉 Agent 该做什么。你可以用自然语言定义一个完整的金融分析工作流。


第四章 三层筛选器架构

这是整个系统的核心——三层漏斗,逐层过滤,从 5,000+ 只股票到最终推荐的 3-5 只。

text

┌──────────────────────────────────────────────┐
│         Layer 1: 量化筛选(基本面+技术面)       │
│         输入:5,000+ 只美股                     │
│         输出:~50 只候选                         │
│         数据源:Yahoo Finance + FMP + AV         │
│         模型:Haiku(数据处理,不需要推理)        │
├──────────────────────────────────────────────┤
│         Layer 2: 情绪分析筛选                    │
│         输入:~50 只候选                         │
│         输出:~15 只高情绪信号                    │
│         数据源:NewsAPI + Reddit + X              │
│         模型:Sonnet(需要语义理解能力)           │
├──────────────────────────────────────────────┤
│         Layer 3: AI 综合评估                     │
│         输入:~15 只 + 全部上下文                 │
│         输出:3-5 只最终推荐 + 风险提示            │
│         数据源:以上所有 + Obsidian 历史记忆       │
│         模型:Opus(需要最强推理做综合判断)        │
└──────────────────────────────────────────────┘

Layer 1:量化筛选

目标:从数千只股票中快速过滤出基本面和技术面都值得关注的候选。

Markdown

# Layer 1 筛选规则(可自定义)

## 基本面条件(AND 逻辑)
- 市值 > $1B(排除微盘股风险)
- PE 比率 < 行业平均 × 1.2(不要过度溢价)
- 营收 YoY 增长 > 10%(成长性)
- 毛利率 > 30%(盈利能力)
- 负债权益比 < 1.5(财务健康)
- 自由现金流为正(真金白银)

## 技术面条件(至少满足 2 条)
- RSI(14) < 35(超卖信号)或 RSI(14) 从超卖区回升
- 价格在 200 日均线附近(±5%)
- MACD 金叉(或即将金叉)
- 成交量 > 20 日平均 × 1.5(放量信号)
- 布林带下轨附近(超跌反弹机会)

## 排除条件
- 近 30 天有 SEC 违规调查(8-K 文件扫描)
- 近 7 天日均成交量 < 100K(流动性不足)
- 近期有退市风险警告

实现方式:

Python

# 伪代码:Agent 执行的 Layer 1 筛选逻辑
# 实际上 Agent 会调用 Shell 工具运行这个 Python 脚本

import yfinance as yf
import pandas as pd

def layer1_screen():
    # 从 S&P 500 + NASDAQ 100 + Russell 2000 获取股票列表
    universe = get_stock_universe()  # ~5,000 只

    results = []
    for ticker in universe:
        stock = yf.Ticker(ticker)
        info = stock.info

        # 基本面过滤
        if (info.get('marketCap', 0) > 1e9 and
            info.get('trailingPE', 999) < industry_avg_pe(info['sector']) * 1.2 and
            info.get('revenueGrowth', 0) > 0.10 and
            info.get('grossMargins', 0) > 0.30 and
            info.get('debtToEquity', 999) < 150 and
            info.get('freeCashflow', 0) > 0):

            # 技术面评分
            tech_score = calculate_technical_score(ticker)
            if tech_score >= 2:  # 至少满足 2 条技术面条件
                results.append({
                    'ticker': ticker,
                    'name': info['shortName'],
                    'sector': info['sector'],
                    'pe': info.get('trailingPE'),
                    'revenue_growth': info.get('revenueGrowth'),
                    'tech_score': tech_score,
                    'price': info.get('currentPrice')
                })

    return pd.DataFrame(results).sort_values('tech_score', ascending=False)

为什么 Layer 1 用 Haiku?因为这一层本质上是数据处理和规则匹配——不需要"理解"能力,只需要快速执行。用最便宜的模型就够了。使用智能模型路由——简单任务用便宜模型(Haiku/Flash),复杂任务用贵模型(Sonnet/Opus)。

Layer 2:情绪分析筛选

目标:在基本面合格的候选中,找到市场情绪正在发生变化的股票——情绪拐点往往领先于价格拐点。

这是整个系统最有价值的部分。

Markdown

# Layer 2 情绪分析指令

对 Layer 1 输出的每只候选股票(约 50 只),执行以下分析:

## 数据源 1: 新闻情绪 (NewsAPI)
- 搜索过去 7 天关于该公司的所有英文新闻
- 对每篇新闻标题+摘要进行情绪评分:
  - 强正面 (+2):业绩超预期、获得升级、重大合作
  - 弱正面 (+1):行业利好、分析师看好
  - 中性 (0):常规报道
  - 弱负面 (-1):行业逆风、估值担忧
  - 强负面 (-2):业绩暴雷、监管调查、高管离职
- 计算加权情绪得分(越近的新闻权重越高)

## 数据源 2: Reddit 社区情绪
- 搜索 r/wallstreetbets, r/stocks, r/investing, r/ValueInvesting
- 过去 30 天关于该股票的帖子
- 分析维度:
  - 讨论量变化(vs 前 30 天)→ 关注度变化
  - 帖子情绪分布(多/空/中性)
  - 高赞评论的论点质量
  - "买入理由" vs "卖出理由" 的比例

## 数据源 3: X/Twitter 实时脉搏
- 搜索 $TICKER cashtag + 公司名
- 过去 7 天的推文情绪
- 特别关注:
  - 知名交易员/分析师的观点
  - 情绪突变(突然从正转负,或从负转正)
  - 异常讨论量(可能预示重大事件)

## 输出格式
| 股票 | 新闻情绪 | Reddit情绪 | X情绪 | 综合评分 | 情绪趋势 |
|------|---------|-----------|-------|---------|---------|
| AAPL | +1.3    | 偏多(65%) | 中性  | 62/100  | ↗️ 改善中 |
| ...  | ...     | ...       | ...   | ...     | ...     |

## 筛选条件
- 综合情绪评分 > 55/100
- 情绪趋势:↗️ 改善中 或 🔄 拐点信号
- 讨论量相对前期有 > 50% 增长(关注度上升)

Layer 3:AI 综合评估

目标:让最强的 AI 模型综合所有信号,给出最终判断。

这一层用 Opus——因为它需要:

  • 综合 Layer 1 的量化数据 + Layer 2 的情绪数据
  • 读取 Obsidian 中的历史判断(上一次推荐的股票后来表现如何?)
  • 做出有逻辑的推理(不是简单的评分公式)
  • 识别风险因素并给出平衡的建议

Markdown

# Layer 3 综合评估指令

你是一位资深的量化分析师助手。
你的工作是综合所有数据,给出严谨、平衡的分析。

## 你必须遵守的原则
1. 永远不要给出"买入"或"卖出"的明确指令
2. 永远标注不确定性和风险因素
3. 永远提供正反两面的论点
4. 永远注明数据来源和时效性
5. 永远在结尾附上免责声明

## 输入数据
- Layer 1 量化筛选结果(约 50 只)
- Layer 2 情绪分析结果(约 15 只)
- Obsidian /Finance/history.md(历史推荐+实际表现回测)
- Obsidian /Finance/macro.md(当前宏观环境备注)
- 今日宏观数据(FRED API:利率决议、CPI、失业率等)

## 分析框架

### 对每只股票:
1. 量化信号强度(Layer 1 评分占 40%)
2. 情绪信号强度(Layer 2 评分占 30%)
3. 宏观环境匹配度(该行业在当前宏观下是顺风还是逆风?占 15%)
4. 历史表现(类似信号组合过去的成功率?占 15%)

### 风险评估:
- 最大下行风险是什么?
- 催化剂是什么?(什么事件会验证/推翻这个判断?)
- 时间窗口(这个信号的有效期大约是多久?)

### 输出:
- Top 3-5 最值得关注的股票
- 每只附带:简要论点 + 关键数据 + 风险提示 + 催化剂时间表
- 整体市场情绪评估(贪婪/恐惧指标)
- 与上周推荐的对比(持续关注还是新进入?)


第五章 Obsidian 记忆层:让 Agent 越用越准

为什么记忆层是核心

Agent 的记忆模型走的是朴素路线。没有向量数据库。没有隐藏的嵌入层。Markdown 文件就是事实源头。记忆检索通过工具来中介。

在金融场景下,记忆层的价值是:回测你的 Agent 的判断质量。

每次 Agent 推荐一只股票,我都要求它记录下来。30 天后,我可以回头看——Agent 推荐的股票实际表现如何?哪些信号组合成功率高?哪些是噪音?

这就形成了一个自我校准的反馈循环。

金融记忆 Vault 结构

text

📁 Finance-Vault/
├── 📁 daily/
│   ├── 2026-01-20-screening.md    ← 每日筛选结果
│   ├── 2026-01-21-screening.md
│   └── ...
├── 📁 stocks/
│   ├── 📁 AAPL/
│   │   ├── profile.md             ← 基本信息+关注理由
│   │   ├── sentiment-log.md       ← 情绪历史追踪
│   │   └── trades-log.md          ← 推荐记录+实际结果
│   ├── 📁 TSLA/
│   │   └── ...
│   └── ...
├── 📁 sectors/
│   ├── technology.md              ← 行业趋势追踪
│   ├── healthcare.md
│   └── ...
├── 📁 macro/
│   ├── fed-decisions.md           ← 美联储决议追踪
│   ├── cpi-history.md             ← CPI 数据追踪
│   └── market-regime.md           ← 当前市场状态判断
├── 📁 backtest/
│   ├── weekly-review.md           ← 每周回测
│   ├── monthly-review.md          ← 每月回测
│   └── signal-effectiveness.md    ← 各信号有效性统计
├── watchlist.md                    ← 当前关注列表
├── MEMORY.md                       ← Agent 长期记忆
└── SOUL.md                         ← Agent 人格设定

关键文件:signal-effectiveness.md

这是整个系统最有价值的长期资产——

Markdown

# 信号有效性统计(自动更新)

## 统计周期:2026-01-20 至 2026-03-04(45 天)
## 总推荐次数:67 只次
## 基准:SPY 同期 +3.2%

### 单信号有效性

| 信号 | 触发次数 | 7天正收益率 | 30天正收益率 | 平均超额收益 |
|------|---------|-----------|------------|------------|
| RSI超卖+情绪拐点 | 12 | 75% | 67% | +4.2% |
| 放量+Reddit热度飙升 | 8 | 50% | 38% | -1.1% |
| 业绩超预期+新闻正面 | 15 | 80% | 73% | +6.8% |
| MACD金叉+X情绪转正 | 11 | 64% | 55% | +2.1% |
| 纯技术面信号 | 21 | 52% | 48% | +0.3% |

### 关键发现
1. ✅ "业绩超预期+新闻正面" 是最强的信号组合(73% 30天正收益)
2. ✅ "RSI超卖+情绪拐点" 是性价比最高的逆向信号
3. ⚠️ "放量+Reddit热度飙升" 往往是散户追高信号,谨慎使用
4. ⚠️ 纯技术面信号几乎不提供超额收益,必须搭配情绪信号

### Agent 自我校准建议
- 降低 Layer 1 纯技术面的权重(从 40% 降到 30%)
- 增加 "情绪拐点" 信号的权重
- 对 Reddit 热度飙升型信号增加 24 小时冷静期

这就是记忆系统让 Agent 越来越准确的方式——当你连接 Obsidian 时,持久记忆将你的 AI 使用从被动转为战略性。Agent 可以重新审视几周前做的决策,并与当前数据进行对比。


第六章 Cron + Heartbeat:自动化调度

每日运行时间表

text

┌──────────────────────────────────────────────────────────┐
│                    每日运行时间表                            │
│                    (美东时间)                                │
│                                                            │
│  05:00  [Cron] 盘前扫描                                    │
│         → 拉取昨日收盘数据 + 盘前异动                        │
│         → 运行 Layer 1 量化筛选                             │
│         → 拉取目标股票最新新闻                               │
│                                                            │
│  06:00  [Cron] 情绪扫描                                    │
│         → 运行 Layer 2 对 Layer 1 候选                      │
│         → Reddit 过夜讨论分析                               │
│         → X/Twitter 早盘前情绪                              │
│                                                            │
│  07:00  [Cron] 综合评估 + 推送                              │
│         → 运行 Layer 3 Opus 综合评估                        │
│         → 生成每日筛选报告                                  │
│         → Telegram 推送到我手机                             │
│         → 写入 Obsidian daily/ 文件夹                       │
│                                                            │
│  09:30  [Heartbeat] 开盘监控                               │
│         → 开盘 30 分钟异动追踪                              │
│         → 关注列表股票的开盘表现                             │
│         → 如有重大异动 → Telegram 紧急推送                   │
│                                                            │
│  12:00  [Cron] 午间快报                                     │
│         → 半天新闻总结                                      │
│         → 情绪变化追踪                                      │
│         → 写入 Discord #market-pulse                        │
│                                                            │
│  16:30  [Cron] 收盘总结                                     │
│         → 今日收盘数据更新                                   │
│         → 关注列表表现回顾                                   │
│         → 盘后新闻扫描                                      │
│         → 写入 Obsidian + 更新 watchlist.md                 │
│                                                            │
│  20:00  [Heartbeat] 夜间综合                                │
│         → 全球市场概览(亚洲/欧洲期货)                      │
│         → SEC 文件扫描(8-K 重大事件)                      │
│         → 宏观数据更新(如有)                              │
│         → 准备明日关注列表                                  │
│                                                            │
│  每周五 17:00 [Cron] 周报 + 回测                            │
│         → 本周推荐 vs 实际表现                              │
│         → 更新 signal-effectiveness.md                      │
│         → 生成下周关注列表                                  │
└──────────────────────────────────────────────────────────┘

Cron 配置示例

JSON

{
  "cron_jobs": [
    {
      "name": "Pre-Market Screening",
      "schedule": {
        "kind": "cron",
        "expr": "0 5 * * 1-5",
        "tz": "America/New_York"
      },
      "sessionTarget": "isolated",
      "payload": {
        "kind": "agentTurn",
        "message": "执行 Layer 1 量化筛选。使用 yfinance 拉取 S&P500+NASDAQ100 的最新数据,按照 /Finance-Vault/screening-rules.md 中的规则筛选。输出候选列表到 Obsidian /Finance-Vault/daily/ 并传递给 Layer 2。"
      },
      "delivery": {
        "mode": "none"
      }
    },
    {
      "name": "Morning Report",
      "schedule": {
        "kind": "cron",
        "expr": "0 7 * * 1-5",
        "tz": "America/New_York"
      },
      "sessionTarget": "isolated",
      "payload": {
        "kind": "agentTurn",
        "message": "读取今日 Layer 1 + Layer 2 结果。执行 Layer 3 综合评估。读取 Obsidian /Finance-Vault/MEMORY.md 和 /backtest/signal-effectiveness.md 作为历史参考。生成每日筛选报告。"
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "my-phone"
      }
    }
  ]
}

Heartbeat 配置

HEARTBEAT.md 用于盘中的灵活监控——它的名字不是随意取的,它就是 Agent 自主运行的"心跳"。

Markdown

# 金融监控 Heartbeat Checklist

## 🔴 紧急检查
- [ ] 关注列表中是否有股票日内波动 > 5%
- [ ] 是否有重大宏观数据发布(CPI/就业/美联储)
- [ ] 是否有目标行业的重大新闻(并购/监管/暴雷)
- [ ] 如有以上任何一项 → 立即 Telegram 推送

## 📊 常规检查
- [ ] 关注列表股票当前价格 vs 推荐时价格
- [ ] 市场整体情绪指标(VIX 水平)
- [ ] 今日新增 SEC 8-K 文件(目标公司)

## 📝 记录
- [ ] 如果有新的发现,追加到今日的 daily 笔记中


第七章 Telegram Bot:你的口袋分析师

每日推送报告格式

每天早上 7:00(美东),我的手机上会收到这样一条 Telegram 消息:

Markdown

📊 每日智能筛选 | 2026-03-04 (Tue)

━━━━━━━━━━━━━━━━━━━━━━━━

🌍 市场概览
SPY: $512.3 (+0.4%) | QQQ: $438.7 (+0.6%)
VIX: 18.2 (正常区间) | 10Y: 4.12%
市场情绪:中性偏乐观 (Fear & Greed: 58)

━━━━━━━━━━━━━━━━━━━━━━━━

🎯 今日 Top 3 关注

1️⃣ CRWD (CrowdStrike) — $287.4
   量化评分: 82/100 | 情绪评分: 71/100
   📈 信号: RSI(14)=33 超卖 + 分析师上调目标价
   💬 Reddit: r/stocks 3天讨论量↑120%,偏多
   ⚠️ 风险: Q1财报 3/12,波动性将大增
   🎯 催化剂: 网络安全法案投票(3月中旬)
   📊 历史信号成功率: 类似组合 → 67% 30天正收益

2️⃣ ABNB (Airbnb) — $148.2
   量化评分: 76/100 | 情绪评分: 68/100
   📈 信号: MACD金叉 + 旅游板块整体回暖
   💬 X情绪: 从"bearish"转为"cautiously bullish"
   ⚠️ 风险: 欧洲监管不确定性
   🎯 催化剂: 夏季旅游预订数据(4月)
   📊 历史信号成功率: 类似组合 → 61% 30天正收益

3️⃣ PLTR (Palantir) — $21.8
   量化评分: 71/100 | 情绪评分: 74/100
   📈 信号: 放量突破 + 政府合同新闻
   💬 Reddit: r/PLTR 社区极度看多(注意过热风险)
   ⚠️ 风险: 估值偏高 (PE 68),回调风险
   🎯 催化剂: 下周国防预算听证会
   📊 历史信号成功率: Reddit高热度 → 仅 38% 30天正收益
   ⚡ Agent 备注: Reddit 过热信号历史表现差,
      建议等待回调而非追高

━━━━━━━━━━━━━━━━━━━━━━━━

📋 关注列表更新
+ 新增: CRWD, ABNB
- 移除: NFLX (已达目标区间)
~ 保持: MSFT, GOOGL, AMZN (继续观察)

━━━━━━━━━━━━━━━━━━━━━━━━

📈 上周推荐回顾
| 股票 | 推荐价 | 当前价 | 收益 | 状态 |
| AMD  | $162.3 | $171.5 | +5.7% | ✅ |
| META | $498.1 | $502.3 | +0.8% | 🟡 |
| DIS  | $112.4 | $109.8 | -2.3% | ⚠️ |

━━━━━━━━━━━━━━━━━━━━━━━━

⚠️ 免责声明: 以上内容由 AI 分析生成,不构成投资建议。
所有数据可能存在延迟或误差。投资有风险,决策需谨慎。

自然语言查询

除了每日推送,我还可以随时在 Telegram 上问 Agent 问题:

OpenClaw 原生连接 10+ 消息平台(WhatsApp、Telegram、Slack、Discord 等),并编排 AI Agent 工作流——持久记忆 + 7×24 运行。

text

我: 特斯拉最近 Reddit 上情绪怎么样?

Agent: 📊 TSLA Reddit 情绪快报(过去 7 天)

数据来源:r/wallstreetbets, r/stocks, r/teslainvestorsclub

讨论量:312 帖(vs 上周 287 帖,↑9%)
情绪分布:
  🟢 看多: 41%
  🔴 看空: 35%
  ⚪ 中性: 24%

高频讨论话题:
1. Robotaxi 进展(讨论量最高)
2. Q1 交付量预期
3. 竞品比亚迪的威胁

情绪趋势:vs 上周基本持平,略偏分歧加大。
多空双方都有强论点,市场处于"不确定但关注度高"状态。

vs 30天前:看多比例从 52% 下降到 41%,情绪在恶化。

注意:这是社区讨论分析,不反映机构观点。
r/wallstreetbets 的情绪往往过度波动,需谨慎解读。


第八章 宏观数据整合:FRED API

为什么宏观数据不可忽视

个股分析没有宏观背景就是空中楼阁。2022 年的科技股暴跌不是因为这些公司突然变差了——是因为美联储加息改变了整个估值环境。

FRED(Federal Reserve Economic Data)是美联储圣路易斯分行提供的免费 API,包含 80 万+ 个经济数据序列。完全免费,无调用限制。

我追踪的关键宏观指标

Markdown

# 宏观数据追踪(FRED API)

## 每日更新
- 10年期国债收益率 (DGS10) → 影响成长股估值
- VIX 恐惧指数 (VIXCLS) → 市场情绪温度计
- 美元指数 (DTWEXBGS) → 影响跨国公司盈利

## 每月更新
- CPI 同比 (CPIAUCSL) → 通胀走势
- 核心 PCE (PCEPILFE) → 美联储首选通胀指标
- 非农就业 (PAYEMS) → 经济健康度
- 失业率 (UNRATE) → 衰退信号
- ISM 制造业 PMI → 经济活动领先指标

## 每季度更新
- GDP 增长率 (GDP) → 经济全景
- 企业利润 (CP) → 盈利周期

## 市场状态判断规则
IF 10Y > 4.5% AND CPI > 3.5% AND VIX > 25:
  → 市场状态: "Risk-Off"
  → 建议: 降低成长股权重,关注防御性板块

IF 10Y < 4% AND CPI 下降趋势 AND VIX < 20:
  → 市场状态: "Risk-On"
  → 建议: 可适度增加成长股和科技股权重

IF 失业率连续 3 月上升 AND PMI < 50:
  → 市场状态: "衰退风险"
  → 建议: 现金+国债+防御性股票

与三层筛选器的整合

text

FRED 数据 → 更新 Obsidian /macro/market-regime.md
                    │
                    ▼
         Layer 3 Opus 评估时读取
                    │
                    ▼
    "当前宏观环境下,科技板块处于 Risk-On 状态,
     成长型信号的可信度上调 10%"

第九章 SEC EDGAR 整合:财报和重大事件

为什么散户需要监控 SEC 文件

SEC 文件通常比新闻早几个小时到几天。一份 8-K 文件可能提前披露了高管离职、重大合同或诉讼——在财经媒体报道之前。

监控策略

Markdown

# SEC EDGAR 监控 Cron

每天 20:00 (ET) 执行:

1. 查询 EDGAR FULL-TEXT 搜索 API(免费)
2. 搜索关注列表中所有公司过去 24 小时的新提交文件
3. 重点关注文件类型:
   - 8-K: 重大事件(最重要,可能是突发利好/利空)
   - 10-Q: 季度报告
   - 10-K: 年度报告
   - 4: 内部人交易(高管买入/卖出自家股票)
   - SC 13D: 大股东持仓变动

4. 对每份新文件:
   - 提取摘要(特别是 8-K 的 Item 编号)
   - 分析潜在市场影响
   - 内部人交易方向(买入 vs 卖出 → 信号质量不同)

5. 告警规则:
   🔴 高管大量买入自家股票 → Telegram 即时推送
   🔴 8-K Item 2.02(财务结果)→ Telegram
   🟡 内部人卖出 → Discord(需要上下文判断,不一定是坏事)
   🟢 常规 10-Q/10-K 提交 → Obsidian 存档

内部人交易信号

这是散户最容易忽视但最有价值的信号之一——

内部人(CEO、CFO、董事会成员)买入自家股票几乎只有一个原因:他们认为股价被低估了。

内部人卖出则原因复杂:可能是减持套现,也可能是正常的薪酬安排。所以买入信号的可信度远高于卖出信号。

text

内部人连续买入 + RSI超卖 + 情绪拐点 
= 我整个系统中信号强度最高的组合

第十章 成本核算与优化

45 天真实成本

成本项
月费
说明
Claude API - Opus(Layer 3 + 周报)
~$28
每天 1 次综合评估 + 每周 1 次深度回测
Claude API - Sonnet(Layer 2 + 日常)
~$22
情绪分析 + 自然语言查询
Claude API - Haiku(Layer 1 + 数据处理)
~$8
量化筛选 + 格式化
VPS(OpenClaw Gateway)
~$15
轻量级 VPS 足够
合计~$73/月

免费数据 API 成本

API
成本
Yahoo Finance (yfinance)
$0
FRED API
$0
SEC EDGAR
$0
Reddit JSON API
$0
NewsAPI(免费层)
$0
Alpha Vantage(免费层)
$0
Financial Modeling Prep(免费层)
$0
数据层合计$0

数据完全免费,成本全在 AI 推理层。

极限省钱方案

使用智能模型路由——简单任务用便宜模型(Haiku/Flash),复杂任务用贵模型(Sonnet/Opus)。启用 prompt 缓存以降低重复成本。还可以通过 Ollama 使用本地 LLM 实现零 API 成本(需 16 GB+ RAM)。

极限省钱方案:

优化方式
节省
影响
Layer 1 改用本地 Llama 3
-$8
无(规则匹配不需要强模型)
Layer 2 改用 Haiku
-$14
轻微(情绪分析准确度下降约 10%)
Layer 3 改用 Sonnet
-$15
中等(综合推理质量下降约 15%)
Heartbeat 先用脚本预检
-$5
无(只在有新数据时才调 LLM)
极限方案合计~$31/月
质量下降 10-15%,但仍然远超手动

第十一章 45 天回测与真实表现

重要声明

以下数据是我的系统在特定时期的历史表现,不代表未来收益。过去的表现不预测未来的结果。市场条件随时变化。

回测数据

指标
系统表现
SPY 基准
差值
45 天总收益
+7.8%
+4.1%
+3.7%
推荐命中率(7 天正收益)
63%
—
—
推荐命中率(30 天正收益)
58%
—
—
最大单笔盈利
+14.2%(CRWD)
—
—
最大单笔亏损
-8.7%(SNAP)
—
—
信号总数
67 只次
—
—

最有价值的发现

发现
含义
情绪拐点信号 >> 纯技术信号
情绪分析是散户能获得的最大边际优势
Reddit 过热 ≈ 反向指标
r/wallstreetbets 高度一致看多时要谨慎
内部人买入 + 超卖 = 最强组合
45 天中出现 3 次,全部正收益
宏观错配 → 个股信号失效
在 Risk-Off 环境下,个股正面信号的成功率下降 20%

Agent 的自我校准记录

Agent 读取它的记忆文件。每天结束时,Agent 会将笔记写入 memory/YYYY-MM-DD.md:发生了什么,学到了什么,做出了什么决策。随着时间推移,它会将重要内容整理到 MEMORY.md 中——长期记忆。

我的 Agent 在第 30 天自动生成的 MEMORY.md 更新片段:

Markdown

## 2026-02-18 信号模型校准

### 学到的教训
1. Reddit 讨论量激增(>200% 周环比)在 7 天内是正面信号,
   但在 30 天内往往是负面信号——说明短期有人气推动上涨,
   但中期往往回吐。
   → 行动:将 Reddit 热度信号的时间框架从 30 天缩短到 7 天。

2. 连续 3 天新闻情绪正面但股价不涨 = 利好出尽信号。
   → 行动:增加 "情绪-价格背离" 检测规则。

3. VIX > 22 时,所有信号的成功率平均下降 15%。
   → 行动:在高 VIX 环境下自动上调推荐阈值。

### 下月关注
- 3/12 CPI 数据发布:可能改变市场 regime
- 3/19 FOMC 会议:利率决议
- Q1 财报季从 4 月中旬开始


第十二章 Discord 多频道交易所

频道架构

text

Discord 金融情报中心

#daily-screening      ← 每日筛选报告(核心输出)
  Model: Opus → Sonnet(日报用 Opus,中间更新用 Sonnet)

#market-pulse         ← 盘中实时脉搏
  Model: Haiku(快速、高频、低成本)

#sentiment-radar      ← 情绪分析专区
  Model: Sonnet(需要语义理解)

#sec-filings          ← SEC 文件追踪
  Model: Haiku(结构化数据提取)

#macro-watch          ← 宏观数据监控
  Model: Haiku

#backtest-review      ← 回测和复盘讨论
  Model: Opus(需要深度推理)

#system-health        ← Cron 状态 / API 额度 / 成本监控
  Model: Haiku

上下文隔离是关键——每个频道应该有自己的上下文。#daily-screening 中的对话永远不应该渗透到 #sentiment-radar 中。每个 Channel 绑定一个 Agent,每个 Agent 有自己独立的工作区。


第十三章 安全与合规

金融数据的特殊安全考量

金融场景比一般场景有更严格的安全要求。

因为该软件可以访问邮件账户、日历、消息平台和其他敏感服务,配置不当或暴露的实例会带来安全和隐私风险。在金融场景下,这意味着你的交易策略、关注列表和情绪分析模型都可能泄露。

我的安全实践

Markdown

金融系统安全 Checklist:

✅ 绝不连接任何交易账户
   → Agent 只负责分析和筛选
   → 所有交易由人类在独立的券商 App 中手动执行
   → Agent 没有任何移动资金的权限

✅ 数据隔离
   → 金融 Vault 与其他 Obsidian Vault 完全分离
   → 专用 API Key(与其他 Agent 不共享)
   → Gateway 运行在���立的 VPS 实例上

✅ 网络安全
   → Gateway 通过 Tailscale 私有网络访问
   → 所有 API 调用通过 HTTPS
   → 不暴露任何公网端口

✅ Skill 审查
   → 金融系统只使用内置 Skill + 自己编写的自定义 Skill
   → 不安装任何第三方金融 Skill
   → 所有 Skill 源码人工审阅

✅ 交易纪律
   → Agent 的推荐只是参考之一
   → 每笔交易前都有人类的独立判断
   → 设定止损规则(Agent 不能覆盖)
   → 单笔仓位 < 总资产 5%

✅ 合规意识
   → 不基于非公开信息交易
   → Agent 只分析公开数据
   → 不分享 Agent 的具体推荐给他人(避免荐股嫌疑)

特别警告:加密货币 Skill 陷阱

在搭建系统时,我发现 ClawHub 上有大量恶意的加密货币相关 Skill——

安全研究员发现 386 个恶意 Skill 伪装成加密货币交易自动化工具。使用知名品牌名称包括 ByBit、Polymarket 等。这些 Skill 部署了信息窃取器,窃取加密交换 API Key、钱包私钥、SSH 凭证和浏览器密码。

绝对不要安装任何声称能"自动交易"的第三方 Skill。 如果听起来好得不真实——它就是恶意软件。


第十四章 从 0 到 1 的搭建路线

Phase 1:最小可行筛选器(Week 1)

从一个配置良好的单 Agent 开始。不要试图同时设置所有数据源。先让一个完整的工作流完美运行,然后才添加下一个集成。

Bash

# Day 1: 安装 OpenClaw
npm install -g openclaw@latest
openclaw onboard --install-daemon

# Day 2: 安装基础 Skill
openclaw skills install tavily          # 网页搜索
openclaw skills install last30days-lite # 社区情绪调研

# Day 3: 编写 Layer 1 筛选脚本
# 用 Python + yfinance 实现量化筛选
# Agent 通过 Shell 工具调用这个脚本

# Day 4-5: 配置第一个 Cron 任务
# 每天早上 7:00 推送 Layer 1 筛选结果到 Telegram

# Day 6-7: 验证 + 调优
# 看一周的推送,调整筛选参数

Phase 2:加入情绪分析(Week 2-3)

text

Day 8:  安装 NewsAPI,配置新闻情绪扫描
Day 10: 配置 Reddit 情绪分析
Day 12: 整合 Layer 2 到工作流
Day 14: 第一次完整的三层筛选运行
Day 16: 配置 Obsidian Vault 结构
Day 18: 加入 FRED 宏观数据
Day 21: 两周运行,第一次回测

Phase 3:完整系统(Week 4-6)

text

Day 22: 加入 SEC EDGAR 监控
Day 25: 配置 Discord 多频道
Day 28: 配置 Heartbeat 盘中监控
Day 30: 完善告警分级系统
Day 35: 第一份完整月报 + 信号有效性统计
Day 42: 基于回测结果校准模型权重
Day 45: 系统进入稳定运行模式

给完全新手的建议

如果你从来没用过 OpenClaw——

推荐的设置方式是在终端中运行向导(openclaw onboard)。向导会逐步引导你完成 Gateway、工作区、频道和技能的配置。

如果你从来没用过金融 API——

先从 yfinance 开始。它是 Python 包,不需要 API Key,不需要注册。直接 pip install yfinance 就能获取任何上市公司的实时数据。这是最快的入门路径。


第十五章 诚实反思:这套系统的真实边界

它做到了什么

  1. 信息处理带宽提升 100 倍:每天自动处理 5,000+ 只股票的数据,我以前最多看 20 只
  2. 情绪分析是真正的边际优势:传统散户工具(TradingView、同花顺)几乎不提供实时情绪数据
  3. 记忆系统带来的复利:Agent 的判断质量在 45 天内可测量地提升了
  4. 心理账户的改善:有系统化的分析后,我做出冲动交易的次数减少了 80%
  5. 时间解放:从每天 30 分钟手动调研 → 每天 5 分钟看 Telegram 推送

它做不到什么

  1. 不能预测黑天鹅:系统无法预见真正的未知事件。它只能更快地响应已发生的事情
  2. 不能替代投资纪律:Agent 可以告诉你"这只股票值得关注",但止损、仓位管理、资产配置仍然 100% 依赖你的纪律
  3. 不能消除情绪偏差:Agent 没有情绪,但你有。当 Agent 推荐"卖出"而你的"感觉"说"再等等"时——这是最危险的时刻
  4. 不能持续跑赢市场:45 天的超额收益不代表长期能力。任何声称 AI 能持续跑赢市场的人都在说谎
  5. 不能处理极端行情:在市场崩盘时,所有历史模式都会失效。Agent 的回测数据在极端环境下没有参考价值

最大的坑

坑 1:过度自信

当 Agent 连续推荐 5 只全部上涨后,你会开始觉得"这个系统简直是印钞机"。然后你加大仓位。然后第 6 只亏了 12%。

教训:永远保持仓位纪律。Agent 的推荐只是信息源之一,不是交易指令。

坑 2:忽视宏观

有一周我关掉了宏观数据整合(以为省几块钱 API 费),刚好赶上美联储讲话引发市场调整。Agent 在那周的所有推荐全部亏损,因为它在"真空中"分析个股。

教训:宏观是地基,个股是楼。地基不稳,楼盖得再好也没用。

坑 3:Reddit 情绪陷阱

Reddit 上高度一致的看多情绪(尤其是 r/wallstreetbets)在统计上更接近反向指标。当所有人都在说"to the moon"的时候,往往是短期顶部。

教训:极端一致的情绪 = 警告信号,不是确认信号。


第十六章 未来迭代方向

已在计划中的升级

迭代
内容
预期影响
v1.1
加入期权异常活动监控(Unusual Options Activity)
捕捉机构动向
v1.2
多市场覆盖(港股 + A 股)
扩展到中国市场
v1.3
加入卫星数据 API(停车场、船运)
替代数据信号
v2.0
多 Agent 架构(专业化分工)
各 Agent 专注一个板块
v2.1
Backtest 自动化(历史数据回放)
系统化验证信号

Agent Teams 的未来

社区正在推进的 Agent Teams RFC 将让金融分析更加强大。一个团队可以这样分工:

text

┌─────────────────────────────────────┐
│          编排器 Agent(CIO)          │
│    综合所有分析,做最终判断             │
│    Model: Opus                       │
├───────┬───────┬───────┬─────────────┤
│量化 Ag│情绪 Ag│宏观 Ag│  SEC 监控 Ag │
│筛选   │社区分析│经济数据│  文件追踪    │
│Haiku  │Sonnet │Haiku  │  Haiku      │
└───────┴───────┴───────┴─────────────┘

当 Teams 功能成熟后,这些 Agent 可以直接互相通信——量化 Agent 可以直接问情绪 Agent:"CRWD 这周的 Reddit 讨论量变化多少?"——不需要经过编排器中转。


写在最后:散户的新时代

有人说 2026 年是"Agent 元年"。

在金融领域,这意味着什么?

我认为它意味着:信息处理能力的民主化。

过去,只有量化基金能负担得起的情绪分析系统,现在一个散户用 $73/月就能搭建 80% 的能力。过去需要一个 5 人数据团队做的工作,现在一个人 + 三层 Agent 就能完成。

但请注意——我说的是"信息处理能力"的民主化,不是"赚钱能力"的民主化。

能力增强不等于结果保证。

即使有了 AI Agent,以下事实不会改变:

  • 市场长期来看是零和博弈(扣除费用后)
  • 没有任何系统能持续预测短期价格变动
  • 情绪管理和交易纪律比任何分析工具都重要
  • 对大多数人来说,定投指数基金仍然是最优解

那我为什么还要做这个系统?

因为对我来说,这不仅仅是一个投资工具。它是一个认知放大器。

它让我更系统地思考市场。它让我的每一个判断都有数据支撑,而不是"感觉"。它让我在犯错时能清楚地回溯——哪个信号误导了我,为什么,下次怎么避免。

Agent 不会让你更聪明。但它会让你的思考更有纪律。

45 天前,我凭感觉炒股。

45 天后,我至少知道自己是基于什么在做决策,以及那个决策框架的成功率是多少。

这不保证盈利。

但这保证了一件更重要的事——如果亏了,我知道为什么亏了,下次怎么做得更好。

而这,才是 Agent 在金融领域真正的价值。

不是印钞机。是思维的脚手架。


📌 系列完结。回顾这五篇文章:

① 三个 Agent 一条龙:YouTube 内容流水线 — 一个人就是一个内容团队 ② 一个人的 DevOps 团队:协调 5-20 个 Claude Code — 一天 94 次 commit ③ Last 30 Days Skill:30 秒摸清痛点 — 比行业报告更新鲜的调研 ④ 竞品监控自动化:7×24 情报雷达 — 再也不会被竞品偷袭 ⑤ 免费 API 搭建股票筛选器 — $73/月的量化 Lite

五个场景,一个核心:OpenClaw 不是聊天机器人,它是你的数字化分身。

感谢一路读到这里的你。🦞


声明:本文基于 OpenClaw 开源社区公开资料、公开可获取的金融数据 API 文档、yfinance/FRED/SEC EDGAR 官方文档撰写。所有回测数据基于特定历史时期,过去的表现不预示未来结果。本文不构成任何形式的投资建议、推荐或招揽。股票市场存在重大风险,您可能损失部分或全部本金。任何投资决策都应基于您自己的独立研究和专业财务顾问的建议。作者可能持有文中提及的某些证券。所有技术细节截至 2026 年 3 月初,OpenClaw 生态迭代极快,请以官方文档为准。


更多系列完整内容,请访问知识星球。

Image
Obsidian 数字人生
Obsidian数字人生
Obsidian+AI第二大脑(合集付费)
Obsidian+AI第二大脑
Obsidian+AI工作流
Obsidian+AI工作流
Obsidian+AI 读书卡片合集系列
   读书卡片合集
Obsidian+AI 知识管理合集系列
Obsidian+AI知识管理

 AII

Image

松花酿酒,春水煎茶。

眉上风止,见字如晤。

一只阿木木