以上期所的螺纹钢为例:
- 在交易所官网或正式文件上,你看到的是面向公众的标识符:
RB。 - 在CTP交易接口或VeighNa软件中,你使用的是面向机器的技术代码:
rb。
这个差异的根源在于:上期所官方公布的“交易代码”是一套面向公众的标准化符号,而CTP接口在实际数据传输中,遵循的是各交易所内部系统的技术命名规范。
具体来说,这背后有几个层面的原因:
📜 官方代码 vs. 技术代码
- 官方代码(大写
RB):这是上期所在合约规则中向市场公布的标准化代码,用于文件、宣传和通用交流。它是一个标识符号。 - 技术代码(小写
rb):这是CTP接口在计算机系统内部用来唯一识别合约的代码。在CTP的数据流中,合约代码(InstrumentID)是区分大小写的,系统必须使用完全一致的字符串才能正确识别。
🏛️ 各交易所的命名习惯不同
国内各期货交易所在其技术接口中,对合约代码的大小写有各自不同的约定。例如,中金所(CFFEX)和郑商所(CZCE)的品种代码通常大写(如IF、TA),而上期所(SHFE)、大商所(DCE)和上期能源(INE)则习惯使用小写(如rb、m、sc)。
这种差异并非CTP或VeighNa自行决定,而是为了适配各交易所接口的原始数据规范。
💻 VeighNa (vn.py) 的原则:完全遵循交易所接口
VeighNa框架在设计时,其核心原则之一就是 “内部全部采用官方命名” ,这个“官方”指的是交易所技术接口的官方规范。
因此,在VeighNa中查询或交易上期所品种时,必须使用小写代码(如rb2501)。VeighNa社区也明确提醒用户,需要注意合约代码中的英文字母大小写。
💎 总结
这是一个因应用场景不同而产生的差异:
- 在交易所官网或正式文件上,你看到的是面向公众的标识符:
RB。 - 在CTP交易接口或VeighNa软件中,你使用的是面向机器的技术代码:
rb。
所以,你在VeighNa中输入小写rb是完全正确的,这并非错误,而是遵循了正确的技术规范。
📜 官方代码 vs. 技术代码
- 官方代码(大写
RB):这是上期所在合约规则中向市场公布的标准化代码,用于文件、宣传和通用交流。它是一个标识符号。 - 技术代码(小写
rb):这是CTP接口在计算机系统内部用来唯一识别合约的代码。在CTP的数据流中,合约代码(InstrumentID)是区分大小写的,系统必须使用完全一致的字符串才能正确识别。
🏛️ 各交易所的命名习惯不同
国内各期货交易所在其技术接口中,对合约代码的大小写有各自不同的约定。例如,中金所(CFFEX)和郑商所(CZCE)的品种代码通常大写(如IF、TA),而上期所(SHFE)、大商所(DCE)和上期能源(INE)则习惯使用小写(如rb、m、sc)。
这种差异并非CTP或VeighNa自行决定,而是为了适配各交易所接口的原始数据规范。
💻 VeighNa (vn.py) 的原则:完全遵循交易所接口
VeighNa框架在设计时,其核心原则之一就是 “内部全部采用官方命名” ,这个“官方”指的是交易所技术接口的官方规范。
因此,在VeighNa中查询或交易上期所品种时,必须使用小写代码(如rb2501)。VeighNa社区也明确提醒用户,需要注意合约代码中的英文字母大小写。
💎 总结
这是一个因应用场景不同而产生的差异:
- 在交易所官网或正式文件上,你看到的是面向公众的标识符:
RB。 - 在CTP交易接口或VeighNa软件中,你使用的是面向机器的技术代码:
rb。
所以,你在VeighNa中输入小写rb是完全正确的,这并非错误,而是遵循了正确的技术规范。