跳转到内容

NYSE 成交量指数

NYSE 成交量指数用于观察上涨股票成交量和下跌股票成交量之间的关系。它和涨跌家数配合使用,可以帮助判断市场上涨或下跌是否有成交量支持。

在 TWS API 中,这个指标使用 VOL-NYSE 请求。

字段中文说明
symbolVOL-NYSENYSE Volume Index 指标。
secTypeIND指标类合约。
exchangeNYSE指标所属交易所。
currencyUSD美元计价。
from ibapi.contract import Contract
def vol_nyse_contract() -> Contract:
"""NYSE 成交量指数合约。"""
contract = Contract()
contract.symbol = "VOL-NYSE"
contract.secType = "IND"
contract.exchange = "NYSE"
contract.currency = "USD"
return contract
app.reqMktData(
97502,
vol_nyse_contract(),
"",
False,
False,
[],
)

如果程序同时订阅多个指标,建议用一个字典维护 reqId 和指标名称的关系:

indicator_names = {
97502: "NYSE 成交量指数",
}
def tickPrice(self, reqId, tickType, price, attrib):
name = indicator_names.get(reqId)
if name:
print(name, tickType, price)

请求 VOL-NYSE 但账户没有对应市场数据订阅时,TWS 返回行情权限错误:

ERROR=reqId=97502;symbol=VOL-NYSE;code=354;msg=未订阅所请求的市场数据...:VOL-NYSE NYSE VOLUME INDEX/TOP/ALL

354 表示请求到了 TWS,但账户没有对应数据权限。继续重试同一个请求通常不会改变结果,应该先处理订阅或权限问题。

成交量指数适合和 AD-NYSE 一起看。只看上涨家数可能忽略成交量质量,只看成交量又可能看不出上涨股票数量。两者结合,能更清楚地观察市场结构强弱。

如果你只是想读取某只股票的成交量,应请求股票合约的一档行情,而不是请求 VOL-NYSE