global-quotes: free stock quotes and news. Use when: user asks for global stock price, quote, ticker symbol, or company news for US (e.g. AAPL), HK (0700.HK)...
Get quotes and basic market data from Yahoo Finance (no API key).
scripts/news.py(需 FINNHUB_API_KEY)| Market | Example | Format |
|---|---|---|
| US | AAPL, MSFT | Ticker |
| Hong Kong | 0700.HK | Code.HK |
| Shanghai | 600519.SS | Code.SS |
| Shenzhen | 000001.SZ | Code.SZ |
Use cn_quote.py for A 股 / 港股,依次尝试 腾讯行情 → 东方财富 Push2 → AkShare,直到某个可用就停止。
# A-shares
python3 scripts/cn_quote.py 600519.SS
python3 scripts/cn_quote.py 000001.SZ
python3 scripts/cn_quote.py 300750.SZ
# HK stocks
python3 scripts/cn_quote.py 0700.HK
python3 scripts/cn_quote.py hk00700
qt.gtimg.cn),失败时尝试东方财富 Push2 接口(仅 A 股),再尝试本地安装的 AkShare(如果存在)。一个脚本覆盖美股与 A 股/港股:quote.py 会根据 symbol 自动选择数据源——A 股/港股(*.SS / *.SZ / *.HK 等)走 cn_quote(腾讯→东财→AkShare),美股及其他走 Yahoo/Finnhub。Agent 只需调 scripts/quote.py 即可。
python3 scripts/quote.py AAPL
python3 scripts/quote.py 0700.HK 9988.HK
python3 scripts/quote.py 600519.SS 000001.SZ
python3 scripts/quote.py AAPL --range 5d
python3 scripts/quote.py MSFT --range 1mo
python3 scripts/quote.py AAPL --json
A股/港股:依次使用 东方财富 → AkShare,直到某个可用即停(无需 API key,服务器需安装 AkShare)。
美股:使用 Finnhub,需设置 FINNHUB_API_KEY。
# A 股 / 港股
python3 scripts/news.py 600519.SS
python3 scripts/news.py 贵州茅台 --limit 5
python3 scripts/news.py 0700.HK
# 美股
python3 scripts/news.py AAPL
python3 scripts/news.py MSFT --limit 5 --from 2025-02-01 --to 2025-02-25
--limit:最多返回条数,默认 10。--from / --to:日期 YYYY-MM-DD(仅美股 Finnhub 使用),默认最近 7 天。--json:输出原始 JSON。1d — today (default)5d, 1mo, 3mo, 6mo, 1y, 2y, 5yFrom the skill directory (e.g. workspace skills/yahoo-finance/):
python3 scripts/quote.py <SYMBOL> [--range 1d|5d|1mo|...] [--json]
From workspace root, use the full path to the skill's scripts/quote.py so the agent can invoke it via exec.
On servers, Yahoo often returns 403. Two options:
Finnhub fallback (recommended)
Free API key at https://finnhub.io. Set FINNHUB_API_KEY in the environment (e.g. in ~/.openclaw/.env or your process env). The script will use Finnhub when Yahoo returns 403. US symbols (AAPL, MSFT) work; HK/CN symbols may differ.
Proxy(代理)
脚本会读取环境变量 HTTPS_PROXY、HTTP_PROXY,请求会经代理发出,可避免机房 IP 被 Yahoo 封。
优先:用户/进程级(仅影响当前 skill,推荐)
在 gateway 可读到的环境里设置即可,例如 ~/.openclaw/.env 中加入 HTTPS_PROXY=... 和 HTTP_PROXY=...。或当前 shell 测试:export HTTPS_PROXY=http://127.0.0.1:7890 后执行 python3 scripts/quote.py AAPL。
可选:systemd 全局(仅当你用 systemd 跑 gateway 且希望所有请求走代理时)
编辑 /etc/systemd/system/openclaw-gateway.service 在 [Service] 下增加 Environment=HTTPS_PROXY=... / HTTP_PROXY=...,然后 sudo systemctl daemon-reload && sudo systemctl restart openclaw-gateway。注意这会对该服务下所有请求生效。
可选环境变量(仅 quote.py):OPENCLAW_QUOTE_TIMEOUT(默认 12 秒)、OPENCLAW_QUOTE_RETRY_DELAY(单 symbol 顺序时的间隔,默认 0.4 秒)、OPENCLAW_QUOTE_CACHE_TTL(结果缓存秒数,0=关闭)。多 symbol 时默认并行请求以提升性能,可通过 OPENCLAW_QUOTE_PARALLEL=0 关闭;OPENCLAW_QUOTE_MAX_WORKERS(默认 6)控制并行度。失败重试:quote.py 单次 HTTP 请求默认最多重试 2 次(共 3 次),5xx/超时/断线会指数退避;可通过 OPENCLAW_QUOTE_RETRIES=0 关闭。cn_quote.py 与 news.py 同样对单次请求做最多 2 次重试。
ZIP package — ready to use