相关文章推荐
求醉的胡萝卜  ·  bytearrayoutputstream ...·  1 年前    · 
仗义的眼镜  ·  vue ...·  1 年前    · 
刚毅的棒棒糖  ·  连接字符串python ...·  1 年前    · 
首发于 VirtualApi 量化交易回测神器
我用1天时间搭建自主量化交易(程序化交易)平台

我用1天时间搭建自主量化交易(程序化交易)平台

VirtualApi目前支持上海期货交易所的CTP回测 : http://www.virtualapi.cn

实盘期货(支持CTP) http://www.kaihucn.cn

Simnow 上期CTP接口官方网站和模拟账户注册 http://www.simnow.com.cn

1Gb代码资源参考下载: mdshare.cn/sourcce.rar

行情采集服务器下载: http://www.mdshare.cn

量化交易自主平台搭建的快速入门步骤:

第一天(下载代码和数据和注册模拟盘)

从Virtualapi 下载CTP程序化交易Demo(用于实盘)和Virtualapi for CTP Demo(用于回测)

VirtualApi 期货CTP TICK级本地量化交易仿真回测首页 www.virtualapi.cn 图标

上期SINNOW网站注册CTP接口的模拟盘

SimNow仿真交易【官方网站】 www.simnow.com.cn 图标

切记SIMNOW主要用于功能测试,而不是策略回测,如果要对策略做回测的话,必须使用Virtualapi for CTP的Demo。

从mdshare下数据采集服务器和网盘历史数据

mdshare和quicklib量化交易行情数据共享中心 www.mdshare.cn 图标

下载实时行情采集工具,并通过网盘补齐历史数据用于还回测

第二天(在CTP Demo基础上撰写代码和回测)


第三天(开户运行实盘)

以下支持徽商期货、宏源期货、东方期货、华安期货 4家期货公司低手续费开户,支持CTP接口实盘:

正规期货公司商品期货低佣金开户(徽商期货、宏源期货、东方期货、华安期货) www.kaihucn.cn

说在前面:为什么要设计Virtualapi

量化交易的方向选择

目前大家关注可实现量化交易市场主要选择有:

1. 国内期货:包含了股指期货、国债期货、商品期货等,

由于期货杠杆和风险比A股更大 ,并且是T+0机制,使得这个市场拥有一批优秀的成熟量化交易者,他们当中有很大一批逐渐发展成熟职业投资者和私募基金经理。

2. A股、ETF、分级基金等等,程序化交易接口受到限制。

3. 债券市场,美国市场比起来,中国国内债券目前还不是主流。

以上市场中,符合中国金融环境并且最适合学习量化的市场是中国国内期货市场理由如下:

1. 符合国内金融环境,有能力就有机会在期货市场发自己的CTA相关基金产品。

2. 有了期货交易经验和资金管理经验,很容易就可以过渡到管理A股市场的相关资金或产品。

3. 期货市场和国外很多成熟市场一样是T+0制度。

4. 国内程序化支持最完善,例如上海期货交易所的CTP接口,郑州商品交易所和大连商品交易所也从推出了自己的API,这些交易所官方提供的API免费、公开、合法,并且有众多的开源框架可以使用,更不像证监会对A股程序化接口做了诸多限制而难以实施。

5. A股市场由于行情持续时间较长,周期过大,导致容易蒙对行情而无法领悟真正的量化规律。而期货市场瞬息万变,在期货这样的市场里进行量化交易的学习更容易真正发现交易的真谛。

6. 鉴于期货市场存在主力品种投机性强、流动性好、套利机会多等特点,期货市场更适合做量化交易。

有了上述理由,我们决定在下面的章节中以国内期货量化交易为例来撰写量化交易系统搭建

期货量化交易环境的介绍

目前期货的量化交易环境是比较完善的,上海期货交易所推出了免费的CTP API接口是影响最大和使用最广泛的期货API接口, 很多A股接口都采用了和上海期货交易所接口类似的封装模式,比如LTS,QTS,XTS等等。

具备CTP架构的开发经验,是一种通用的经验,该经验也可以用于其他接口的研发。

我们结合CTP发布了一种面对CTP的TICK级本地仿真回测接口,也就是大家现在看到的我的作品Virtualapi,Virtualapi for CTP的版本是针对CTP的原生方法和库做了结算仿真,可以在不改变CTP代码的前提下实现TICK级回测,而在Virtualapi出现之前是无法做到这一点的。


支持的编程语言
VirtualApi Api支持多种编程语言,包括C++、Python、Java、C#、Golang、易语言等 。
支持的操作系统
VirtualApi Api支持Windows操作系统,版本要求Windows7、Windows2008及以上。
支持的量化交易框架
VirtualApi 支持各种基于CTP接口的自编程序和框架,例如vn.py、Quicklib、海风等。
CTP实盘程序流程图(C++)
典型CTP实盘程序流程图


VirtualApi回测程序流程图(C++)
VirtualApi For CTP回测程序流程图


代码

CTP 库文件

CTP Api是C++库,理论上可以用于包括C++、Python、Java、C#、等在内的多种编程语言的调用。
VirtualApi For CTP一样是采用C++开发,目前只支持Windows操作系统,运行采用VirtualApi Api的计算机和TradeAgent.exe的计算机采用要求Windows7、Windows2008及以上系统,对于Windwo7和Windows Server2008这些较为陈旧的Windows系统安装微软运行时库redist2015补丁。
以最常用的CTP无中继代理模式为例(于2019.6.14实施的穿透式和老的非穿透式),CTP API Windows版本含以下文件:


其中ThostFtdcMdApi.h、ThostFtdcTraderApi.h、ThostFtdcUserApiDataType.h、ThostFtdcUserApiStruct.h 是头文件,thostmduserapi.dll、thosttraderapi.dll、thostmduserapi.lib、thosttraderapi.dll。
VirtualApi 库文件
VirtualApi For CTP库文件
包含以下文件:


可以看到VirtualApi 库在原 CTP库基础上 增加了list.csv,Price.exe,Graph.exe这3个文件,而对于thostmduserapi.dll、thosttraderapi.dll、thostmduserapi.lib、thosttraderapi.dll这4个文件是VirtualApi提供模拟CTP的实现,而 ThostFtdcMdApi.h、 ThostFtdcTraderApi.h、 ThostFtdcUserApiDataType.h、 ThostFtdcUserApiStruct.h 这4个头文件则保持和CTP对应版本一模一样。
list.csv作用 该程序放到回测程序的目录下,用于指定csv格式的数据文件的存放路径,并非自己存放Tick数据,在回测时VirtualApi会从上至下依次读取list.csv种这些文件的Tick数据,并触发CTP方法里的深度行情通知回调函数 virtual void OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData),使得和CTP的OnRtnDepthMarketData回调方法一致。 值得注意的是,list.csv指定的数据文件库的字段顺序目前不能更改,将来可能提供字段顺序的自定义设置功能


华宝证券17种条件的功能开户领取: http://www.hbapi.cn

酷操盘手

酷操盘手期货跟单软件、期货资管软件、CTP回测系统 www.kucps.com 图标

量化交易资源

Python量化交易,TICK数据下载,A股交易接口,期货程序化交易,量化交易,CTP回测-量化交易首页 www.coolquant.cn 图标

如果你需要更多python程序化交易框架和工具支持,请访问

http://www.quicklib.cn

如果你需要期货或A股低佣金低手续费开户,请访问 http://www.kaihucn.cn

如果你需要历史行情数据,请访问 http://www.mdshare.cn

如果你需要期货CTP跟单软件,请访问 http://www.kucps.com

python派量化交易社区 http://www.pythonpai.com

编辑于 2019-12-11

文章被以下专栏收录