别再用肉眼盯盘了!这个开源小工具,帮你把全球核心资产“关进笼子”
作者: TickDB Research | 发布: 2026/4/3 | 阅读: 4
标签: us-stocks, a-stocks, indices, api-guide
开篇:为什么要盯着美股睡觉?
英伟达(NVDA)隔夜涨了5%,第二天A股的AI板块直接高开;特斯拉(TSLA)盘后暴跌,次日的汽车零部件股集体承压。再加上7x24小时交易的比特币、纳斯达克中国金龙指数……你要盯的东西越来越多。
熬到凌晨三点看美股收盘,早上九点半又得盯A股开盘。身体扛不住,策略也容易乱。
能不能写个简单的脚本挂在服务器上,自动监控这些全球标的?有异动就报警,没动静就安静巡检?
这个需求听起来简单,真动手做起来,才发现市面上的方案都不顺手。
为什么市面上的工具都不顺手?
为了满足这个需求,我翻了一圈现有的行情接口,发现对个人开发者来说,各有各的坑:
- 重型券商接口(如盈透、富途):功能强大,但你必须开户、入金,还得在本地跑一个笨重的 Java/Windows 客户端做网关。想挂到云服务器上?门都没有。
- 爬虫方案:从财经网站抓数据,不稳定,频率稍微快一点就被封 IP,维护成本极高。
- 免费公共API:数据质量参差不齐,字段混乱,有的返回
price,有的返回last_price,甚至有的标的连涨跌幅字段都没有。
就在准备放弃的时候,偶然发现了 TickDB 的 API。它不需要本地环境,直接发标准的 HTTP 请求就能拿到数据,而且最关键的一点:它能把美股、港股、加密货币混在一个请求里查。
折腾了几天,写了段几十行的 Python 代码。目前跑了一周多,效果不错。下面把代码和踩坑经验分享出来。
核心思路:极简主义监控脚本
逻辑很简单:写一个死循环,每隔一分钟去问一次 API:“我关注的这些票,现在什么价格了?”
TickDB 有个很便利的设计:接口支持一次传多个 symbol。比如,可以把 NVDA.US(美股)、03033.HK(港股ETF)和 BTCUSDT 放在一个 URL 里请求,服务器会直接返回一个打包好的列表。这比写 for 循环一个一个查效率高多了。
运行效果展示
脚本在服务器终端里跑起来是这样的。平时安静地巡检,一旦某只标的涨跌幅超过设定的阈值(比如 3%),就会弹出醒目的异动提醒:
[23:15:00] 巡检中...
NVDA.US 现价: 892.50 涨跌: +3.21%
👉 !!! 异动提醒: TSLA.US 现价: 175.20 涨跌: +4.58%
BTCUSDT 现价: 71500.00 涨跌: -1.20%
源码分享(复制即用)
运行这个脚本,你的环境只需要装一个 requests 库:
pip install requests
下面是修复后的完整代码。重点修复了实盘中字段不一致导致报错的问题,换上自己的 API Key 就能直接跑:
import requests
import time
import datetime
# ================= 配置区域 =================
# 1. 这里填申请到的 Key (到 TickDB 官网免费领一个)
API_KEY = "YOUR_API_KEY_HERE"
BASE_URL = "https://api.tickdb.ai/v1/market/ticker"
# 2. 监控清单:美股(.US), 港股(.HK), 加密货币 都可以混着放
WATCH_LIST = [
"NVDA.US", # 英伟达
"TSLA.US", # 特斯拉
"03033.HK", # 恒生科技ETF
"BTCUSDT" # 比特币
]
# 3. 阈值:涨跌幅绝对值超过 3% 就报警
ALERT_THRESHOLD = 3.0
# ===========================================
def get_prices(symbols):
symbols_str = ",".join(symbols)
try:
resp = requests.get(
BASE_URL,
params={"symbols": symbols_str},
headers={"X-API-Key": API_KEY},
timeout=5
)
if resp.status_code == 200:
data = resp.json()
if data["code"] == 0:
return data["data"]
else:
print("接口返回错误:", data["message"])
else:
print("网络请求失败:", resp.status_code)
except Exception as e:
print("请求异常:", e)
return []
def main():
print(f"🚀 开始监控,关注列表: {WATCH_LIST}")
print(f"🔔 报警阈值: ±{ALERT_THRESHOLD}%")
while True:
market_data = get_prices(WATCH_LIST)
current_time = datetime.datetime.now().strftime("%H:%M:%S")
print(f"\n[{current_time}] 巡检中...")
if not market_data:
print("⚠️ 未获取到数据,请检查 Key 或网络连接")
for item in market_data:
symbol = item["symbol"]
# ---------- 关键避坑:字段不一致处理 ----------
# 实盘混合查询时,有的资产返回 price,有的返回 last_price
# 涨跌幅字段也可能不同,必须做防御性兼容
price_val = item.get("last_price", item.get("price"))
change_val = item.get("change_percent", item.get("price_change_percent_24h", 0))
try:
price = float(price_val) if price_val else 0.0
change_pct = float(change_val) if change_val else 0.0
except ValueError:
print(f"数据格式转换失败: {symbol}, 跳过")
continue
info = f"{symbol:<10} 现价: {price:<10.2f} 涨跌: {change_pct:+.2f}%"
if abs(change_pct) >= ALERT_THRESHOLD:
print(f"👉 !!! 异动提醒: {info}")
else:
print(f" {info}")
time.sleep(60) # 休息一分钟
if __name__ == "__main__":
main()
踩坑笔记:数据字段的“神坑”
在写这个脚本的过程中,遇到几个具体问题,记录一下希望能帮大家避坑:
1. 字段名不一致
官方文档里写返回字段是 price,但实际进行多市场混合查询时,美股、港股返回的是 last_price,加密货币返回的涨跌幅字段是 price_change_percent_24h 而不是 change_percent。如果不做兼容处理,脚本跑着跑着就会报 KeyError 崩溃。建议大家在处理这类聚合数据源时,一定要做防御性编程(用 .get() 取字段,并提供默认值)。
2. 关于“实时性”的取舍
肯定有技术大佬会问:“都 2026 年了,怎么还用 while True 做 HTTP 轮询?太土了。”
确实,轮询有延迟。TickDB 也提供 WebSocket 接口,支持毫秒级的实时推送。但对于“盯隔夜映射”这个需求来说,WebSocket 有点“杀鸡用牛刀”:
- 开发成本高:需要处理心跳、重连、状态恢复,代码量至少翻三倍。
- 资源占用:长连接需要维护状态,不如 HTTP 请求用完即走。
- 够用原则:美股跌 3%,A 股的反应通常有滞后,一分钟一次的刷新频率完全够用。
TickDB 为什么能这么方便?
这次体验让我意识到,一个对开发者友好的 API 应该长什么样:
- 全球资产覆盖:一套接口同时覆盖美股、港股、A股、外汇、贵金属、指数、数字货币,总计超过 27,000 个交易标的。你不需要为每个市场找不同的供应商。
- 文档清晰,上手快:左边导航,右边代码,参数联动。你点选什么,代码就生成什么,复制就能跑。
- 错误提示直接告诉你怎么办:比如返回 2002 错误,处理建议是“调用可用品种接口查询”,不用自己猜。
- 对 AI 友好,让 AI 替你调接口:我们开源了一个 Skill,让 AI 可以直接调用 TickDB 的 API。这个 Skill 会告诉 AI 三件事:
- 怎么查:比如用户问“黄金现在多少钱”,AI 知道该调用 /v1/market/ticker 接口,参数填 XAUUSD。
- 怎么处理响应:从返回的 JSON 里提取 last_price,再转成“黄金实时价格是 2034.50 美元”这样人话。
- 怎么处理异常:如果用户还没提供 API Key,AI 会主动问:“请提供您的 TickDB API Key”;如果返回 401 错误,AI 会提示“Key 无效,请到官网重新申请”。
有了这个 Skill,你只需要把下面这段指令复制到任何支持 Skill 的 AI 大模型,比如 claude code:
读取 https://github.com/TickDB/tickdb-unified-realtime-marketdata-api/blob/main/SKILL/SKILL.md 并安装为 Skill(名称:tickdb-market-data),然后查询黄金实时价格。
AI 会自动加载 Skill,识别你的需求,调用对应的 API,然后直接返回你想要的答案。整个过程你不需要看一行 API 文档,也不需要写一行代码。
这些细节加起来就是一件事:把时间留给策略,而不是浪费在对接协议上。
结语
想监控全球核心资产,又不想熬夜盯盘?这段几十行的 Python 脚本,挂在云服务器上就能实现。
新用户可免费体验 TickDB 行情数据,无需绑定信用卡。到官网去申请,试试 2026 年该有的开发体验。
声明:本文代码仅供技术交流,API 数据源由第三方提供。投资有风险,入市需谨慎。
通过 TickDB API 获取美股实时行情数据。支持 WebSocket 低延迟推送,免费开始使用。
免费领取 API Key | 查看 API 文档