将量化投资进行到底
提供专业的量化投资解决方案

教你使用AlgoPlus接收期货实时行情

量化交易在国内发展方兴未艾。因为T+0且允许做空的交易制度、交易所的大力推动、信息技术红利带来的赚钱效应培养了一大批拥趸等原因,量化交易在期货行业起步比较早,而且发展比较成熟。

虽然各期货交易所都开发了自己的交易后台,但是上期所的CTP仍是目前使用最广泛的。所以,对于想从事量化研究、交易的同学们而言,学习CTP开发是一门必修课。本文就带大家了解一下CTP,并给大家介绍一个python版CTP交易接口——AlgoPlus。

 

关于CTP

CTP是Comprehensive Transaction Platform的简称。CTP有MdApi和TraderApi两个独立的开放接口。

MdApi负责行情相关操作(订阅、接收)。

TraderApi负责交易相关的操作(买、卖、撤、查)。

MdApi与TraderApi方法的执行过程都是异步的,每一个请求都对应一个或多个负责接收执行结果的回调函数。例如,通过ReqOrderInsert方法向交易所发出买开仓指令,对应的回调方法OnRtnOrder可以实时接收交易所服务器发回来的执行通知。

 

关于AlgoPlus

上期所CTP的官方API只支持C++语言,除非有开发经验,否则不推荐直接使用C++语言开发。

python语言在许多领域被非常广泛的应用,量化交易也不例外。本文给大家介绍的AlgoPlus就是对官方CTP封装的python版量化投资接口。相比较其他Python版CTP,AlgoPlus具有以下特点:

1、忠实于CTP官方特性。简单的说,AlgoPlus就是官方CTP的python翻译版,没有过度的封装,让交易者根据自己的实际情况选择官方设计的功能。

2、使用Cython、ctypes技术封装,即能实现了低延时的要求,又能兼容python语言的易用性。经过严格测试,AlgoPlus从策略触发交易信号到调用C++方法,延时只有40微秒左右。

3、从实战的角度为同学们展示量化策略的开发过程,例如趋势策略、套利策略、风控策略、执行算法等教程。

 

安装AlgoPlus

第一步:安装Anaconda。

第二步:使用pip install algoplus命令安装。

当你看到以下内容时:

安装成功!

 

注册模拟账号

1、Simnow是上海期货交易所旗下技术公司维护的一套模拟交易系统,只需注册账号即可免费使用:http://www.simnow.com.cn/

2、在常用下载页面下载一个客户端,方便实时查看模拟交易情况:http://www.simnow.com.cn/static/softwareDownload.action

3、记录个人主页中的InvestrorID,以及产品与服务页面中的服务器地址。配置账户参数时需要使用这些信息。

 

配置账户信息

FutureAccountInfo是一个期货账户类,包括broker_id(所属期货公司的标识),server_dict(行情与交易服务器地址),reserve_server_dict(备用服务器地址)、investor_id(账户)、password(密码)、app_id(客户端ID,与auth_code对应,监管要求)、auth_code(客户端ID对应的授权码,监管要求)、instrument_id_list(订阅合约列表)、md_page_dir(行情相关文件存放地址)、td_page_dir(交易相关文件存放地址)。

将所有的账户信息存放入my_future_account_info_dict字典中。创建交易接口实例时找到相应的账户信息作为参数。

 

AlgoPlus创建行情接口

MdApi是行情接口,使用时只需要传递账户参数创建一个实例就可以了。下面时一个完整的例子:

1、从AlgoPlus.CTP.MdApi文件中导入MdApi类。MdApi已对工作流程的前六步进行了封装。

2、TickEngine是MdApi的子类。TickEngine类主要实现收到行情的数据处理算法,示例只将收到的行情打印出来。

3、创建行情接口实例前,需要导入账户信息。示例的账户信息存放在同一个目录下的account_info.py文件中。

4、交易时间运行以上代码就可以将接收到的实时期货行情打印出来。

5、回调函数OnRtnDepthMarketData接收到的pDepthMarketData行情是DepthMarketDataField结构体的实例,在AlgoPlus.CTP.ApiStruct中被定义。以调用属性的方式可以获取行情任意字段的数值,例如pDepthMarketData.LastPrice表示最新价。DepthMarketDataField包括以下字段:

 

其他

示例完整代码下载:教你使用AlgoPlus接收期货实时行情.zip

码云:https://gitee.com/AlgoPlus/AlgoPlus

GitHub:https://github.com/CTPPlus/AlgoPlus

 

 

赞(0) 打赏
未经允许不得转载:CTP量化投资技术研究 - AlgoPlus量化投资开源框架 - 将交易进行到底 » 教你使用AlgoPlus接收期货实时行情
分享到: (0)

评论 抢沙发

评论前必须登录!

 

知者不惑,仁者不忧,勇者不惧

你的认可是我们最大的动力!

微信扫一扫打赏