证券交易系统优化与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第一节 交易所与证券代码

交易所是进行有价证券交易的市场,通常分为证券交易所和期货交易所。证券交易所一般交易股票、债券、基金等有价证券,期货交易所一般交易大宗商品或者金融期货合约。在中国大陆开办证券和期货交易所需要经过中国证券监督管理委员会审核,国务院批准后方可设立。目前经国务院批准的证券交易所有上海证券交易所和深圳证券交易所两家,(1)期货交易所有上海期货交易所、中国金融期货交易所、郑州商品交易所、大连商品交易所和上海国际能源交易中心五家。这七家交易所受证监会直接监管、管理制度规范、交易标的流动性好、参与者众多,是进行投资交易的首选交易所。近年来,全国各地出现很多地方性的现货交易所,这些交易所管理混乱、缺乏监管,风险极高,且一般都不提供程序化交易接口,不适合进行系统化交易。

一般来说,交易系统中非常重要的两个环节是订阅市场行情和发送交易指令。这两个环节都需要用到股票或者期货合约的证券代码以及交易所代码,因此,熟悉我国各大交易所及其交易标的证券代码对于交易系统开发者来说非常重要。下面给出我国主要交易所的编码规则及示例:

上海证券交易所,英文名Shanghai Stock Exchange,简称“上交所,SSE”。它在yahoo金融数据库中代码为“SS”,在万得金融数据库中代码为“SH”,在本书推荐的掘金交易平台(2)中代码为“SHSE”。根据2007年发布的«上海证券交易所证券代码分配规则»,上海证券交易所证券代码采用六位阿拉伯数字编码,取值范围为。六位代码的前三位为证券种类标识区,其中第一位为证券产品标识,第二位至第三位为证券业务标识,六位代码的后三位为顺序编码区。首位代码代表的产品定义分别为:0-国债/指数、1-债券、2-回购、3-期货、4-备用、5-基金/权证、6-A股、7-非交易业务(发行、权益分配)、8-备用、9-B股。对于同一只股票,在不同的数据库或者交易平台请求行情或者数据时采用的格式也不同,(3)例如浦发银行在不同数据库或者交易平台上的股票代码可能分别为600000.SS、600000.SH和SHSE.600000。

深圳证券交易所,英文名Shenzhen Stock Exchange,简称“深交所,SZSE”。在上述三个数据源中的代码分别是“SZ”“SZ”和“SZSE”。深圳证券交易所2001年由4位数编码升级为6位数编码,定义:0-A股股票、100/101-国债、11-企业债、12-可转债、15/16-开放式基金、18-证券投资基金、2-B股、3-创业板股票。

上海期货交易所,英文名Shanghai Futures Exchange,简称“上期所,SHFE”。在万得金融数据终端中的代码为“SHF”,在掘金交易平台中为“SHFE”。上期所主要交易有色金属(分别为铜cu、铝al、锌zn、铅pb、镍ni和锡sn),贵金属(黄金au和白银ag),黑色金属制品(螺纹钢rb、线材wr、不锈钢ss和热轧卷板hc)和能源化工(天然橡胶ru、燃料油fu和沥青bu)。上期所对交割月份的表示为4位数,前两位代表年份、后两位代表月份。例如,2017年1月交割的黄金期货合约代码为au1701。

中国金融期货交易所,英文名China Financial Futures Exchange,简称“中金所,CFFEX”。在万得中代码为“CFE”,在掘金交易平台中为“CFFEX”。中金所主要交易股票指数期货(上证50指数期货IH、沪深300指数期货IF和中证500指数期货IC)以及国债期货(二年期国债TS,五年期国债期货TF和十年期国债期货T)。

郑州商品交易所,英文名Zhengzhou Commodity Exchange,简称“郑商所,CZCE”。在万得中代码为“CZC”,在掘金交易平台中为“CZCE”。郑商所主要交易农产品(白糖SR、棉花CF、棉纱CY、强麦WH、普麦PM、早稻RI、晚稻LR、粳稻JR、菜籽RS、菜籽油OI、菜粕RM、红枣CJ和苹果AP),能源化工(动力煤ZC、甲醇MA、尿素UR、纯碱SA和精对苯二甲酸TA),矿产(硅铁SF和锰硅SM)和建材(玻璃FG)等。郑商所交割月份的表示与其他三个期货交易所不同,采用3位数表示,第1位是年份,后两位代表月份。例如2017年1月交割的白糖期货合约代码为SR701,但在万得数据库中交割月份需要补齐到4位数,如SR1701.CZC,但它在掘金量化平台中的代码为CZCE.SR701。

大连商品交易所,英文名Dalian Commodity Exchange,简称“大商所,DCE”。大商所主要交易农产品(黄大豆1号a、黄大豆2号b、豆油y、豆粕m、棕榈油p、玉米c、玉米淀粉cs和鸡蛋jd),化工产品(塑料l、聚氯乙烯v和聚丙烯pp),建材(胶合板bb和中密度纤维板fb)和能源矿产(焦炭j、焦煤jm和铁矿石i)等。

上海国际能源交易中心,英文名Shanghai International Energy Exchange,简称“能源所,INE”,目前交易原油期货合约sc和20号胶nr。(4)

通过以上内容对比可以看出,股票市场代码规律性较强,但都以数字作为证券代码。这会引起一些编程上的障碍需要克服,例如数字和字符格式之间的转换、识别等。期货交易所之间的合约代码编制规则显得混乱一些,总结出来的规律主要有两点:首先是合约品种代码的长度和大小写,除了大商所有几个品种采用了1个小写字符之外,其他三个交易所都采用两个字符表示合约品种,其中上期所采用的是小写,中金所和郑商所都采用大写;其次是合约交割月份的表示,郑商所采用了3位数字,而其他三个交易所都采用4位数字。以上这些都为交易系统的开发设置了重重障碍,需要专门编写函数进行处理。

由于绝大多数经纪商提供的API可以直接与柜台进行通讯,且本书重点在于讨论如何进行交易系统的参数选择和优化,所以有关STEP和CTP平台等底层开发相关的内容不在本书的讨论范围之内,不再赘述。