大多数真格量化的用户都已经知道可以用SubscribeQuote函数来订阅标的的实时行情。
以及用GetQuote函数来查询标的的实时行情。
实时行情即一个“行情快照”包含了我们需要的各种价量信息,例如:
真格量化Python封装的订阅行情函数的原型,以上期所CTP为例,是SubscribeMarketData:
我们也可以了解一下更多关于市场行情的信息,仍以上期所为例:
1 行情主题
上期所期货及衍生品交易行情是按照行情主题进行组织的。行情主题定义了行情的发布内容和发布方式,包括产品、行情深度、采样频率、延迟时间和统计模式等。各个行情主题的具体参数请参考上期所发布的主题列表。
产品:指出该主题行情包含哪些期货及衍生品品种。
行情深度:上期所第二代行情发布平台的行情是分价格档位行情 (Market By Price, MBP),行情深度指的是行情价格档位的数量。
采样频率:上期所第二代行情发布平台的行情是切片行情,采样频率指的是切片频率,比如1秒2个切片。
延时时间:延迟时间为该切片行情延后于实时切片行情的时间。实时切片行情的延迟时间为0。
统计模式:分为双边统计和单边统计。单边统计中的成交量和成交金额按照单边计算。而双边统计按双边计算,成交量和成交金额为单边统计的两倍。
平台的用户按照权限可获得相应主题的行情。
2 行情快照和增量行情
平台中的行情信息通过快照行情和增量行情的形式提供给客户。
行情快照反映了某个时刻(某个行情切片时刻)的市场状态,包括了某时刻的报单、成交、合约和市场统计等所有行情信息。
增量行情反映了行情快照的变化,包含了新旧行情快照在相应两个切片时刻内的累积变化。
行情信息在两个切片时刻内的累计变化会导致行情快照的更新,行情快照的更新都会产生对应的增量行情。新行情快照可以根据原行情快照及对应的增量行情得到。
主题行情快照由该主题所包含的所有期货及衍生品品种的合约行情快照组成。主题增量行情由相应的合约增量行情组成。如果某合约在对应的切片时刻内未产生增量行情(无更新),则该主题增量行情中就不包含该合约的行情信息。
举例说明:主题下包括三个合约:合约1、合约2和合约3,那么一个主题行情快照则由合约1的合约行情快照、合约2的合约行情快照和合约3的合约行情快照组成。
而在一次主题行情变化中,仅合约1和合约3的合约行情快照发生了变化。则主题增量行情仅包括合约1和合约3的合约增量行情。合约2的空合约增量行情被省略。
每个主题行情独立对自己的主题行情快照进行编号,称为快照编号。主题行情快照的编号从0开始,单向递增。主题增量行情也有编号,当主题行情快照的编号从n变为n+1时,其产生的主题增量行情的编号为n+1。用户在获取一个主题行情快照后,可以在其基础上,根据后续的主题增量行情,更新为后续的主题行情快照。主题增量行情的编号与其对应的主题行情快照的编号一致。我们有时也将主题增量行情的编号称为其快照编号。
合约行情快照也有自己的快照编号,除了初始编号与主题行情快照编号相同外,后续都是根据合约自己的变化独立编号。合约增量行情和合约行情快照的联系也是通过编号进行的。每一次合约增量行情都意味着合约行情快照的编号递增,合约增量行情的编号与其对应的合约行情快照的编号一致。值得注意的是,每一次主题行情快照变化时,主题行情快照编号必须递增,但主题增量行情仅包括部分合约的合约增量行情,仅部分合约行情快照的编号在本次主题增量行情对应的变化中递增,这会导致主题增量行情的编号和其下合约的合约增量行情的编号渐渐不同。
每个合约行情快照是由其合约信息、成交行情和分价表信息三个部分行情信息组成。合约增量行情是由一系列合约事件构成,每种合约事件代表了合约行情快照中的特定部分信息的变动。
3.上期所平台提供的服务
上期所第二代行情发布平台按行情主题定义的采样频率,对相应产品的行情信息进行切片。当行情信息发生变化时,产生主题行情快照,并以组播的方式推送主题增量行情,向用户提供行情更新。
平台提供与用户交互的行情查询服务和向用户单向推送的增量行情服务。
行情查询服务为用户提供登录登出、行情快照查询和增量行情缺失补足等功能。使用MDQP协议(Market Data QueryProtocol)与用户进行交互。MDQP协议的网络层协议为TCP协议。
增量行情服务将每个主题的增量行情推送给该主题行情的订阅客户。增量行情服务使用MIRP协议(Market dataIncremental Refresh Protocol)以组播方式向用户推送信息。MIRP协议的网络层协议为UDP协议。
平台采用的是两地三中心部署的主备运行模式。每个中心中都布有多个行情查询服务和增量行情服务。对于行情查询服务,用户可连接其中任意一个。对于增量行情服务,用户可选择接入一路或同时接入多路。正常情况下,备中心的服务(图中虚线部分)不启用。如下图所示:
— — — — — — E N D — — — — — —
真格量化可访问:
https://quant.pobo.net.cn
真格量化微信公众号,长按关注:
遇到了技术问题?欢迎加入真格量化Python技术交流QQ群 726895887
往期文章:
Delta中性还不够?——看看如何设计Gamma中性期权策略
Python2和Python3的兼容写法
Python代码优化技巧