美股财报一出来,AI最容易把盘后报价读成“市场结论”

用户头像sh_*599ojc
2026-07-28 发布

财报刚发,AI 弹出一句:

盘后上涨,市场认可这份业绩。

很多人下一步就是追价、减仓,或者连夜改掉第二天的交易计划。

我更怕它没说清三件事:这条价属于哪个时段,记录在什么时间,和公司刚发布的内容究竟是什么关系。

少了其中一项,你不是“多看了一条行情”,而是在拿一条没有时间口径的价格做决定。扩展时段的流动性、波动和价格形成都可能与常规交易时段不同。FINRA 也特别提醒:盘后价格并不决定下一交易日的开盘价。

image.png

先别让 AI 下结论。先把报价拆开。

TickDB 的 ticker 接口会把常规、盘前、盘后和夜盘报价分开放,并保留各自的时间戳;再用 trading-sessions 确认美股时段。AI 看到的就不再是一条孤零零的“现价”。

我先拿微软搭了一张“财报后行情卡”

微软官方安排在 2026 年 7 月 29 日美股收盘后发布 FY2026 Q4 业绩。财报还没出来,正好可以先把判断模板搭好,免得财报夜临时抄一条价格就交给 AI。

我在 7 月 28 日 02:46:56 UTC 查询了 MSFT.US。TickDB 返回:

行情位置 价格 行情时间(UTC)
常规时段最后价 389.10 2026-07-27 20:00:01
盘前报价 390.64 2026-07-27 13:30:01
盘后报价 389.50 2026-07-27 23:59:59
夜盘报价 389.16 2026-07-28 02:46:47

同一次查询中,美股交易时段返回为:

盘前    04:00—09:30
常规盘  09:30—16:00
盘后    16:00—20:00

现在再看这四个价格,意思完全不同。

389.10 是常规时段最后价,389.50 是盘后报价,389.16 又来自后续夜盘。AI 如果只拿其中一个数字,再补一句“市场已经投票”,省略掉的恰恰是最影响判断的部分。

这次运行发生在微软财报发布前,只验证行情卡的结构,不包含微软本季财报结果。

代码不用很长,关键是别把字段揉成一个价格

下面是完整的单文件脚本。只用 Python 标准库,不需要安装额外依赖。

先设置 API Key:

export TICKDB_API_KEY="你的 API Key"

保存为 build_earnings_market_card.py,然后运行:

python build_earnings_market_card.py \
  --symbol MSFT.US \
  --output-dir ./tickdb-earnings-card

完整代码:

#!/usr/bin/env python3
import argparse
import json
import os
from datetime import datetime, timezone
from pathlib import Path
from urllib.parse import urlencode
from urllib.request import Request, urlopen

BASE_URL = "//api.tickdb.ai"

def get_json(path, params, api_key):
    url = f"{BASE_URL}{path}?{urlencode(params)}"
    request = Request(url, headers={
        "X-API-Key": api_key,
        "Accept": "application/json",
        "User-Agent": "TickDB-ai-earnings-zhihu/2.0",
    })
    with urlopen(request, timeout=20) as response:
        body = json.load(response)
    if body.get("code") != 0:
        raise RuntimeError(body)
    return body

def utc_time(timestamp_ms):
    if timestamp_ms is None:
        return None
    return datetime.fromtimestamp(
        timestamp_ms / 1000, timezone.utc
    ).isoformat()

def quote(label, block):
    block = block or {}
    return {
        "label": label,
        "price": block.get("last_done"),
        "timestamp_ms": block.get("timestamp"),
        "timestamp_utc": utc_time(block.get("timestamp")),
    }

parser = argparse.ArgumentParser()
parser.add_argument("--symbol", default="MSFT.US")
parser.add_argument("--output-dir", default="./tickdb-earnings-card")
args = parser.parse_args()

api_key = os.environ["TICKDB_API_KEY"]
output_dir = Path(args.output_dir)
output_dir.mkdir(parents=True, exist_ok=True)

ticker_body = get_json(
    "/v1/market/ticker", {"symbols": args.symbol}, api_key
)
sessions_body = get_json(
    "/v1/market/trading-sessions", {"market": "US"}, api_key
)
ticker = ticker_body["data"][0]

card = {
    "symbol": ticker["symbol"],
    "checked_at_utc": datetime.now(timezone.utc).isoformat(),
    "regular": {
        "price": ticker.get("last_price"),
        "timestamp_ms": ticker.get("timestamp"),
        "timestamp_utc": utc_time(ticker.get("timestamp")),
    },
    "extended_quotes": [
        quote("pre_market", ticker.get("pre_market_quote")),
        quote("post_market", ticker.get("post_market_quote")),
        quote("overnight", ticker.get("overnight_quote")),
    ],
    "us_trading_sessions":
        sessions_body["data"][0]["trading_sessions"],
}

(output_dir / "earnings_market_card.json").write_text(
    json.dumps(card, ensure_ascii=False, indent=2),
    encoding="utf-8",
)
print(json.dumps(card, ensure_ascii=False, indent=2))

它会把结果写入:

./tickdb-earnings-card/earnings_market_card.json

换成英伟达、苹果或其他美股,只需替换 --symbol。先跑一个你熟悉的标的,检查四个报价位置和时间戳,再把 JSON 交给 AI。

我会怎样问 AI

image.png

不要问:

微软财报后市场怎么看?

把任务改成:

先读取微软官方财报材料,再读取行情卡。每个价格必须标明常规、盘前、盘后或夜盘,并附行情时间。公司公告只回答“公司披露了什么”;行情只回答“某个时段价格怎样变化”。如果证据不足,不要把一条报价写成市场共识。

这样做不会让 AI 更会预测,却能挡住一种很常见的误判:把不同证据揉成一句听起来很确定的话。

对投资者来说,真正有用的不是多一个数字,而是知道这条数字能回答什么,不能回答什么。

这也是 TickDB 在这类任务里的用法:给 AI 一层带时段、字段和时间戳的行情底座,让公司事件和市场反应能够分开核对。

FAQ

1. last_pricepost_market_quote.last_done 应该用哪个?

看你在回答什么问题。常规时段最后价读 last_price 及其时间戳;盘后反应读 post_market_quote.last_done 及盘后时间戳。不要把两者合并成一个没有时段的“最新价”。

2. 时间戳最容易踩什么坑?

保留接口返回的毫秒时间戳,同时转成 UTC 或你的统一研究时区。不要拿程序运行时间代替行情时间;涉及夏令时,也不要手工写死北京时间偏移。

3. TickDB 只能做财报后的盘前盘后行情吗?

这只是一个入口。确认标的后,可以继续取历史 K 线做事件前后对照;需要盘中跟踪时可接 WebSocket。股票研究还可接公司信息、财务数据、市场指标和资金流。最好仍按任务逐步增加,先把当前这条行情链跑通。

微软财报时间:Microsoft Investor Relations
TickDB 接口说明:Ticker API
扩展时段风险:FINRA

评论