接触CTP也才半年多,一边学习一边摸索,看到各大CTP的QQ群里,也都是在问一些很菜的问题,就简单总结和介绍下,今天主要是基础知识,即CTP程序的基础和开源的Demo版本: CTP交易接口是由::::::上海期货信息技术有限公司::::::开发的,提供C++的接口,网上也有很多C++的Demo版本,可以直接使用。
1:上期所的接口为两个.dll、两个.lib和四个.h文件,初学者可以不要Care太多,直接使用就好了。下载地址:::::::上海期货信息技术有限公司:::::: 2:CTP开发中使用的模拟账号密码,要到SIMNOW上注册。BrokerID为9999,账号即investorId,密码为SIMNOW的登陆密码。
3:SIMNOW提供两类数据,一为交易时段的地址,如09:00-15:00和21:00-02:30(大概,夜盘真心没怎么关心),使用第一套地址,这些数据是真实的行情数据,只是时间上比真实的行情会有延迟30秒左右(SIMNOW从交易所接收后转发出来的)。二为非交易时段,这时的数据是历史行情的播放,比如昨天的数据之类的,可以用来做程序调试。具体介绍:产品与服务 - SimNow
注意其中有行情前置,也就是MarketFront,意思是这个是用来做行情接收的地址。 交易前置,也就是TradeFont,意思是这个是用来做交易的地址。 行情接收和交易的地址是分开的,不能弄混,否则会登陆失败。此外,若在期货公司有开户,可以将期货公司的BrokerID、MarketFront、TradeFront、个人的期货账号和密码填入,就可以达到程序化交易的目的了,当然,前提是写好程序,做好风险管控。 4:行情Demo版,可以到:上期所CTP-Api之C++行情Demo版(可保存数据到本地)下载,用VS2015打开后,点击testMdApi.cpp,将INVESTOR_ID和PASSWORK改成第2点中说的,点运行,就可以接收到数据了。 运行后的情况: 在MdSpi.cpp中,可以将接收到的数据保存到本地(请原谅我的C++很菜,主要是用C#编程,为了这个教程特意找度娘学了下C++的保存,不然很多人看了Demo还是没头绪)。 5:交易Demo下载地址为:上期所CTP-Api之C++交易Demo版,方法和行情类似,主要是修改下BrokerID、MarketFront、TradeFront、个人的期货账号和密码就可以了。模拟账号要注意,当天申请,要第二天才能登陆,模拟账号一般有100万的模拟资金,可以用来调试程序。 6:Demo版本使用CTP接口是比较早的版本,有兴趣可以自己更新成2016版的接口,初学者可以不用改,影响不大。 7:CTP接口若做高频交易,基本是使用C++编程,速度上会更快;不擅长C++的,现在网上也有C#、Python和Java等版本的接口,可以下载参考学下。
8:因本人对C++了解不多,主要是C#编程,CTP也有不少开源的C#版本,主推海风版和XAPI版,个人学习主要还是海风版的比较好用,海风版的下载地址:hubert28 (海风) · GitHub;XAPI版的地址:QuantBox · GitHub。其中海风大神最近也在推开源的Python版,有直播开发过程,有兴趣的可以去加QQ群了解下。 9:接收到的数据,也叫Tick数据,具体解释可以参考:a,==>Tick 数据在技术上究竟是什么东西? - 量化交易 b,==>金融数据解析之一 Tick 数据在技术上究竟是什么东西?; c,==>国内 CTP 平台目前是否有办法获得频率高于 2 tick 每秒的高频期货数据? - 编程;10:期货的Tick数据,目前都只能接收到一档行情,也就是买1和卖1,多档行情都是要收费的。 |