1 前言
本篇内容主要是2013年为一个朋友写的,除了当时发给朋友看,还未公开放出来过,后来居然忘记写过这么个东西,2014年(相对时点是今年)偶然一次机会和朋友聊天,朋友提起这篇文章,才恍惚间记起,然后搜索自己的电脑和硬盘,居然找不到这篇文章,后来查看邮件记录才在2013年发给朋友的邮件的附件里找到。
现在之所以把这篇文章放出来,是想帮助想走量化这条道路的朋友能有一个大致的思路进行学习。希望帮助到有缘人。
量化投资是个庞大的领域,设计到的东西也非常多,当然在量化投资领域我也仅仅是个菜鸟,本文权当我个人的量化学习之路的阶段性总结,本文我没抽出大块时间思考整体文章架构,仅仓促写成,可能下文的子章节分类逻辑性也并不是很清楚,望您见谅。
这里要特别说明的是,本篇内容可能部分内容是在不同的时段写成,可能会出现一些前后逻辑不统一抑或矛盾的地方,每个人在人生的不同时点思考的深度和广度会不同,可能会否定自己以前一些观念甚至否定自己以前坚信的东西,其实人生就是一个不断思考、不断否定自我的过程,期望在这样的一个过程中能提升自我,洞穿一些东西。
2 自我学习篇
量化投资的提升过程是个辛苦的过程,需要你不断的努力思考,需要你具有快速学习能力,世间的事大抵都是这样:没有付出就没有收获,但付出了不一定有收获。在自我学习篇中,我会列出我看过的一些书籍和相关资料及其他一些需要学习的东西,下面列出的自我学习篇的东西不是胡乱堆砌,是我个人所看过的东西的过滤和再整理,希望能帮您更快的提升。
2.1 纸质书籍
《高频交易》谈效俊等译
《打开高频交易的黑箱》谈效俊等译
《统计套利》陈雄兵" 张海珊等译
《专业投机原理》
《" 股票 做手回忆录》
海龟法则相关书籍
当然好的书籍还有很多很多,未来我再慢慢更新上面的list,这里不可能把所有的都列出来。纸质书籍(电子书籍)需要经常阅读提升自我,也就是我们不断的学习新东西,并要在阶段性的快速学习东西。
2.2 论坛资源
http://www.matlabsky.com/forum-92-1.html
海洋部落(OceanTribe.org)
http://www.hylt.net/vb/
http://www.newsmth.net/nForum/#!board/ProgramTrading
http://bbs.pinggu.org/forum-2166-1.html
2.3 量化平台掌握
TB、MC、金字塔、易盛等平台
以上平台比较类似,建议定要熟练掌握一个平台的使用,由于TB用户数比较多,建议熟练
掌握TB,然后在慢慢熟悉其他平台。
MATLAB、R、SAS等平台语言
根据个人情况建议熟练掌握使用MATLAB,然后在慢慢熟悉其他平台。
C/C++,JAVA,Python等语言
至少熟悉一种语言,或虽不经常用但在短时间内能拣起来。
3 模型研发篇
下面以投资标的分类,进行模型研发的过程梳理,我个人对于" 期货最熟悉,着重以期货为主,其他在未来在慢慢完善。下面关于模型研发的一些思路想法仅仅是我个人的一些想法,你可以不同意我的观点也可以保留意见互相讨论,其实投资的东西往往都是比较个人的(团队的),每个人(每个团队)的投资理念和想法都有或多或少的差别。
3.1 期货
模型的研发大思想:大道至简。简单的东西才有生命力,但要重点说明的是这里的“简单”是指模型背后的逻辑简单,并不是指模型本身简单,模型本身可以是简单的均线模型,模型本身也可以是复杂模型(复杂到有很多参数),但模型背后的逻辑要简单,和一些团队交流,有些人认为的“简单”是模型本身也要简单,甚至直接用模型的参数来衡量模型简单与否,认为模型参数过多的模型不靠谱,对于这方面,我个人保留意见。
3.1.1 熟悉常见技术指标
技术指标存在这么多年,而且一直存在,存在的就是正确的,刚接触量化的朋友,有精力的话可以自己把所有常见技术指标实现一下,并按照指标的常见用法编写一些日内和隔夜的策略,熟悉了常见技术指标(包括指标公式、参数范围、常见用法等等),未来在编写大策略时用起这些指标你会更加得心应手,因为未来编写大策略时,有时候某一指标可能仅仅是入场或出场的条件的一个小过滤。
熟悉了常见技术指标你也会发现,所有的指标的源头几乎都是均线,基本都是由均线变种而来,所有我一直说均线是好东西,是有长久生命力的东西,一个大的投资组合均线一定不能缺少,因为当" 行情来了,均线系统是一定能捕捉到的。
其他均线的本质一个投资标的的定价过程,也是行为金融学的一个客观反映。
3.1.2 编写常见经典的模型
通道类、突破类、海龟类等等这些经典模型,建议都亲手编写体会一下,因为这些策略都是好策略,如果你品种选择和行情轮动的把握做的好,那么经典模型+品种选择+行情节奏把握就能让你在市场上立于不败之地。
这里以开盘区间突破策略为例来说明如何最大限度的发挥主观能动性进行策略研发和思考。
策略内容:利用开盘价加减某一幅度生成上下区间,突破上区间做多,突破下区间做空,尾盘平仓。比如Open*(1+1%)生成区间上沿,Open*(1-1%)生成区间下沿,突破上区间做多,突破下区间做空,不设止盈止损,尾盘15点10分平仓(如果投递标的是IF)
就是这么一个简单的策略,你在IF上1function(iterator) { var result; this.each(function(value, index) { value = (iterator || Prototype.K)(value, index); if (result == undefined || value result) result = value; }); return result; },3function(iterator) { var result; this.each(function(value, index) { value = (iterator || Prototype.K)(value, index); if (result == undefined || value result) result = value; }); return result; },5function(iterator) { var result; this.each(function(value, index) { value = (iterator || Prototype.K)(value, index); if (result == undefined || value result) result = value; }); return result; }等周期上测试会是正收益曲线,模型背后的逻辑就是关键价位,某些关键价位的突破会带来一波行情的启动(也可能仅仅是假突破,这是后期的模型优化改进方向之一)。
针对这个简单的策略,就有好多东西可以思考和改进。
(1)区间上下沿的确定方式
这里区间上下沿的确定方式是开盘价加减某一幅度,那么用数学表示就是
UpperBand= Open*(1+Percent) = Open + Open*Percent
LowerBand= Open*(1-Percent) = Open - Open*Percent
即想要生成区间上下沿,我们需要一个基准价格Benchmark(上面的基准价格为开盘价Open),还需要一个幅度Range(上面的幅度是Open*Percent),那么可以改写上面的区间上下沿定义
UpperBand= Benchmark + Range
LowerBand= Benchmark – Range
那么针对基准价格Benchmark和幅度Range,我们就可以做很多文章了:
比如对于基准价格Benchmark我们可以不单单利用单日信息生成,也可以利用前N日的价量来生成;
比如对于幅度Range,我们可以并不仅仅给其设定成一个不变的书,幅度Range的本质反应的是投资标的(比如IF)的当日波动率的一个估计,那么就可以结合ATR或者其他指标模型来利用前N日的信息来估计当日的幅度Range;
比如对于上下沿的基准价格Benchmark和幅度Range我们使用两种方法分别估计,这样多空的入场就是不对称的。
等等等等,希望你是一个愿意思考的人。
尝试加入各种止盈止损方式,比如动态止盈,固定比例止盈,跟踪止损、固定比例止损等等,会改变资金流,这样你也能熟悉了解各种止盈止损,这种了解不是仅仅是“想”,而是通过具体回测可以在你头脑中具象化的了解。
(3)隔夜策略的改进
上面的模型仅仅是个日内模型,通过上面的各种改进和改良,你会发现无论怎么改进和优化,在股指上测试,模型的某些表现指标都有一些限制(比如收益、比如回撤),这是模型本身类型的限制(日内策略、趋势策略)引起的,如果想突破这些限制,你可以尝试将该日内策略改成隔夜波段或者隔夜长线类策略。
上面所有的思考和改进都需要进行回测,用" 数据说话,并且整个的改进过程会加深你对于这个模型或者类似模型的理解,在模型改进中你也许会细致观察投资标的(比如IF)在某一个时间段内的表现,这样又能加深你对行情的理解。
上面所有的改进方法用语言描述都很少,但其实实际做起来脑力和体力的工作量都是不少的,但当你把整个过程做下来之后,你会发现整个过程中你的收获会是很大的。
上面仅仅说了单品种的模型建立和改良测试,对于两个品种(多品种)的模型建立和测
试还未涉及,多品种的模型(套利模型,强弱对冲模型)可能涉及到的东西更多一些,未来再慢慢来。
3.1.3 贴近交易本质编写模型
这一部分可能需要实盘的实战来提升和理解。
3.2 期权
期权这一块的东西,可能涉及到以下几个方面:
期权定价模型梳理
期权的波动率交易模型
期权做市商模型
基于期权的趋势跟随的量化策略(使用期货或" 现货发出趋势信号,映射期权进行操作)
期权产品设计(场外衍生品设计)
3.3 股票
待完成……Alpha
3.4 外汇
待完成……高杠杆
4 实盘实战篇
实盘实战才最能提升自我,量化投资的最终目的是“投资”,而不是天天回测,回测的再好,实盘没用也白费。
初始模型的选择、初始交易品种的选择。
投资杠杆的设定。
待完成……
5 杂篇
5.1 如果想用MATLAB做金融工程,路该怎么走?
2011年在我们的论坛(MATLAB技术论坛http://www.matlabsky.com)有个TX发了一个关于未来发展道路的疑惑的帖子,原帖地址:
想用matlab做金融工程,路该怎么走![看回复中的讨论]
http://www.matlabsky.com/thread-21482-1-1.html
帖子内容:
“本人普通学生一个,管理专业,平时做评价以及数理统计多,但是,我想去银行或者证券公司工作,希望学习金融工程。请教各位论坛大神:
1.请问工具是matlab好不好,有没有更好的推荐?!
2.请问,应该看哪些书,可不可以给我一个按顺序排列的书目列表!?
3.由于还有一年半毕业,希望有经验高人为我指一条明路!”
我当时给他的一些回复和建议如下:
Q: 请问工具是matlab好不好,有没有更好的推荐?!
A:MATLAB非常好。弄金融工程相关的MATLAB是必须的。
其他数学软件lingo,function(iterator) { var results = []; this.each(function(value, index) { results.push((iterator || Prototype.K)(value, index)); }); return results; }le,eviews,mathematica,SAS,SPSS。。。(以上这些当年我都用过,现在我只用matlab),能做到的matlab都能做到,而且能做的更好。
Q: 请问,应该看哪些书,可不可以给我一个按顺序排列的书目列表!?
A: 要看的书很多。
matlab相关:N多。你搜索论坛找一些经典的看看。
金融相关:N多。但基本重要的一定要看。比如:
国外:John Hull 的《期权期货和其他衍生品》还有Frank J. Fabozzi(弗兰克 J.法博齐)的一系列书籍等等。
国内:也一堆
Q:由于还有一年半毕业,希望有经验高人为我指一条明路!
A:
学好数学+用好MATLAB和C(C++)语言+考取一些金融相关资格证+去相关金融口进行实行。
学好数学:数学是王道,理工类领域高级阶段都要用到数学。金融口相关课程必须要学的:随机过程、高等数理统计、时序分析、概率论、矩阵论、数值计算、泛函分析。。。等等。
用好MATLAB和C(C++)语言:MATLAB是金融工程仿真计算必要用到的。 C(C++)语言可能在最终上线相关程序化产品会用到。
考取一些金融相关资格证:证券从业资格考试(5门考试:基础、交易、分析、基金、承销);期货从业资格考试(3门考试:基础、" 法律、分析);银行从业(5门考试);
统计师;经济师;
CIIA;CFA;FRM (这几门考试都很贵,可以先考前面的)
去相关金融口进行实行:实习很重要。可以将学到的东西进行实践锻炼(找证券、期货、基金银行的金融工程部、研发部、投研部进行实习)
期货相关:程序化交易、高频交易相关的想学习的话可以多学习一下。这是往后的大趋势
以上内容是我在2011年回复他的,我原封不动的贴了过来,可能有些观点并不严谨,见仁见智,但希望能帮助到那些有类似疑问的TX。