曾经我也是零基础小白,题主想走的路,我已经走过啦~作为一名CFA持证人和管理因子投资的量化策略的投资组合经理,我把这些年积累的干货跟大家分享。
量化投资是金融学的一部分,量化投资(跟量化交易的概念有部分重合)需要进行数据分析,而常见的工具是R或者Python。R正在逐渐被Python代替,如果是零基础的同学,建议直接学Python就可以了。
下面我就再用量化投资中最受欢迎的因子投资为例,搭建一个量化投资的框架,哪里需要数据分析、哪里需要金融学、哪里需要Python的知识,希望大家能在框架中找到它们各自的位置。其中,金融学和数据分析的知识是血肉,Python技能是骨架,没有骨架,再好的血肉也是立不起来。因此,Python的学习贯穿量化投资的过程。
因子投资(Factor Investing),也叫做聪明的贝塔(Smart Beta),是量化投资领域非常受欢迎的重要分支。目前,市场上共有1.8万亿美元的资金投资于因子投资的模型中。因子投资用简单的白话说,就是通过找到决定股票收益高低的“因子(因素)”来进行投资。搭建一个因子投资的模型,需要完成以下流程:收集数据——数据分析——模型训练——检验回测业绩——调整模型。
一、收集数据
目前股票市场上提供财务数据的数据库有很多,但最常用的,是针对A股市场的Wind数据库和针对美股市场的Bloomberg数据库。如果我们分析某只股票,可以通过登陆Wind或者Bloomberg终端进行信息检索和数据收集,但量化投资需要海量的财务数据,通过终端查询不可能实现,通过Excel表格的插件,也费事费力。最有效率的获取数据方法,是通过数据库的Python插件。
以Wind为例,在Python中输入以下代码:
import pandas as pd
from WindPy import w
w.start()
使用Python获取数据库的数据比Excel省事很多,不仅速度快,数据分析时也不用再读取Excel文件了。这里的免费课程覆盖了Python的重要语法,在通过案例学习语法的过程中,自然而然的会学习金融、数据分析的知识。大家先领取,再往下看文章。
Python 量化技能入门必备👉语法入门+四大实战案例
¥0.00立即领取
二、数据分析
拿到财务数据后,我们要做的第一步就是进行数据清理,其中包括了缺失值处理、极值处理、数据转换、数据可视化。这些步骤需要处理大量的数据,Python会让我们事半功倍。
1,缺失值处理。 缺失的数据会影响模型的准确度,如果一个指标的缺失数据达到了20%以上,我们就要考虑是否应该将该指标排除在外。比如,我们想要通过学生的模拟考试成绩预测高考成绩,但一半的学生都没有参加模拟考,那还怎么预测呢?一般情况下,缺失值不是太多,我们会替换成平均数或者中位数。
2,极值处理。 极值顾名思义,就是指特别大或者特别小的数,这个数混在数据里,会影响我们对数据情况的判断。比如,一个小公司的员工都只领几千块钱的薪水,而CEO领几千万元的薪水,公司的平均薪资都达到十几万了,显然,平均数不能正确反映员工的工资水平,这时,CEO的薪水就应该作为极值被排除在外。量化投资中,最常用的极值处理方法是Winsorization,这在Python中也很容易实现。
3,数据转换。 我们分析数据的目的,是要获取数据中隐藏的信息,这个过程就像破案一样,要抽丝剥茧。很多时候,数据要符合一定的样子才能吐露信息,比如在线性回归模型中,自变量应该服从正态分布。这时候,我们需要将原始数据变成期望中的样子,这个过程就叫做数据转换。量化投资中,我们会将数据标准化、正态化、取Log等等。
4,数据可视化。 “A picture is like a thousand words",一图顶万言。画图能帮助我们更好的了解手中的数据。Python在数据可视化这方面比R更加灵活、领先,比如Clustering的可视化,关于分布的Histogram图片。
从使用者的角度,Python的语言更直白,图片更好看。如果大家向领导汇报,相信Python会比R更能让领导“赏心悦目”。
三、模型训练
量化投资的模型可以分成两大类:回归类(regression)和分类类(classification) 。这两类都是监督学习的模型,最常见的回归模型就是线性回归,也就是多元一次方程式;最常见的分类模型就是二叉树模型。
因子投资的基础模型是线性回归,我们将收集到的时间序列数据或者横截面数据代入线性回归模型中。
ExpectedReturn=Alpha+Beta1∗Factor1Value+Beta2∗Factor2Value+…Betan∗FactornValue+errorterm
当因子太多,也就是线性回归模型中的自变量太多时,自变量之间可能存在相关关系,互相影响从而降低模型的准确度。这时,我们可以用脊回归模型或者LASSO来进行自变量的权重调整或挑选。这些模型都可以用Python相应的Package完成。
线性回归模型简单且强大。但实际上,市场中很多因素对股价的影响并不是线性的,我们如何能找到非线性的模型呢?答案就是决策树。随着技术的发展,更聪明的模型被引入到量化投资中,除了简单的回归,我们还可以将模型设计成决策树或者神经网络。决策树算法采用树形结构,使用层层推理来实现最终的分类。决策树又叫二叉树,是因为每个推理节点,都会分成“是”和“否”两个分支。比如,银行决定是否向个人发放贷款,简单的决策树模型如下图。
简单的决策树模型虽然没有线性的强制假设,但也不能代表股票市场真实发生的情况,,我们可以将模型变为Random Forest(Bagging)或者Boosting。
但有的时候,市场不是只有“是”和“否”两个答案。如果再引入更加聪明的模型,我们可以用神经网络模型(nerual network)。神经网络是模拟人类大脑处理信息方式的简化模型,它通过模拟大脑的多层感知,对输入信息的反馈过程决进行隐藏层,每个信息对最终预测结果的影响都是多元化的。
这些模型的搭建工具是Python,各个模型对应的Package都可以在网上搜索到。
四、检测回测业绩和调整模型
当我们训练出一个模型后,需要用真实的历史数据检测该模型在历史上是否有效。回测结果非常重要,如果回测结果不好,那这个模型基本要被推翻重建;如果回测结果好,我们也不能掉以轻心,因为回测的结果好,不代表现在用着也好。有很多模型放到真实世界里就失效了。要搭建一个有效的量化投资模型,需要我们不停的检测、调整。
检测模型是否有效,还需要分析一些统计学指标,比如R Square,T-Statistic。我们还可以用一些统计学方法来检测每个自变量(我们向模型输入的能影响股票价格的指标)的重要性,从而决定是否要放弃某些指标,或者寻找其他类似指标。如果是回归模型,可以使用Stepwise Selection,如果是决策树模型,可以使用Feature Selection方法。
工欲善其事,必先利其器。Python等编程语言是量化投资的工具,如果不会使用工具,再好的策略也只是纸上谈兵,落不到实处。因此,掌握Python是量化投资的基础,下面的课程会系统的帮助我们了解Python在量化投资中的应用,最重要的是,它免费,感兴趣的朋友赶紧薅羊毛薅起来吧!
结语
当然,好的模型不仅在于“型”,更在于输入的数据是什么。如果我们对股票市场缺乏了解,不知道什么因素能影响股票的价格,那么再好的模型也无法预测未来的股票收益,因为你让模型吃进去的全是噪音数据,模型无法提取到信息,正所谓“Garbage In,Garbage Out”。金融知识在这里就展示出了它的重要性。量化投资的重点仍然在“投资”,量化只是实现投资的方式,领域知识非常重要。毕竟,我们的目标是成为会写程序的投资者,而不是只会写程序的门外汉。
如果你对Python感兴趣的话,可以试试我整理的这份Python全套学习资料,微信扫描下方二维码免费领取
包括:Python永久使用安装包、Python web开发,Python,Python数据分析,人工智能、机器学习等学习教程。带你从零基础系统性的学好Python!
零基础Python学习资源介绍
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python学习软件
工欲善其事,必先利其器。学习Python常用的开发软件都在这里了!
三、Python入门学习视频
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
四、Python练习题
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
五、Python实战案例
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。这份资料也包含在内的哈~
六、Python面试资料
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
七、资料领取
上述完整版Python全套学习资料已经上传CSDN官方,需要的小伙伴可自行微信扫描下方CSDN官方认证二维码输入“领取资料”免费领取!!