十一维的风量化投资宽客行

搭建私人量化交易平台,就这么简单!

2017-01-22  本文已影响8558人  点融黑帮

提到量化交易,大家就会想到 FPGA,,微波,高频,纳秒级别延迟,对冲基金这些大名词——并且认为这些高端技术是基金公司的专利,不是普通人能玩的转的事儿。所以,搭建私人量化平台,看起来似乎是不可能的任务。

今天,就让点融黑帮的技术专家,教你用一种简单易行的方法颠覆这个认知。

导语中提到的各种技术是高频交易(HFT)经常采用的,但量化交易不等同于高频交易。交易根据频率来划分的话,可分为:

高频: ticke纳秒级别的 1s级别

中低频:1s~1h级别

超低频:1d~1w 等长线投资

高频交易对延迟,性能和稳定性要求非常高,需要大量的硬件的成本和人工成本,一般只有基金公司才有能力进行高频交易。

硬件上的极高要求,导致个人无法参与高频交易, 但中低频交易对硬件要求就会低很多。个人与基金公司差距主要体现在算法上,普通程序也有能力捕获到这一频度的交易信号。

搭建平台的步骤

如果做过外汇交易的同学应该知道,著名MetaTrade4 (mt4) 交易客户端. Mt4客户端提供一整套交易策略开发框架平台。 支持MQL4语言(语法与C语言类似) ,而且提供了非常丰富的指标,扩展函数。可以很方便地开发交易策略和进行回归测试。在零售外汇领域很多个人交易者或者专业的交易者都使用MT4做自动化交易。MT4有相当活跃的社区,国外有很多论坛讨论和分享MT4 EA程序。但是令人遗憾的是  Mt4 客户端必须配合Meta Qutes服务器使用。所以Mt4 一般只限制在外汇行业使用。

如果想要分析A股,或者比特币,就需要自己搭建一套环境。一般搭建一个量化平台需要这些步骤:

开设证券账户 >开发环境搭建->数据准备 ->交易策略开发->回归测试->模拟交易-> 实盘交易

1开设证券账户

下面介绍几种比较适合个人交易证券品种:

国内A股:怎么开户大家应该都只,目前由于政策的原因,股票交易的第三方接口都关闭。不过历史数据比较容易获取。所以国内股票的量化主要集中在选股和趋势分析。自动交易等明年市场稳定后,应该会重新开放。

期货:商品期货开户门槛比低。股指期货要至少50万资本。期货这一块主要是CTP协议。网上都可以找到java,和python的封装。对开发者真友好。

债券:可转债, 开户资金有要求。

外汇:开户门槛比较低一般50美元起。但需要选择信誉比较好的券商。有一些比较知名的券商比如Oanda 会有提供HTTP api 接口。如家交易者资金有比较大,可以直接到LP 提供商如果,lmax,cfh开户。LP提供会提供FIX交易接口。FIX接口非常适合程序化交易。

美股,期货,期权:IB(interactive broker)账户有提供程序化交易接口,账户最低余额需要1万美元。其它美股券商,如史考特,或者国内的老虎证券,富途对资金没有要求,但都没提供API。

比特币:可以选选择coinbase, bitstamp. 这两个公司总部都是在美国,各方面监管比较严格,所以开户周期比较长。都提供有API.

2开发环境搭建

目前主流的两种平台是,python和R语言。这两个语言有提供回测框架,时间序列分析,统计分析的库。当然也可以使用Java,C++,不过但开发难度要大一些。

Python :目前应该是最普遍的个人量化技术。相关的开源框架相当丰富。比如Panda ,Scipy, numpy, Zipline (Backtest framework ) 。

R:高级算法比较方便,社区比较活跃。

Java ,C++:没有的时间序列操作框架,自己写比较麻烦。

MatLab:算法库比较成熟,但处理大量数据比较麻烦。

3数据准备

国内的股票,有一些服务商提供,比如通联数据,tushare。国外证券数据可以从 xignite.com获取。

还有一些信息,比如新闻,汇率。需要自己写爬虫去抓取。或者通过一些数据提供商去购买。

得这些数据后就可以导入到数据库去。关于数据库的选择,一般使用Mysql ,如果数据量比较大(>100G)可以使用mogodb。一般个人不会这么大数据量。

这些准备看起来很有难度和麻烦的样子。 的确,笔者曾经搭建一个python的初级量化平台,也要花费个3周时间。很多人,特别是非程序员,很有可能在还没开始写代码前就放弃了。不过别着急,我们还是B计划。

数据准备的第2种方式

搭建一个量化平台,需要做一些繁琐的准备工作: 搭建开发环境,准备历史数据。 很多同学心里想 “我只想好好写代码,不想准备这些脏活”。有一些互联网的创业者也看到这个问题。最近今年出现的一些创业公司提供cloud+social量化交易平台,比较出名有: quantopian.com 。Quantopian 操作非常便捷,给你一站式体验。

打开:https://www.quantopian.com/algorithms/

选择:Sample Mean Reversion Algorithm Build  代码注释里有什么这个算法。

执行 Build 然后 BackTest 结果就可以出来。

你可以在2,3分钟内,使用全部美股分钟级别报价数据 测试交易算法。并且给出非常好看的分析报表, 甚至不用注册。此外quantopian上的社区也比较活跃。经常有媒体把quantopian当做互联网创新的案例。

从去年开始国内也逐渐出现一些模仿者  如Ricequant,优矿。国内这些平台都提供了A股数据,对于国内交易者是个好笑。目前国内平台处于起步阶段,还不是很稳定。目前推广比赛比较多。

想试试手的交易者,可以先尝试这些Saas量化平台。不过这些量化平台在,交易品种,数据和算法上都有一定限制。

4交易算法开发

说了这么如何多如果搭建平台,总算开始写代码。说到交易算法,同学玩玩会想到那些高大上的,如机器学习,马尔可夫模型,大数据分析,深度学习,神经网络。这些名称天天被媒体炒作预测。 那么什么样算法比较适合个人交易?

对于普通交易者可以选用简单高效的算法。毕竟个人交易者精力有限。可以尝试从这几方面去探索。

1、将自己操作和想法程序化

三连阳 ,买低价股 或者你听说过什么神奇的操作手法都是用代码测试一遍。毕竟我们都是理科生(talk is cheap ,show me the code).    一般实现起来都比较简单都比较简单。也可以将自己的猜想和经验用代码实现成交易策略。然后使用历史数据进行回测。比如最近比较火的一个帖子。这为同学就只买小盘股。收益率令人吃惊。

2.传统的指标交易

像均线,MACD ,布林带等,蜡烛图理论,RSI, 波浪理论。 这些纯技术分析指标需要在特定的场景才能有作用。大家都听说过海龟趋势,可能都觉挺有道理的。但真实情况如何,可以A股或者外汇数据测试一下。就会发现长期收益率不是特别好。可以去思考那些情况使用那些指标。

3.多因子选股

每个股民都有自己的选股理论,比如有人会看市盈率,换手率,市盈率,行业情况,成交量。 这些筛选因素很简单,但要是从几千股票里去筛选,往往需要大量精力。程序就能特别好解决这些问题。

比较专业的交易者也可以尝试一下高级的算法。比如机器学习,大数据分析等。大数据在金融交易领域应用还是处于开始阶段。从目前信息来看,大数据基金收益的还算不错,比如百度和广发证券合作的 百发指数基金,腾讯和嘉实合作的大数据基金。

5回归测试&模拟交易

如果回测效果不错,收益率,最大回撤率,Sharp值,等指标,都在可接受的范围内容,你肯定就会兴奋急着要上真实交易,甚至开始计划成立私募基金 。

但在真的实盘交易前,还需要做一两个月模拟交易(paper trading) 。很多回测效果很好的策略不一定在模拟交易时候就表现的好。历史数据是固定,回测的时候可以通过不断调整参数,让各项指标趋于完美,有时候会导致算法过度拟合,因为市场总是千变万化,太过意死板的算法是无法适应市场变化。

模拟交易最终效果一般取决于你的程序是否灵活,是否良好的风险和资金管理算法。

总结

有耐心看到这里的人,想必大部分都是程序员。可能最终你写代码不会真的拿去去实盘交易,或者上线后甚至会亏损 。但在实践过程中,可能会花几个小时或者几天去优化和思考那几十行代码。这样的经历会提高你对代码的理解能力思考的深度,而且也是一件很有意思的事情。

本文作者:李国建(点融黑帮),现就职于点融网成都团队Data Team,喜欢研究各种机器学习,爬虫,自动化交易相关的技术。

上一篇下一篇

猜你喜欢

热点阅读