6.5.1版本更新说明
版本号:v6.5.1_20200908_traderapi
1. 兼容性
V6.3.X的API可以访问6.3.X~6.5.X及其以上的CTP后台系统,但无法支持大商所长合约期权组合,无法支持IPv6;
V6.5.X的API只能访问6.5.X及其以上的CTP后台系统,支持大商所长合约期权组合,支持IPv6;
注意:6.5.1API引入的新函数只有在接入6.5.1及以上后台的时候才会有响应,接入6.5.0时无响应。
2. 运行环境
Linux操作系统版本为Redhat5.8及以上。
Windows为vista及以上的操作系统,支持32位和64位。
只支持vista及以上的操作系统是由于本次更新支持IPv6,涉及函数只能在vista及以上版本使用。
3. API变动
3.1. InstrumentID字段增长
为了支持大商所的超长组合合约,原先的合约字段30个字节已经不够长,所以需要对合约字段进行扩长。
新增合约代码类型为80字节。
///TFtdcInstrumentIDType是一个合约代码类型
/////////////////////////////////////////////////////////////////////////
typedef char TThostFtdcInstrumentIDType[81];
原来的合约代码类型改为TThostFtdcOldInstrumentIDType,并且原来的合约代码类型对应的字段改成保留字段且不用填写(填写系统会忽略)。
/////////////////////////////////////////////////////////////////////////
///TFtdcOldInstrumentIDType是一个合约代码类型
/////////////////////////////////////////////////////////////////////////
typedef char TThostFtdcOldInstrumentIDType[31];
TThostFtdcOldInstrumentIDType reserve1;
TThostFtdcOldExchangeInstIDType reserve2;
TThostFtdcOldInstrumentIDType reserve3;
3.2. IPAddress字段增长
为了支持以后IPv6的ip地址长度,对ip地址进行扩长,新增IP地址类型为32字节。
/////////////////////////////////////////////////////////////////////////
///TFtdcIPAddressType是一个IP地址类型
/////////////////////////////////////////////////////////////////////////
typedef char TThostFtdcIPAddressType[33];
原来的ip地址类型改为TThostFtdcOldIPAddressType,原来的ip地址类型对应的字段改成保留字段且不用填写(填写系统会忽略)。
/////////////////////////////////////////////////////////////////////////
///TFtdcOldIPAddressType是一个IP地址类型
/////////////////////////////////////////////////////////////////////////
typedef char TThostFtdcOldIPAddressType[16];
TThostFtdcOldIPAddressType reserve2
凡是接口中涉及IPAdress要手动填写的(如ReqOrderInsert)按照如下规则:
ipv6要转成非零压缩地址,即原始地址,同时要去掉冒号,例如:AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHH
RegisterFront和RegisterNameServer函数按照如下规则填写:
3.3. 新增查询大商所组合优惠参数接口
大商所的期权对锁组合(OPL),买入期权垂直价差组合(BLS),卖出期权垂直价差组合(BES),日历价差组合(CAS)和买入期权期货组合(BFO)的保证金计算公式中需要乘以保证金优惠比例。
该比例参数由交易所给出,终端如果需要计算如上组合的保证金,可以通过本接口查询组合合约的组合优惠参数X值,由于优惠参数目前不区分投机套保,因此查询返回域投保标志CombHedgeFlag字段默认为投机类型。
保证金计算公式如下:
期权对锁(OPL),保证金收取为X*卖期权保证金
买入期权垂直价差组合(BLS),保证金收取为X*卖期权保证金
卖出期权垂直价差组合(BES),保证金收取为min(执行价格之差*交易单位,空头期权保证金)
日历价差组合(CAS),保证金收取为X*卖出期权保证金
买入期权期货组合(BFO),保证金收取为X*期货保证金
新增查询大商所组合优惠参数接口如下,合约代码需要填组合合约代码:
///请求组合优惠比例
virtual int ReqQryCombPromotionParam(CThostFtdcQryCombPromotionParamField *pQryCombPromotionParam, int nRequestID);
///查询组合优惠比例
struct CThostFtdcQryCombPromotionParamField
{
///交易所代码
TThostFtdcExchangeIDType ExchangeID;
///合约代码
TThostFtdcInstrumentIDType InstrumentID;
};
///请求组合优惠比例响应
virtual void OnRspQryCombPromotionParam(CThostFtdcCombPromotionParamField *pCombPromotionParam, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
///组合优惠比例
struct CThostFtdcCombPromotionParamField
{
///交易所代码
TThostFtdcExchangeIDType ExchangeID;
///合约代码
TThostFtdcInstrumentIDType InstrumentID;
///投机套保标志
TThostFtdcCombHedgeFlagType CombHedgeFlag;
///期权组合保证金比例
TThostFtdcDiscountRatioType Xparameter;
};
3.4. 新增组合枚举值
///TFtdcCombinationTypeType是一个组合类型类型
/////////////////////////////////////////////////////////////////////////
///期货组合
#define THOST_FTDC_COMBT_Future '0'
///垂直价差BUL
#define THOST_FTDC_COMBT_BUL '1'
///垂直价差BER
#define THOST_FTDC_COMBT_BER '2'
///跨式组合
#define THOST_FTDC_COMBT_STD '3'
///宽跨式组合
#define THOST_FTDC_COMBT_STG '4'
///备兑组合
#define THOST_FTDC_COMBT_PRT '5'
///时间价差组合
#define THOST_FTDC_COMBT_CAS '6'
///期权对锁组合
#define THOST_FTDC_COMBT_OPL '7'
///买备兑组合
#define THOST_FTDC_COMBT_BFO '8'
///买入期权垂直价差组合
#define THOST_FTDC_COMBT_BLS '9'
///卖出期权垂直价差组合
#define THOST_FTDC_COMBT_BES 'a'
对大商所组合进行申请和拆分时,合约填写规则如下:
期权跨式组合合约申请和拆分(STD m1905-c-2700&m1905-p-2700)
期权宽跨式组合合约申请和拆分(STG m1905-p-2400&m1905-c-2700)
备兑组合合约申请和拆分(PRT m1905-c-2400&m1905)
期货跨期组合合约申请和拆分(SP a1903&a1905)
期货跨品种组合合约申请和拆分(SPC c1903&cs1909)
期货对锁组合合约申请和拆分(SP a1903& a1903)
期权对锁组合合约申请和拆分(OPL m1809-P-3150&m1809-P-3150)
期权买入垂直价差组合申请和拆分(BLS m1809-P-3150&m1809-P-3100)
期权卖出垂直价差组合申请和拆分(BES m1809-P-3350&m1809-P-3150)
期权日历价差组合申请和拆分(CAS m1807-P-3150&m1809-P-3150)
买入期权期货组合申请和拆分(BFO m1809-P-3150&m1809)
3.5. 新增公有流可订阅和取消的功能
增加取消订阅公共流的枚举THOST_TERT_NONE,不调用SubscribePublicTopic时默认从本交易日开始订阅,调用SubscribePublicTopic则以传参为准,同订阅私有流,在登录之前调用。
///订阅公共流。
virtual void SubscribePublicTopic(THOST_TE_RESUME_TYPE nResumeType) = 0;
///@param nResumeType 公共流重传方式
/// THOST_TERT_RESTART:从本交易日开始重传
/// THOST_TERT_RESUME:从上次收到的续传
/// THOST_TERT_QUICK:只传送登录后公共流的内容
/// THOST_TERT_NONE:取消订阅公共流
///@remark 该方法要在Init方法前调用。若不调用则不会收到公共流的数据。
3.6. 新增查询分类合约的接口
CTP合约信息可分为可交易合约和非交易合约,非交易合约数据量占比较大。
大商所只可申请组合的合约为非交易合约
新增查询分类合约接口可依据查询请求域交易类型TradingType字段查询指定合约信息。
///请求查询分类合约:
virtual int ReqQryClassifiedInstrument(CThostFtdcQryClassifiedInstrumentField *pQryClassifiedInstrument, int nRequestID) = 0;
///请求查询分类合约响应:
virtual void OnRspQryClassifiedInstrument(CThostFtdcInstrumentField *pInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
///查询分类合约
struct CThostFtdcQryClassifiedInstrumentField
{
///合约代码
TThostFtdcInstrumentIDType InstrumentID;
///交易所代码
TThostFtdcExchangeIDType ExchangeID;
///合约在交易所的代码
TThostFtdcExchangeInstIDType ExchangeInstID;
///产品代码
TThostFtdcInstrumentIDType ProductID;
///合约交易状态
TThostFtdcTradingTypeType TradingType;
///合约分类类型
TThostFtdcClassTypeType ClassType;
};
其中合约类型TradingType的枚举值为:
分类类型ClassType的枚举值为:
///所有合约
#define INS_ALL '0'
///期货、即期、期转现、Tas、金属指数合约
#define INS_FUTURE '1'
///期货期权、现货期权合约
#define INS_OPTION '2'
///组合合约
#define INS_COMB '3' //对应产品类型字段Productclass 为组合类型
3.7. 查询最大报单数量的接口名称修改
查询最大报单数量请求'的接口名字由'ReqQueryMaxOrderVolume'修改为'ReqQryMaxOrderVolume',‘OnRspQueryMaxOrderVolume’修改为‘OnRspQryMaxOrderVolume’。
该名称修改不影响旧版本(V6.5.1以下版本)API使用,旧版本API接入6.5.1后台,仍可使用原有名称;CTPV6.5.1后台系统兼容线上旧版本API接入。
查询最大报单数量请求
virtual int ReqQueryMaxOrderVolume(CThostFtdcQueryMaxOrderVolumeField *pQueryMaxOrderVolume, int nRequestID) = 0;
修改为:
virtual int ReqQryMaxOrderVolume (CThostFtdcQryMaxOrderVolumeField *pQryMaxOrderVolume, int nRequestID) = 0;
查询最大报单数量响应
virtual void OnRspQueryMaxOrderVolume(CThostFtdcQueryMaxOrderVolumeField *pQueryMaxOrderVolume, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
修改为:
virtual void OnRspQryMaxOrderVolume(CThostFtdcQryMaxOrderVolumeField *pQryMaxOrderVolume, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
3.8. 请求查询报价接口逻辑优化
如果查询请求有指定QuoteSysID(填空则返回全部),后台会根据QuoteSysID返回相应的报价信息,旧版本后台不支持根据QuoteSysID进行过滤返回。
4. 看穿式采集库说明
本次更新没有变动采集库,采集库暂时只采集IPv4地址。