Install
openclaw skills install fin-monitor从 CNBC 抓取 18 个金融指标数据(宏观经济、指数ETF、美股个股),写入本地 SQLite 数据库。纯 stdlib,无需任何 API Key。
openclaw skills install fin-monitor定期抓取金融指标数据,写入本地 SQLite 数据库。
API Key 是敏感信息,请勿将真实 API Key 直接写入 skill 或任何公开可访问的文件。
获取 Finnhub API Key(免费注册):https://finnhub.io/register
| 方式 | 安全性 | 说明 |
|---|---|---|
FINNHUB_API_KEY 环境变量 | ✅ 推荐 | 不暴露在进程列表/日志中 |
--finnhub-key 参数 | ⚠️ 备用 | 会暴露在进程列表,仅测试用 |
| 指标 | 代码 | 数据源 | 说明 |
|---|---|---|---|
| 美国10年期TIPS | US10YTIP | CNBC | 实时报价 |
| 美国10年期国债 | US10Y | CNBC | 实时报价 |
| 黄金 COMEX | GC | CNBC | 实时报价 |
| WTI 原油 | CL | CNBC | 实时报价 |
| 标普500 ETF | SPY | CNBC | 实时报价 |
| 标普500指数 | SPX | CNBC | 实时报价 |
| 纳斯达克100 ETF | QQQ | CNBC | 实时报价 |
| 纳斯达克100指数 | NDX | CNBC | 实时报价 |
| 美元指数 DXY | DXY | CNBC | 实时报价 |
| 恐慌指数 VIX | VIX | CNBC | 实时报价 |
| 苹果 | AAPL | CNBC | 实时报价 |
| 微软 | MSFT | CNBC | 实时报价 |
| 英伟达 | NVDA | CNBC | 实时报价 |
| 亚马逊 | AMZN | CNBC | 实时报价 |
| Meta | META | CNBC | 实时报价 |
| 联合健康 | UNH | CNBC | 实时报价 |
| 可口可乐 | KO | CNBC | 实时报价 |
| 伯克希尔哈撒韦 | BRK.B | CNBC | 实时报价 |
注意:Finnhub 免费版不支持 SPX、NDX、黄金、VIX、国债收益率。如需这些指标,推荐使用 Finnhub Pro 或其他数据源。
| 参数 | 说明 | 默认值 |
|---|---|---|
db_path | SQLite 数据库路径(必填) | 无 |
log_path | 日志文件路径 | db_path所在目录/fetch.log |
FINNHUB_API_KEY | Finnhub API Key(环境变量,推荐) | 无 |
--finnhub-key | Finnhub API Key(命令行,备用) | 无 |
python3 --version
用户说以下内容时触发:
export FINNHUB_API_KEY=你的key
python3 scripts/fetch_data.py --db-path ~/finance/finance.db
python3 scripts/fetch_data.py \
--db-path ~/finance/finance.db \
--finnhub-key 你的key
CREATE TABLE indicators (
id INTEGER PRIMARY KEY AUTOINCREMENT,
fetch_date TEXT NOT NULL,
fetch_time TEXT NOT NULL,
name_cn TEXT NOT NULL,
code TEXT NOT NULL,
prev_close REAL,
current_price REAL,
after_hours REAL,
change_pct REAL,
week52_high REAL,
dist_from_high_pct REAL,
week52_low REAL,
dist_from_low_pct REAL,
source TEXT DEFAULT 'nasdaq',
created_at TEXT DEFAULT (datetime('now', 'localtime'))
);
CREATE TABLE fetch_log (
id INTEGER PRIMARY KEY AUTOINCREMENT,
fetch_date TEXT NOT NULL,
fetch_time TEXT NOT NULL,
source TEXT NOT NULL,
indicators_count INTEGER,
created_at TEXT DEFAULT (datetime('now', 'localtime'))
);
✅ Data fetched | 2026-03-23 18:00
📂 DB: ~/finance/finance.db
Indicator Code Price Change
------------------------------------------------
标普500 ETF SPY 648.57 -1.70%
纳斯达克100 ETF QQQ 582.06 -1.85%
WTI 原油 CL 85.12 +0.81%
美元指数 DX 12.39 -0.23%
# 编辑 crontab
crontab -e
# 添加(每小时整点执行)
0 * * * * cd ~/finance && FINNHUB_API_KEY=你的key /usr/bin/python3 fetch_data.py --db-path ~/finance/finance.db >> ~/finance/fetch.log 2>&1
pyfetch_data.py --db-path C:\Users\你\finance\finance.dbFINNHUB_API_KEY=你的key{
"cron": "0 * * * *",
"command": "python3",
"args": ["fetch_data.py", "--db-path", "~/finance/finance.db"],
"env": { "FINNHUB_API_KEY": "你的key" },
"workdir": "~/finance"
}