龙听期货论坛's Archiver

龙听 发表于 2019-6-15 08:38

小白期货CTP程序化交易开发入门(一)--CTP开发基础

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

页: [1]