定期抓取金融指标数据,写入本地 SQLite 数据库。
API Key 是敏感信息,请勿将真实 API Key 直接写入 skill 或任何公开可访问的文件。
获取 Finnhub API Key(免费注册): https://finnhub.io/register
方式安全性说明FINNHUB_API_KEY 环境变量✅ 推荐不暴露在进程列表/日志中--finnhub-key 参数⚠️ 备用会暴露在进程列表,仅测试用
指标代码数据源说明美国10年期TIPSUS10YTIPCNBC实时报价美国10年期国债US10YCNBC实时报价黄金 COMEXGCCNBC实时报价WTI 原油CLCNBC实时报价标普500 ETFSPYCNBC实时报价标普500指数SPXCNBC实时报价纳斯达克100 ETFQQQCNBC实时报价纳斯达克100指数NDXCNBC实时报价美元指数 DXYDXYCNBC实时报价恐慌指数 VIXVIXCNBC实时报价苹果AAPLCNBC实时报价微软MSFTCNBC实时报价英伟达NVDACNBC实时报价亚马逊AMZNCNBC实时报价MetaMETACNBC实时报价联合健康UNHCNBC实时报价可口可乐KOCNBC实时报价伯克希尔哈撒韦BRK.BCNBC实时报价
注意:Finnhub 免费版不支持 SPX、NDX、黄金、VIX、国债收益率。如需这些指标,推荐使用 Finnhub Pro 或其他数据源。
参数说明默认值db_pathSQLite 数据库路径( 必填)无log_path日志文件路径db_path所在目录/fetch.log``FINNHUB_API_KEYFinnhub API Key( 环境变量,推荐)无--finnhub-keyFinnhub API Key(命令行,备用)无
bash
python3 --version
用户说以下内容时触发:
bash
export FINNHUB_API_KEY=你的key
python3 scripts/fetch_data.py --db-path ~/finance/finance.db
bash
python3 scripts/fetch_data.py \
--db-path ~/finance/finance.db \
--finnhub-key 你的key
sql
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'))
);
text
✅ 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%
bash
# 编辑 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=你的keyjson
{
"cron": "0 * * * *",
"command": "python3",
"args": ["fetch_data.py", "--db-path", "~/finance/finance.db"],
"env": { "FINNHUB_API_KEY": "你的key" },
"workdir": "~/finance"
}