Matlab量化投资
- 格式:docx
- 大小:978.43 KB
- 文档页数:17
/thread-28489-1-1.html
我不是牛人,谈量化投资,牛人有很多,我这里仅仅想把自己的一点心得和大家分享一下,量化投资的概念很宽泛,从投资标的来分类,涉及到期货、期权、股票、外汇等的量化投资方法和理念,我在主要讨论期货的量化投资,范围再小一点是关于期货的程序化交易的一些方法和理念,后期会讨论一些股票alpha的东西,关于期权和外汇我个人实战经验少,相关东西暂且不做讨论。
如果从数学角度来看,一个交易系统仅仅是一个从行情序列到资金曲线的映射:
f(ts,para) = equity
其中f是一个交易系统,ts是某一个投资标的的行情时间序列,para是交易系统的参数组,equity是资金曲线。如果f可以解析表达,那么可以使用泛函的东西,直接来研究f的一些性质,包括其连续性、稳健性、对参数的敏感性等一些性质,也可以使用控制论的东西来研究这个系统的鲁棒性。
通过对资金曲线equity的一些再处理,可以得到一些评价指标(年化收益率、年化夏普比率、最大回撤等等),通过这些指标,可以从一定角度来窥探这个交易系统的性能。
之所以将交易系统使用数学抽象表达出来,一则是这样来看待问题更加清晰和明了化;二则也尝试将交易系统的一些问题进行公理化的方式解决,包括最主要的参数选择问题,包括某一具体交易系统与随机交易系统的对比和统计检验问题,后面你回发现采用数学描述来看待这些问题会别有一番洞天。
我时常在想复杂的数学工具在量化投资领域的实战中到底有没有用?在军工和航天领域复杂的数学工具肯定是有实战的用武之地的,金融这个系统的复杂性肯定不会比军工和航天低,照这个逻辑推是复杂的数学工具在量化投资实战中会有一定作用,但金融与军工和航天领域的最大差别是,金融中有人的参与,导致其未知因素和噪声的不可控性大大加大,而军工和航天领域其噪声虽然也是随机的但大体是可控和可估计的。也不知道西蒙斯的量化团队都用了哪些数学工具?
《基于Matlab的量化投资》这个系列帖子除了讨论量化投资的方法和理念,还会讨论Matlab这个工具的一些实用问题,之所以采用Matlab来做量化投资而没用采用MC,TB,MT4,天软等其他量化(程序化)平台,一是因为自己用Matlab也7年左右比较熟悉;二是自己使用Matlab来建立量化回测平台,我可以很容易掌控自己的平台的每一个细节(包括资金流的计算、图形的展示、评价指标的计算等等),虽然建立回测平台框架的过程可能会花费一些时间,但一旦整个框架建立起来,日后的使用将会非常方便;三是使用Matlab 建立金融模型其周期会比C快很多。
随后的内容可能会讨论的东西很多很杂,我争取做到让整体的逻辑清晰一些,这一段也太忙,没有太多时间来理清《基于Matlab的量化投资》系列帖子的逻辑思路,每天就在上班路上的地铁上思考一下大致该写那些东西,毕竟要认真写一个东西需要将其思路理清,否则还不如不写。
2.从一个例子说起-基于Matlab的量化投资
/thread-28490-1-1.html
太多虚的和理论的东西先不说,先上一个实例,后面的一些测试和讨论可能大多数会拿这个做例子来说明。
测试策略:FRB(Faruto’s Range Breaker)
策略类型:日内策略,趋势类策略
策略简介:突破某一区间入场、尾盘固定时间离场、固定比例止损、每日至多交易1次。
测试品种:IF、CU。
测试周期:1分钟。
测试手续费:采用2012年6月1日起四大交易所手续费新标准的1.5倍,比如IF最新手续费为0.35%%,则测试手续费为0.35%%*1.5=0.525%%。
测试冲击成本:采用绝对形式,IF买卖共1.5跳(slip),其他品种1跳(slip),实际操作时在买时加入冲击成本,卖时无冲击成本,比如IF在测试时在入场点加入1.5跳冲击成本,离场点无冲击成本。
参数设置:参数共两个,一个和生成区间中轴相关,另一个是中轴加减的幅度来生成上下轴,暂且不进行参数寻优,使用经验参数固定下来在IF、CU做测试。
其他说明:使用固定1手进行测试。
IF测试结果评价指标:
3.关于BackTesting中一些细节的思考-基于Matlab的量化投资
/thread-28573-1-1.html
在<从一个例子说起-基于Matlab的量化投资>这篇文章中,我介绍了FRB策略在IF、CU、AL上使用经验固定参数的测试结果,我们看到FRB策略在IF、CU、AL上都是正收益的一个系统,但是资金曲线并不完美有好有怀,直观感觉FRB对于固定品种调整适当参数后其效果会变好,更多关于参数寻优调整和策略通用性的讨论放在后面文章进行,这里先来讨论一些关于回测(BackTesting)中的一些细节问题。
回测的目的:尽可能的真实地还原实际交易过程!以期检测策略的表现。
首先需要明确回测的目的是什么,这样做回测才有意义。回测的目的就是真实地还原实际的交易过程,来检查相关策略在历史行情的表现,下面关于回测中的一些细节问题讨论,我会时刻围绕这个目的来进行讨论,因为只有明确这个目的,讨论才有意义。
回测标的的选取
由于期货是有交割的,所以相应的品种的数据并不连续,这就涉及到一个问题,我们进行回测时选取什么回测标的?可以有N种定义方法将相关的期货合约品种连接起来,但那种是在某种意义上最合理的呢?回想回测的目的(尽可能的真实地还原实际交易过程!),实际交易中的你我是怎么进行的?
我想对于单边趋势类策略大家肯定会在相关品种的主力合约上进行交易,对于其他类型策略(震荡类、对冲类)可能大家会有其他选择,这里单就单边趋势类策略而言。
这里有个问题,“主力合约”怎么定义?可以定义成交量*持仓量最大的为主力合约或者其他你认为合理的定义,目的是找出你心中的“主力合约”(活跃合约)。
有了主力合约的定义,那么回到回测标的的选取就有了答案,那就用主力连续合约进行回测即可,这样就能真实的反应实际交易过程,主力连续合约的构造按照主力合约的定义给出即可: