跳转到内容

NYSE TICK 指标

NYSE TICK 指标用于观察某一瞬间上涨跳动股票数量和下跌跳动股票数量的差异。它比涨跌家数更偏短线,常被用来观察盘中情绪和买卖压力。

在 TWS API 中,NYSE TICK 使用 TICK-NYSE 请求。

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

收到回调后,可以按 reqId 单独处理:

def tickPrice(self, reqId, tickType, price, attrib):
if reqId == 97504:
print("NYSE TICK 更新", tickType, price)

请求 TICK-NYSE 但账户没有对应市场数据订阅时,TWS 返回:

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

这说明请求格式已经到达行情系统,但账户缺少对应订阅。程序应该把这个错误展示给用户,避免用户误以为是 Python、端口或 TWS 连接配置问题。

TICK 指标变化很快,适合盘中监控,不适合用很慢的轮询方式读取。使用流式订阅时要注意:

  • 不需要时及时调用 cancelMktData()
  • 不要把缺权限导致的空回调当作真实数值。
  • 多个指标同时订阅时,始终用 reqId 区分来源。
  • 如果策略依赖 TICK 指标,启动时先检查是否收到真实行情值,再允许策略进入交易状态。