跳转到内容

历史逐笔成交

历史逐笔数据也叫 historical time and sales。它返回某个时间窗口内更细粒度的成交或报价记录,不像历史 K 线那样先聚合成固定周期 bar。

官方参考:Historical Time and Sales

场景是否适合
查看某个短时间窗口内逐笔成交适合
分析 bid/ask 报价变化适合,用 BID_ASK
下载多年 tick 数据不适合,容易触发限制且数据量巨大
新手回测日线策略不适合,先用历史 K 线
whatToShow回调
TRADEShistoricalTicksLast()
BID_ASKhistoricalTicksBidAsk()
MIDPOINThistoricalTicks()

AAPL 股票请求 20260612 15:54:00 US/Eastern20260612 15:59:00 US/Eastern 的历史逐笔:

REQUEST_SENT=True;whatToShow=TRADES;start=20260612 15:54:00 US/Eastern;end=20260612 15:59:00 US/Eastern
TRADES_ROWS=198
DONE_FLAGS=TRADES:True
TRADE=time=1781294040;price=291.15;size=30;exchange=NASDAQ;special= F I
REQUEST_SENT=True;whatToShow=BID_ASK;start=20260612 15:54:00 US/Eastern;end=20260612 15:59:00 US/Eastern
BIDASK_ROWS=163
DONE_FLAGS=BID_ASK:True
BIDASK=time=1781294039;priceBid=291.14;priceAsk=291.15;sizeBid=1640;sizeAsk=1200;attrib=BidPastLow: 0, AskPastHigh: 0
REQUEST_SENT=True;whatToShow=MIDPOINT;start=20260612 15:54:00 US/Eastern;end=20260612 15:59:00 US/Eastern
MIDPOINT_ROWS=0
DONE_FLAGS=
INFO_CODES=2104,2106,2158
NON_INFO_ERROR_COUNT=0

这说明成交逐笔和买卖报价逐笔都能返回;MIDPOINT 在这个窗口没有回调,也没有业务错误。程序必须设置超时,并把“无回调、无错误码”作为一种可记录的状态。

先用很短时间窗口确认链路,不要一上来批量下载。逐笔数据非常细,真正开发时要明确用途、缓存结果,并严格控制请求频率。