以上期所的螺纹钢为例:

  • 交易所官网正式文件上,你看到的是面向公众的标识符:RB
  • CTP交易接口VeighNa软件中,你使用的是面向机器的技术代码:rb

这个差异的根源在于:上期所官方公布的“交易代码”是一套面向公众的标准化符号,而CTP接口在实际数据传输中,遵循的是各交易所内部系统的技术命名规范。

具体来说,这背后有几个层面的原因:

📜 官方代码 vs. 技术代码

  • 官方代码(大写RB:这是上期所在合约规则中向市场公布的标准化代码,用于文件、宣传和通用交流。它是一个标识符号
  • 技术代码(小写rb:这是CTP接口在计算机系统内部用来唯一识别合约的代码。在CTP的数据流中,合约代码(InstrumentID)是区分大小写的,系统必须使用完全一致的字符串才能正确识别。

🏛️ 各交易所的命名习惯不同

国内各期货交易所在其技术接口中,对合约代码的大小写有各自不同的约定。例如,中金所(CFFEX)和郑商所(CZCE)的品种代码通常大写(如IFTA),而上期所(SHFE)、大商所(DCE)和上期能源(INE)则习惯使用小写(如rbmsc)。

这种差异并非CTP或VeighNa自行决定,而是为了适配各交易所接口的原始数据规范

💻 VeighNa (vn.py) 的原则:完全遵循交易所接口

VeighNa框架在设计时,其核心原则之一就是 “内部全部采用官方命名” ,这个“官方”指的是交易所技术接口的官方规范

因此,在VeighNa中查询或交易上期所品种时,必须使用小写代码(如rb2501)。VeighNa社区也明确提醒用户,需要注意合约代码中的英文字母大小写

💎 总结

这是一个因应用场景不同而产生的差异:

  • 交易所官网正式文件上,你看到的是面向公众的标识符:RB
  • CTP交易接口VeighNa软件中,你使用的是面向机器的技术代码:rb

所以,你在VeighNa中输入小写rb是完全正确的,这并非错误,而是遵循了正确的技术规范。

📜 官方代码 vs. 技术代码

  • 官方代码(大写RB:这是上期所在合约规则中向市场公布的标准化代码,用于文件、宣传和通用交流。它是一个标识符号
  • 技术代码(小写rb:这是CTP接口在计算机系统内部用来唯一识别合约的代码。在CTP的数据流中,合约代码(InstrumentID)是区分大小写的,系统必须使用完全一致的字符串才能正确识别。

🏛️ 各交易所的命名习惯不同

国内各期货交易所在其技术接口中,对合约代码的大小写有各自不同的约定。例如,中金所(CFFEX)和郑商所(CZCE)的品种代码通常大写(如IFTA),而上期所(SHFE)、大商所(DCE)和上期能源(INE)则习惯使用小写(如rbmsc)。

这种差异并非CTP或VeighNa自行决定,而是为了适配各交易所接口的原始数据规范

💻 VeighNa (vn.py) 的原则:完全遵循交易所接口

VeighNa框架在设计时,其核心原则之一就是 “内部全部采用官方命名” ,这个“官方”指的是交易所技术接口的官方规范

因此,在VeighNa中查询或交易上期所品种时,必须使用小写代码(如rb2501)。VeighNa社区也明确提醒用户,需要注意合约代码中的英文字母大小写

💎 总结

这是一个因应用场景不同而产生的差异:

  • 交易所官网正式文件上,你看到的是面向公众的标识符:RB
  • CTP交易接口VeighNa软件中,你使用的是面向机器的技术代码:rb

所以,你在VeighNa中输入小写rb是完全正确的,这并非错误,而是遵循了正确的技术规范。