跳转到内容

直方图数据

直方图数据不是 K 线。它把一段时间内的成交或报价数据按价格分布聚合,返回每个价格档位对应的数量。它适合观察“这段时间主要成交集中在哪些价格附近”,而不是画时间序列图。

官方参考:Histogram Data

目标方法 / 回调
请求直方图reqHistogramData()
接收直方图数组histogramData()
取消请求cancelHistogramData()
对比项历史 K 线直方图数据
关注点时间顺序价格分布
返回单位一根根 bar一个个价格档位
常见字段date/open/high/low/close/volumeprice/size
适合用途回测、图表、指标价格分布、成交集中区

AAPL 发送 3 个直方图请求:

REQUEST_SENT=reqId=4301;symbol=AAPL;useRTH=True;period=1 week
REQUEST_SENT=reqId=4302;symbol=AAPL;useRTH=False;period=1 week
REQUEST_SENT=reqId=4303;symbol=AAPL;useRTH=True;period=1 day
CONNECTED=True
CONTRACT=AAPL STK SMART NASDAQ USD
INFO_CODES=2104,2106,2158
CALLBACK_RECEIVED=reqId=4301;name=aapl_rth_1_week;value=True
HISTOGRAM_ROWS=reqId=4301;name=aapl_rth_1_week;count=2951
HISTOGRAM=reqId=4301;price=296.0;size=180840
HISTOGRAM=reqId=4301;price=297.0;size=60640
CALLBACK_RECEIVED=reqId=4302;name=aapl_all_1_week;value=True
HISTOGRAM_ROWS=reqId=4302;name=aapl_all_1_week;count=2999
HISTOGRAM=reqId=4302;price=296.0;size=190480
CALLBACK_RECEIVED=reqId=4303;name=aapl_rth_1_day;value=True
HISTOGRAM_ROWS=reqId=4303;name=aapl_rth_1_day;count=0
NON_INFO_ERROR_COUNT=0

这个结果说明连接、合约和请求发送链路正常。1 week 返回了非空价格分布,1 day 收到了回调但数组为空。写程序时要区分三种状态:非空数组、空数组、超时无回调。空数组是明确结果,不应自动当成失败无限重试。

直方图适合做辅助分析,不适合替代 K 线回测。策略如果需要时间顺序,仍应使用 reqHistoricalData();如果只关心一段时间内价格集中区域,再考虑直方图。