如果是自己想在本地搞一套专属于自己,更适合自己的量化投资研究系统,那么需要你需要先确定:
一、解决数据来源的问题
当然数据最初的来源就是交易所,量化交易的场内交易数据集,其实就是一帐本,只不过采用电子化记帐的方式,有心的机构将这些数据收集加工处理,并在取得授权的资质条件下进行分发,用作历史行情展示,量化交易计算研究等等。
数据服务商就是这类机构,大型的机构的数据分发质量有所保证,但收费不便宜。好在会提供学生版本或试用版本,这类机构有wind,choice,通联数据等,最近几年因为量化爆火之后,发展起来的,比如Tushrare,JData(聚宽的产品)等等。当然新浪与和讯股票等等老财经门户网站也是可以采用(BA)的,不过需要注意职业操守,网易有听说提供了数据的下载服务,那么历史行情的部份就完美解决了。还有很多适合自己策略的特色数据,就需要开发者自己大开脑洞,进行获取了。
二、确定数据种类与本地化存储的问题
在交易所分发出来的数据,按数据精细程度将行情服务划分为?Level1和Level2?两种服务(自己百科交易所数据服务种类),对我们做量化交易研究者来说,数据的种类最好整齐备,以股票举例来说,除去一些股票的基本信息数据(比如股票代码、所属交易所、曾用名、发行时间等等)以外,还要包含行情数据,财务数据等。
三、搭建回测系统
包含数据可视化的界面,开发者需要深度准确的撰写各类统计指标计算公式。目的就是为了建立一套策略好坏的客观评价体系,为模拟盘或者实盘做准备。
搭建一个回测框架,是我们检验自己开发研究的交易模型是否可行的最小成本检验方式,除因为除去实盘验证,只有通过回测,才可以将一些人为认定为有效的“因子”扔进客观数据集内进行打磨、检验了。
回测框架其实有很多是开源的,新手入坑千万别想着自己闷头搞,浪费时间不说,很多重要的回测框架知识点,你完全可以通过借鉴别人而获得。需要注意的是,自写徒手撸回测框架,一定要至少包含三个部份,回测执行部份,回测报告输出部份,交易模拟部份。
这部份没什么可以说的,主要是通过代码调用股票或者期货市场的品种数据,在某个周期频率bar下,通过自定义的算法,或是模型所规定的运行规则,形成一完整交易信号,包含进场(交易开仓,调仓买入)、出场信号(交易平仓、止盈、止损)
五、进行回测,查看并输出样本报告,进行梯度研究分析
这一部份我主要讲一下,回测报各中会用到的的一些我觉得还比较有意义的统计指标,以及参照分析的原则与意义。
策略收益率:这部份没得说,必须参考,基金经理每年排名拼的也是有这个。
年化收益率:对收益率按照策略的运行时间,进行年化平均。
夏普比率:反应的每承提一个下行风险,可以获得多少个超额收益的部份,这个是一个综合性的参考指标,很多基金运作人士张口谈论的也就是这个指标。
最大回撤值/比率:反应的是极端风险发生时,的最大亏损部份
胜率:这里的一般用作为单笔交易开平的胜率统计用,对一些偏向较高交易频率的策略来说,是比较重要的参考
盈亏比:单一盈亏比一般不单独使用,需要结合交易频率的高低,还有胜率等指标结实合来判定,盈亏比可以反应出投资交易盈利下,所冒的风险。
收益风险比(收益回撤比):这个也是一个用来衡量策略综合表现的指标之一,反映出策略控制风险与获得收益补偿的能力,可以结合最大回撤与年化收益率等指标,综合打分。
IC信息系数:在每一个横截面上的因子数值,与收益率之间的相关系数,反应出相关性强弱。
信息比率:单位风险下所带来的超额收益大小,比率高说明超额收益高。
其它指标等等。
六、对模型进行变量、参数固化,形成有效因子,形成可上线测试的模型
这部份推荐本地化进行,对计算机性能以及自己所开发运算结构的要求较高,还有策略本身的运算结构是否是冗余的,重复无关的,是否笨重占用较大计算机资源的。
还有自身的策略变量参数的寻找,是否是具备智能化处理的方式,不然自己每一个因子部份的参数确定,一大堆指标数据堆在你眼前,你还在手动人为肉眼寻找,我担心你内出血。炒个股交个易而已,为什么要把自己折腾如此。
参数的固化,有效因子的寻求这一系列的过程,在不断更换样本时间截面的做法背景下,我推荐适可而止,国内市场成立年份也有限,应该将自己的策略放在更小的交易周期、更近的交易时间维度上去进行计算,这样的样本数据才足够丰富,也会在实盘时更加有效。但应随时防止过拟合式的计算行为。
七、模拟盘测试
这部份,我不建议自己开发一套模拟交易所市场的仿真交易系统,可以采用一些三方平台的交易环境,只需要将信号给与他们即可,得到你们想要的实时结果即可。
八、实盘测试
这部份更多的是考虑你自己资金的实力,还有对策略保密性、还有策略内容是否需要更高级别的计算资源。
一般来说,我是推荐直接将策略在本地开发完成之后,使用券商自带的PB资管量化系统进行交易的,比如券商QMT迅投系列,恒生系列等等。
大致是这么一个流程!