我的圈子里大部分都是IT小白,很多朋友已经通过了CFA/FRM,对于经典的金融知识烂熟于胸,马科维茨、威廉夏普、布莱克、斯科尔斯、莫顿简直像自己家亲戚一样熟悉。但是一提到量化投资,大部分人的反应都是空白。
知乎上关于量化投资有个关注量非常大的话题“学习量化交易如何入门?”,我读了大部分答案,特别是高票回答,基本上都是在推荐金融入门的一些书籍。可能是因为现在大部分做量化的都是有计算机和数学基础的,那么如果是有金融基础,但是完全不懂编程,应该怎样入门量化呢?
其实最主要的就是要学编程,虽然有些人可能觉得量化最重要的是策略是思想,有策略了交给下面小弟去回测不就好了吗?但是你都有牛逼的策略了,如果让一种工具拖了后腿,那是万万不能的。而且策略是在不断回测和试验中慢慢完善的,不可能一下子就想出盈利能力非常强的策略。所以编程一定要学,这样就可以有想法了就去试验一下,积少成多,肯定会想到非常好的策略的。
为什么选Python?
首先第一件事情就是要选择一种编程语言,其实很多语言都能够实现,当然作为小白,最好选择一种入门非常简单,目前应用较多(也就意味着有很多共享资料)的语言。其中最好用的是MATLAB和Python,MATLAB的开发者自己就会提供很多现成的代码,也就是说你要实现一些功能,根本不用自己写代码,想逻辑,去MATLAB的官网上直接就能找到。
比如你要根据马科维茨的理论画有效前沿,这段代码在MATLAB网站上直接就可以找到(这种优良品质我们叫做开源),开源的好处就是对于编程小白来讲上手较快,容易有成就感,那么也就更加能够坚持下去。
但是MATLAB也有一些明显的缺点:
-首先,MATLAB程序很大,普通配置的电脑运行起来是很吃力的;
-其次,MATLAB正版死贵(当然,可能在天朝这一点并不是问题,但是还是要呼吁大家拒绝盗版!);
-最后,MATLAB的语言较Python会相对复杂一点,尤其是现在Python有不断改良的库,比如有做数据处理和数据分析非常方便的numpy和pandas,有画图非常方便的matplotlib,还有可以提供数据的tushare,可以分解语句做舆情分析比较方便的jieba,使得Python应用起来越来越简便。
很多高级语言都会宣称自己是简单的、入门容易的,并且具有普适性,但真正能做到这些的,只有Python。而且Python应用于量化投资领域是现在的一个趋势,大家可以很方便的在一些网站上找到别人写的代码,如果你想实现一个功能,但是又百思不得其解的时候,在网上搜一搜,大部分情况下都会得到解答的。所以它是真正开放的,有很多可爱的开发者(为开放社区做贡献的人),将常用的功能做好了放在网上,谁都可以拿过来使用。这就是Python。
还有一张图看懂各种语言的难易程度:
进入Python
凡事都有个开始,现在我们进入Python的学习。由于是以文章的形式给大家展示,所以在此我只是教给大家一个学习方法,具体的语言以及应用就不过多介绍,如果想更快速可以入门的话,请关注我们微信服务号:品职学院,后面我们会推出用Python做量化投资的金融小课。现在已经开放的课程有李斯克的财务建模课程,可以先去听听。
第一步:安装Python
任何一种高级语言都需要一个自己的编程环境,这就好比写字一样,需要有纸和笔。如果要用Python来写程序,那么首先就要安装Python。所需要安装的东西在这个页面:www.python.org/downloads/。
注意,在下载页面里面,你会发现有两个版本可以下载:Python 3.x.x和Python 2.7.x。很多人不假思索直接下载Python 3,因为大家都有一个简单的想法,肯定版本越高越好。其实Python 2和Python 3某种程度上是相互独立的,并不是Python 2就是老的东西,事实上,Python 2也在一直更新。
当然Python 3是未来,它比Python 2有进步,但是现在还有一些东西没有完全兼容Python 3,Python 3和Python 2的代码是有一丢丢区别的,而且目前很多书和网上的代码更多的是以Python 2为基础来写的,所以我建议大家可以下载Python 2,以后在阅读别人代码的时候也会没有障碍。但事实上,大家不要纠结于到底学哪个,其实区别并没有那么大,只要你学会了一个,网上搜一搜二者的区别,将来转为Python 3是很轻松的。
大家下载完Python之后,进入到交互模式,会发现真的很丑。伟大的程序员是不会允许自己用如此简陋的工具来写旷世代码的。所以程序员会为自己打造好用的工具,这个工具就是IDE(集成开发环境),至少能长得好看点,毕竟每天在电脑前搬砖还是要有点美感的。
(Python交互模式下的显示)
另外,光安装Python还不够,Python之所以在金融数据分析中如此流行,其实主要靠的是它有越来越完善的库,比如numpy、pandas、matplotlib等,这些库大家也要安装了才够我们使用。
那么如何解决这些问题呢?这时候又要感谢做好事的人们,有人将科学计算所需要的模块都编译好,然后打包以发行版的形式供用户使用,其中我觉得比较好用的,大家推荐较多的是Canopy 和Anaconda。
我自己倾向于使用anaconda,因为用于讲课比较方便,大家可以把anaconda看成Python的一个集成安装,安装它后就默认安装了python、IPython、集成开发环境和众多的包和模块。Canopy也可以,canopy的好处在于安装各种库的时候更加简单,因为它专门有一个package manager,鼠标点一点就可以直接安装库,非常“小白”。Canopy 和Anaconda大家可以任选一个进行安装。
进入Canopy的主界面
接下来就可以正式进行编程啦!
本期互动:
下周二的文章还会介绍进入Python的第二步、第三步、第四步,那么我们本周为大家布置一个作业,就是先下载Python并安装。此外下周我会介绍大家两本入门的书,作为和大家的互动,大家可以猜猜是哪两本书,最快答对两本书书名的3个粉丝(每人一次猜的机会),我们将免费为你开通第一期量化课程(听课时限:一个月)。
系列文章:
P Quant 和 Q Quant 到底哪个是未来?|品职量化研究所