当你的A股策略需要同时盯着美股和比特币,一个WebSocket就够了

TickDB Research ·

适用场景 跨市场量化策略开发
技术栈 WebSocket + REST
覆盖市场 A股 / 美股 / 加密货币


凌晨两点,监控脚本准时唤醒。三个信号几乎同时出现:

  • 上证50隐含波动率跳升
  • 纳斯达克期货盘前成交量异常放大
  • BTCUSDT永续合约资金费率转负

但三个信号来自三个不同的数据源:A股用本地数据服务,美股接Polygon.io的WebSocket,加密货币靠轮询交易所API。时间戳差了近一秒——美股实时推送,A股轮询后本地对齐,比特币那路刚好被限流,延迟两秒。

维护这三条数据管道的成本,已经超过了打磨策略本身。问题不是数据不够,而是接口碎片化。

核心诉求:一个连接,同一套字段,同一种鉴权,同时拿到A股、美股和加密货币的实时行情。


一个WebSocket,覆盖三个市场

TickDB把这件事变成了基础设施——统一 REST + WebSocket 接口、统一字段、统一鉴权。

连接端点 wss://api.tickdb.ai/v1/realtime,鉴权通过URL参数 api_key 传递。一次订阅,同时拉取三个市场:

import asyncio
import websockets
import json

async def subscribe_cross_market():
    uri = "wss://api.tickdb.ai/v1/realtime?api_key=YOUR_API_KEY"
    async with websockets.connect(uri) as ws:
        subscribe_msg = {
            "cmd": "subscribe",
            "data": {
                "channel": "ticker",
                "symbols": ["000001.SZ", "AAPL.US", "BTCUSDT"]
            }
        }
        await ws.send(json.dumps(subscribe_msg))

        # 心跳:每秒发送ping,维持连接
        async def heartbeat():
            while True:
                await ws.send(json.dumps({"cmd": "ping"}))
                await asyncio.sleep(1)

        asyncio.create_task(heartbeat())

        while True:
            msg = await ws.recv()
            data = json.loads(msg)
            print(f"{data['data']['symbol']} | 最新价: {data['data']['last_price']}")
  • 字段语义跨市场完全一致,无需为不同市场写不同解析器。
  • 所有推送共享同一连接的时间基准,消除跨市场数据对齐的额外延迟。

痛点与解法一览

你的需求过去的做法TickDB 的做法技术证据
同时监控 A 股、美股、加密3 套 WebSocket,3 种鉴权,3 套字段映射1 个 WebSocket 连接,同时订阅wss://api.tickdb.ai/v1/realtime,单条 subscribe 消息覆盖多市场
回测用历史 K 线各市场数据格式不同,清洗对齐耗时统一 REST 端点,字段命名一致GET /v1/market/kline?symbol=000001.SZ&interval=1d
判断美股是否还在盘后需另外查询交易时段REST 接口含盘前/盘后/夜盘三段报价GET /v1/market/trading-sessions?market=US 可查时段定义
限流处理各家错误码不同,处理逻辑各异统一错误码 3001,附带 Retry-After收到 3001 时指数退避重试
AI 编程工具里直接查行情手动写 API 调用MCP 端点提供 13 个行情工具https://mcp.tickdb.ai,配置后 AI 可直接调用

快速验证:一行命令拿实时价

无需写脚本,用 curl 直接测试:

curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.tickdb.ai/v1/market/ticker?symbols=BTCUSDT"

返回 JSON 中的 last_price、bid、ask、volume 字段与 WebSocket 推送完全一致。五分钟内即可验证数据可及性。


生产级限流处理

实盘环境必须处理请求频率超限。错误码 3001 会携带 Retry-After 头,指数退避重试:

import time
import requests

def tickdb_get(endpoint: str, api_key: str, params: dict = None) -> dict:
    headers = {"X-API-Key": api_key}
    base_url = "https://api.tickdb.ai"
    retry_count = 0

    while True:
        resp = requests.get(f"{base_url}{endpoint}", headers=headers, params=params)
        if resp.status_code == 200:
            return resp.json()
        elif resp.status_code == 429:   # 对应 3001 限流
            retry_after = int(resp.headers.get("Retry-After", 1))
            wait = min(retry_after * (2 ** retry_count), 60)
            time.sleep(wait)
            retry_count += 1
        else:
            resp.raise_for_status()

行情之外,策略需要的完整基础设施

实盘还需要盘口深度、交易时段、资金流向、分时图等。全部收敛在同一套 API 里,共享同一个 X-API-Key 鉴权:

  • GET /v1/market/depth?symbol=AAPL.US — 订单簿深度(美股、A股、加密)
  • GET /v1/market/kline?symbol=000001.SZ&interval=1d — 历史日线(不含未闭合 K 线)
  • GET /v1/market/intraday?symbol=700.HK — 当日分时(也适用于 A 股、美股)
  • GET /v1/market/trading-sessions?market=US — 美股交易时段(含盘前盘后)
  • GET /v1/market/capital-flow?symbol=000001.SH — A 股资金流向(需指定具体 symbol)
  • GET /v1/market/calc-index?symbols=AAPL.US — 美股市场指标与估值(需指定具体 symbols)

如果你在用 AI 编程工具

工作流已迁移到 Cursor 或 Windsurf?
将 MCP 端点 https://mcp.tickdb.ai 配置进 AI 助手,13 个行情工具直接可用。输入“获取 000001.SZ、AAPL.US、BTCUSDT 最新价,输出价差表格”,AI 自动调用接口、解析数据。

对话用 Skill,编码用 MCP,自动化用 CLI —— 数据接入层交给 AI,你只专注于信号逻辑。


开源带来的可信度

TickDB 以 MIT 许可证在 GitHub 完全开源。GitHub 开源,文档可查,代码可跑。你可以审查 WebSocket 重连逻辑,可以 fork 做二次开发,也可以通过 Issue 跟踪服务状态。开源不是噱头,是基础设施控制权。


从三市场到全市场

当前关注 A 股、美股、加密货币,但统一接口可无痛扩展至:

  • 全量港股:4,299 只
  • 外汇:1,227 对
  • 贵金属:XAUUSD / XAGUSD
  • 全球指数:14,100 个

一个连接,覆盖 4 大市场、40,000+ 品种。只需在 symbols 数组里追加代码,零额外接入成本。
如需手机告警,用 CLI 工具(npm install -g tickdb)配合 Telegram Bot,即可搭建轻量级跨市场监控。


下一步

  1. 在 GitHub 搜索 “TickDB”,查看三语版 README(简体中文 / 繁體中文 / English)。
  2. 获取免费体验额度。
  3. 花一刻钟将三个市场的行情接入测试环境,验证字段一致性。

如果你的跨市场策略长期卡在数据适配层,这次重构很可能是策略代码最清爽的一次进化。

相关文章

不写代码,能不能用 AI 同时查 A 股、港股和比特币?我试了 TickDB Skill

适用人群 个人投资者 / 不想写代码的行情关注者 阅读收获 了解一条“接近零代码”的 AI 查行情路径,以及它的前提条件和边界 免责声明 本文仅为工具体验记录,不构成任何投资建议 --- 5 秒速览:这篇文章写给你 | 你的困境 | 本文解法 | |---------|---------| | 几个行情 App 来回切,想看全市场太麻烦 | 一个对话窗口,覆盖 A 股/港股/美股/加密 |

TickDB Research ·

10道题测出5家国产大模型金融数据接入的真实差距——DeepSeek、Kimi、豆包、通义千问、智谱GLM横评

> 本文不评“谁最强”,只展示“差距在哪”。 > > 用同一套TickDB行情工具集(13个标准化工具,端点:),对5个国产大模型进行了10道中文金融查询题的测试。覆盖三类最易翻车的场景:中文简称映射、工具选择错误、错误恢复不足。所有测试基于2026年5月公开API,可复现。 > > 本文仅讨论技术接入和工程实践,不构成任何投资建议或模型推荐。 一、一个翻车现场,三种不同反应 你问大模型“帮我看看

TickDB Research ·

DeepSeek Function Calling 接实时行情:从工具定义到多轮查询的完整示例

> 30 秒结论:本文用 DeepSeek 官方的 Function Calling 接口,从零搭建了一个可真实调用行情数据的查询系统。DeepSeek 不会主动查股票,但你可以给它一套工具定义(tools 参数),让它自己判断何时调用、传什么参数。本文提供完整 Python 代码、tools 参数完整设计、完整对话轨迹示例、多轮对话任务规划,以及 Strict Function Calling

TickDB Research ·

ChatGPT 为什么总会编股价?让 AI 查实时行情的正确路径

你一定遇到过这个场景。 让 ChatGPT 分析特斯拉财报,它洋洋洒洒写了 500 字,逻辑清晰,结论也像那么回事。你追了一句:“那特斯拉现在股价多少?” 它要么坦诚地说“我无法查询实时数据”,要么更糟:编出一个看起来很真的数字。 这不怪你问错了,也不怪它笨。ChatGPT 本质上是语言模型,它擅长组织知识、解释逻辑、生成文本,但它默认并不知道“此时此刻”的市场价格。 所以真正的问题不是: > C

TickDB Research ·

2026年量化数据源横评:11家主流方案,你的策略该接哪一个?

一个量化团队去年的真实账本:数据源订阅费占IT预算的23%,但真正高频使用的数据不超过40%。更扎心的是,三位策略研究员各自维护了不同的数据接入脚本——同样的600519.SH行情,在团队内部跑了三套不同的解析逻辑。 这不是预算问题,是选型问题。 本文不是价格排行榜,而是按个人开发者、进阶研究员、团队架构师三类场景做选型判断。各数据源信息基于2026年5月公开资料整理,具体价格、权限、商用许可请以

TickDB Research ·