: | : | :期货程序化 | :期货程序化研究 | :期货量化学习 | :期货量化 |
返回列表 发帖

必须收藏的CTP的程序化交易系统开发(一)

必须收藏的CTP的程序化交易系统开发(一)

此篇主要简单总结和介绍CTP程序的基础和开源的Demo版本。

    很多人在综合交易平台(CTP)的API开放后,开始编写程序化交易系统。先解读CTP的接口说明:CTP的API使用建立在TCP协议之上FTD协议与交易托管系统进行通讯,而负责投资者交易业务处理的则是交易托管系统。FTD 协议中规定了所有的通讯都基于某一种通讯模式。

    CTP的交易API提供了两个接口:

    1.CThostFtdcTraderApi,我们开发的交易系统通过它向CTP发送操作请求;
    2.CThostFtdcTraderSpi,通过它接收CTP的任何响应。

    主要业务举例如下:

图一

    行情涉及两种通讯模式:

    1.广播通讯模式:主要是行情订阅,交易所端在行情订阅后,将主动连续向会员发出行情信息;

    2.对话通讯模式:由会员端主动发起的通讯请求。请求被交易所端接收和处理,并给予响应。

图二

    我们可以通过CTP提供的接口向CTP发送业务申请,也不断的按照三种通讯模式中的其中一种接收CTP的响应。所以,至少应该有两个线程在我们所写的交易系统中:1.负责对CTP发出业务申请的主业务线程;2.负责接收CTP通过三种通讯模式中的其中一种对交易系统响应的API工作线程。

    综上所述,程序化交易系统需要完成的业务可分为:1.基本操作;2.行情操作;3.订单操作;4.数据监听和处理操作。而我的建议是,将程序化交易系统分为四个线程来分别处理以上业务。其它三个线程工作关系如下图所示:

图三

    程序化交易系统在开发过程中,要特别注意处理很多棘手问题,比如,数据处理造成的网络丢包或线程互斥等,因其就是一个复杂的多线程网络程序。

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

1.上期所的接口为两个,dll、两个.lib和四个.h文件,初学者直接使用就好,下载地址:上海期货信息技术有限公司http://www.sfit.com.cn/5_2_DocumentDown.htm
图4
需要在SIMNOW上注册CTP开发中要使用的模拟账号,BrokerID为9999,账号即investorId,密码为SIMNOW的登陆密码。
图5

2.SIMNOW提供两类数据:

    (1)交易时段的地址:比如,09:00-15:00和21:00-02:30,使用第一套地址,虽是真实的行情数据,但与真实的行情会相比,会有30秒左右延迟。

    (2)为非交易时段,这时的数据是历史行情的播放,比如昨天的数据之类的,可以用来做程序调试。

    注意:其中有MarketFront行情前置,用来做行情接收的地址;TradeFont交易前置,用来做交易的地址。这两个不能弄混,是分开的,否则会登陆失败。

3.行情Demo版,可以到:上期所CTP-Api之C++行情Demo版http://download.csdn.net/detail/u010908140/9656275下载,用VS2015打开后,点击testMdApi.cpp,将INVESTOR_ID和PASSWORK改成第2点中说的,点运行即可接收到数据。

图6

运行后的情况:
图7

在MdSpi.cpp中,可以将接收到的数据保存到本地

图8

4.交易Demo下载地址为:上期所CTP-Api之C++交易Demo版http://download.csdn.net/detail/u010908140/9656314,主要是修改MarketFront、BrokerID、TradeFront、个人期货账号和密码即可。

5.如果CTP接口做高频交易,基本是使用C++编程,若不擅长,C#、Python和Java等版本的接口在网上也有,可参考学下。

图9

    CTP也有很多开源的C#版本,主要推荐XAPI版,地址:QuantBox · GitHub,https://github.com/QuantBox;海风版,更适合个人学习,下载地址:hubert28 (海风) · GitHub,https://github.com/hubert28

论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
 
期货论坛 - 版权/免责声明   1.本站发布源码(包括函数、指标、策略等)均属开放源码,用意在于让使用者学习程序化语法撰写,使用者可以任意修改语法內容并调整参数。仅限用于个人学习使用,请勿转载、滥用,严禁私自连接实盘账户交易
  2.本站发布资讯(包括文章、视频、历史记录、教材、评论、资讯、交易方案等)均系转载自网络主流媒体,内容仅为作者当日个人观点,本网转载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网不对该类信息或数据做任何保证。不对您构成任何投资建议,不能依靠信息而取代自身独立判断,不对因使用本篇文章所诉信息或观点等导致的损失承担任何责任。
  3.本站发布资源(包括书籍、杂志、文档、软件等)均从互联网搜索而来,仅供个人免费交流学习,不可用作商业用途,本站不对显示的内容承担任何责任。请在下载后24小时内删除。如果喜欢,请购买正版,谢谢合作!
  4.龙听期货论坛原创文章属本网版权作品,转载须注明来源“龙听期货论坛”,违者本网将保留追究其相关法律责任的权力。本论坛除发布原创文章外,亦致力于优秀财经文章的交流分享,部分文章推送时若未能及时与原作者取得联系并涉及版权问题时,请及时联系删除。联系方式:http://www.qhlt.cn/thread-262-1-1.html
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

返回列表