Senzoukria · 术语表

期货代码规则

期货代码规则是一个平台或数据供应商用来命名一个工具的那套约定。同一张 2026 年 6 月的 Micro 纳斯达克 100 合约,在 Rithmic 那里是 MNQM6 配交易所 CME,在 NinjaTrader 里是「MNQ 06-26」,在 Quantower 里是 MNQM6;而 Databento 还提供像 MNQ.v.0 这样的连续代码,以及像 MNQ.FUT 这样的父级代码,而这两种都不命名某一张具体合约。

更新于 2026 年 9 月首次发布:2026年10月9日

本页目录
  1. 一个期货代码的几个部分
  2. 一张合约,好几种拼法
  3. 连续代码与父级代码
  4. 在 Senzoukria 里
  5. 一个算例
  6. 常见错误
  7. 相关内容
  8. 同一栏目
  9. 其他语言版本
  10. 常见问题

一个期货代码的几个部分

  • 品种代码:这个产品(MNQ、ES、CL)。
  • 月份代码:交割月份的那个字母(六月是 M)。
  • 年份:一位或两位数字(6 或 26)。
  • 交易所:CME Group 之内的挂牌场所(CME、CBOT、NYMEX 或 COMEX),有些系统把它作为一个单独的字段或后缀携带。

一张合约,好几种拼法

2026 年 6 月 Micro E-mini 纳斯达克 100 合约在不同来源里的写法
来源拼法它标识什么
Rithmic(代码 + 交易所)CME 上的 MNQM6一张合约
NinjaTraderMNQ 06-26一张合约
QuantowerMNQM6一张合约
Databento 原始代码MNQM6一张合约
Databento 连续代码MNQ.v.0每一天按移仓规则排在第一的那张合约
Databento 父级代码MNQ.FUTMNQ 的每一个工具,包括价差

连续代码与父级代码

一个连续代码命名的是一条规则,而不是一张合约。在 Databento 的约定里,中间那个字母是移仓规则(c 日历、n 未平仓量、v 成交量),而那个数字是排名,0 是第一。MNQ.v.0 背后的工具在移仓时会变,所以单凭这个代码并不告诉你一笔成交属于哪一个到期日。一个父级代码把这个产品的每一个工具都归到一起,单腿和价差都算,这对批量下载很方便,而对画图很危险。

在 Senzoukria 里

本机缓存里的 K 线,键是 品种代码 + 月份字母 + 年份数字 + 「.」 + 交易所。Rithmic 本来就构造成那个形式;而桥接代码在被保存时会被归一到它,所以来自 NinjaTrader 的「MNQ 06-26」和来自 Quantower 的 MNQM6,都落到 MNQM6.CME 之下。没有这一步,同一张合约就会占着三组彼此看不见的行,而换一个连接器看起来就会像是缓存空了。一个品种代码不在目录里的代码,保留它原始的键,而不是被丢掉。

Databento 的导入器逐个工具地读那份代码映射:一个原始代码映射到一张目录里的合约;一条连续序列被存成 MNQ-I 后面跟着那个工具编号、归在 MNQ 这个品种代码之下,因为这条序列并不命名那张合约;而一个像 MNQ.FUT 这样的父级代码不被导入,因为它的映射里包含价差,而在没有工具定义的情况下,那些价差无法和合约区分开来。

一个算例

「MNQ 06-26」被解析为品种代码 MNQ、月份 06、年份 26。月份 06 转成 M,年份 26 转成数字 6,而目录把 MNQ 映射到 CME,于是给出键 MNQM6.CME。一张把 06 变成 U 的错误月份表,会产生 MNQU6.CME,也就是九月那张合约,并且悄悄地把两个到期日混在一起。

常见错误

  • 比较存在同一张合约两种拼法之下的 K 线,然后得出历史缺失的结论。
  • 在一个连续代码上下委托;委托总是去到一个具体的到期日。
  • 下载一个父级代码,并把价差当作单腿价格来画图。

同一栏目

其他语言版本

常见问题

MNQ.v.0 是一张我能交易的合约吗?
不是。它是一条连续序列,跟随每一天按成交量排在第一的那张 MNQ 合约。它对跨移仓的研究有用,但委托总是下在一张具体的合约上,比如 MNQU6。
我从一个桥接切到 Rithmic 之后,历史为什么看起来空了?
因为用一种拼法写进去的数据,用另一种拼法去查是看不见的。Senzoukria 在保存时会把已知的桥接拼法归一到一个键上;而一个品种代码不在它目录里的合约保留它原始的拼法,而以那种方式存下来的 K 线,也只能在那种拼法之下被找到。
NEXT

继续阅读