7

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

 3 years ago
source link: https://zhuanlan.zhihu.com/p/23015492
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

专注数字货币的程序化交易
接触CTP也才半年多,一边学习一边摸索,看到各大CTP的QQ群里,也都是在问一些很菜的问题,就简单总结和介绍下,今天主要是基础知识,即CTP程序的基础和开源的Demo版本:

CTP交易接口是由::::::上海期货信息技术有限公司::::::开发的,提供C++的接口,网上也有很多C++的Demo版本,可以直接使用。

1:上期所的接口为两个.dll、两个.lib和四个.h文件,初学者可以不要Care太多,直接使用就好了。下载地址:::::::上海期货信息技术有限公司::::::

v2-3c3b214e393d8da54005d71e90209262_720w.png
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,多档行情都是要收费的。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK