它包含什么
- 身份:一个数字型的工具 id 和交易所代码,比如 ESZ6。
- 产品与到期:根代码、合约月份、最后交易日。
- 价格网格:最小跳动,以及一个点或者一跳的价值。
- 市场结构:挂牌交易所、交易时间组、撮合算法、价格带和涨跌限制参数。
- 对价差和组合来说:它的各条腿和它们的比例,软件正是靠这个把一个价差和一个单腿合约区分开。
定义与规格
合约规格是产品文件:ES 代表什么、它的跳动、它挂牌的月份和结算方式。合约定义是按工具公布的,并且随每一次挂牌而变化:ESZ6 和 ESH7 是同一个产品的两份定义,而它们之间每一个跨月价差也是一份。
像芝商所 MDP 3.0 这样的交易所数据源,在一条专门的通道上公布定义,这样软件可以在读价格之前先把它的工具表建起来。顺序不能反:一个没有定义的工具,它的价格即使收到了也无法被正确解释。
算例:一跳值多少
跳价值是最小跳动乘以乘数。ES:0.25 × 50 = 12.50 美元。2 年期国债 ZT:0.00390625(一个点的 1/256)× 2,000 = 7.8125 美元。日元期货 6J:0.0000005 × 12,500,000 = 6.25 美元。
一份用错乘数读出来的定义,会让每一个盈亏数字的尺度都是错的——而价格仍然显示正确。这就是这类错误难以发现的原因:图表看起来完全正常,只有钱算错了。
在 Senzoukria 里
软件不读交易所的定义;它用自己的目录,涵盖 53 个 CME、CBOT、NYMEX 和 COMEX 根代码,每一个都带最小跳动、乘数、跳价值、交割月份和到期规则。
一个不在目录里的根代码会拿到通用默认值——0.25 的跳动和 1 的乘数——所以在这个根代码被加进去之前,它的模拟盈亏和每点价值都是错的。合约选择器里显示的跳动提示是信息性的:渲染器从到来的成交里推断真实的最小跳动。Databento 导入器显示了这个问题的另一面:像 MNQ.FUT 这样的父级代码不会被导入,因为没有定义,它映射里的一个价差就无法和一张合约区分开。
常见错误
- 以为价格看起来对,就说明乘数是对的。
- 因为代码共用同一个根,就把一个价差工具当成单腿合约。
- 把一个最小跳动硬编码进去,而交易所后来为这个产品改了它。
相关内容
同一栏目
其他语言版本
常见问题
- 我在哪里能看到一个工具的定义?
- 交易所在它们的行情数据源和参考数据文件里公布它们,而数据商通过它们的接口把它们暴露出来。合约规格页面为读者按产品概括了同样的信息。
- 我在一个不常见的合约上盈亏看起来不对,为什么?
- 常常是因为软件不知道这张合约的乘数或者跳价值,于是退回到一个默认值。Senzoukria 对目录之外的根代码施加乘数 1,这让价格仍然正确,但盈亏的尺度是错的。