欢迎来到天天文库
浏览记录
ID:43490294
大小:385.79 KB
页数:6页
时间:2019-10-08
《多账户-多策略期货交易程序(ctp开发经验分享)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、CTP多账户多策略-交易程序C++ctp接口程序化交易经验分享CTP简介综合交易平台CTP(ComprehensiveTransactionPlatform)是由上海期货信息技术有限公司(上海期货交易所的全资子公司)开发的期货交易平台,CTP平台以“新一代交易所系统”的核心技术为基础,稳定、高速、开放式接口,适合程序化交易软件运用和短线炒单客户使用。ctp接口下载地址本文目的该程序是我大二暑假参加一个金融软件比赛写的,是比赛作品的其中一部分,专门用来进行交易的。作品的目标是多账户、多策略。其中交易策略用别的语言编写,它们产生并
2、发送交易指令(交易账户、交易合约等信息)给交易主机(即这个项目)进行买卖。因此交易主机的主要职责是接收、解析并执行交易指令,跟踪汇报指令的交易情况。具体情况可以看我我上传的介绍视频,那是后来提交作品时录的。后来有几个人问起我这个程序,其中有位老师想在实盘中测试下自己的交易策略怎样,就找了两位师弟给他做那个东西,然后让我去给他们讲要注意些什么东西,这让我想起自己一开始接触ctp的接口时,花了不少时间去测试接口看是怎么一回事。鉴于网上ctp的开发介绍不多,我就借这个项目分享下经验,让大家能少走些弯路就尽量少走一些。有以下地方需要注
3、意:环境:VS2013+Qt5.3(32位)+mysql(32位)(在我写这个项目时ctp在windows平台上只有32位的库)刚接触的话先粗略浏览下“开发资料”中的内容,里面的PPT是需要细看的。我下面讲的是些开发的经验,并不是起步教程,理解资料中的PPT是起步的关键在初步理解概念后试着自己写一个登录发请求的例子,试着调用不同的API函数,这些可以参考noQtCTP.rar里的内容(结合文档中的示例)。这是我开始接触ctp接口时为了理解写的一些代码(就是登录、调用简单的API),不需要Qt库也可以编译当需要测试交易API时,
4、可以参考tdspiTestWithQt.rar里的内容,这是我学交易API操作和研究回调函数时用得最多的工具了!需要Qt进行编译,可以不断修改里面的源代码然后点击界面中的按键来执行发送指令,控制台输出回调信息,大家也可以自己写一个适合自己的研究API的小工具,既加深理解,又方便自己开发。基本上会写这个小工具ctp接口就已经学会怎么用了,剩下的就是想怎么把它应用到软件需求中了虽然是程序支持“多账户多策略”,但是对于ctp接口的使用是一样的,这篇文章主要说的是关于ctp的项目遵循BSD协议,可以自由的使用,修改源代码,也可以将修改
5、后的代码作为开源或者专有软件再发布项目不再维护更新,代码主要供学习参考基础理解CTP的基本用法1.windows版本的接口文件比较多,但它们是有规律的(很多东西名字很长,是因为前面都添加了ThostFtdc这几个字符)ThostFtdcUserApiDataType.h:定义业务数据类型,用typedef为现有类型创建同义字,比如期货账号typedefcharTThostFtdcUserIDType[16],密码类型typedefcharTThostFtdcPasswordType[41]ThostFtdcUserApiStr
6、uct.h:定义业务数据结构,使用ThostFtdcUserApiDataType.h的数据类型,调用api时就要传这里面定义好的数据结构过去,比如执行登录操作时传一个CThostFtdcReqUserLoginField数据结构过去,这里面就放置了上面说的账号类型和密码类型ThostFtdcMdApi.h、thostmduserapi.lib、thostmduserapi.dll:用于获取行情的API,关键字是md,表示marketdataThostFtdcTraderApi.h、thosttraderapi.lib、tho
7、sttraderapi.dll:用于交易操作的API,关键字是trader2.开发前要有期货交易账号,经纪商代码,前置机地址(前置机地址又分行情和交易的),这些又分为模拟的真实的。因此自己需要去开一个户,然后和期货公司要一些模拟的账号(记得问前置机地址和经纪商代码)。如果需要真实环境的前置机地址,可以下载一个快期交易软件,在登陆界面点击代理可以分别看到行情和交易的地址。另外可以加一些ctp开发的讨论群,里面有各期货公司的人提供模拟账户的,当然这不是免费的午餐咯,当需要提供手机号码时大家最好不要报真实号码,否则你懂的。另外这些模
8、拟账户是大家都可以用到的,导致一些回调你不知道是不是自己的操作,因此大家可以在早上登录账号并调用API把密码改了,那样那个号那天就是你的了。我的tdspiTestWithQt里有这样的功能(大把模拟账号没人用的,不用担心影响到别人)3.无论是行情还是交易API,里面都有两个类
此文档下载收益归作者所有