多因子模型matlab,【干货】不可不知的N种量化策略模型——量化因子
原标题:【干货】不可不知的N种量化策略模型——量化因子
大家还记得上一个策略么?没错,就是用到了风控因子的动量反转优化策略。而我们今天要扒的,则是风控因子的好基友量化因子(不要问我为什么基友辣么多,我也不知道)!
量化引子
1
理论背景
故事要追溯到1952年,那是一个春天,有一位老人,在中国的南海边,咳咳咳咳,抱歉,不小心串词了,事实是这样的:
没错,正是由于这几位大神的杰出贡献,我们得到了量化因子的前身,APT模型,但是,这个模型并没有告诉我们应该如何确定因素。
因此,后面就衍生出了可以确定因素的多因子定价模型。
2
多因子定价模型
多因子定价模型认为每一只股票的预期超额收益是由股票的因子头寸决定的,预期超额收益和股票因子头寸之间的联系由公式(1)给出。对于每一个因子,都存在一个因子回报预测值,而股票的预期超额收益就等于所有的因子头寸与因子预测的乘积之和。
啥意思呢?
意思就是证券价格并不只是取决在证券的风险上,还会受到投资预期收入、未来投资机会等其他因素的影响。我们把这些影响因素归纳为一个个因子。多因子模型其实就告诉了我们因子和收益率之间的关联性。
3
量化因子
随着定价模型研究的不断深入,因子也不断扩展。从基本面因子扩展到技术因子,再扩展到分析师预测的因子。随着近年来技术的不断进步以及金融数据的不断创新,市场有效性的不断增强,基于高频数据的因子也应运而生。
此外,市场有效性只是一种假说。小规模效应、反转效应、动量效应、P/E效应以及P/B效应,在挑战市场有效性的同时,也给量化投资提供了机会。这些效应也可以提炼成量化因子。由此可以看到,量化因子是构建投资策略的关键点。
证券的数量随着时间的推移会变得越来越多,趋于无限,而因子的数量却是有限的。因此,我们可以把对无限证券的研究,转移到对有限因子的研究上来,这不仅可以减轻我们的工作量,还可以使得监控全市场证券的投资机会从不可能变为可能。这也就是为什么量化因子在国外那么火的原因啦~
4
国泰安量化因子数据库
这次小编所使用的量化因子来源于国泰安量化因子数据库,其包含的量化因子指标针对中国证券市场所有A股股票,一共9大类,共206个因子。
扒完了量化因子是什么,下面就让我们进入具体的策略环节。
首先,先向大家介绍一下应用多因子模型选股的两种常用方法。
1、回归法:使用股票过去的收益率对多因子进行回归,得到一个回归方程,再把最新的因子值带入回归方程得到一个对未来股票收益的预判,以此为依据进行选股。
2、打分法:根据各个因子值进行排序,将其在所有股票因子值的相对位置给予该个股一个分数,再对个股的所有因子值进行加权平均得到该股票的最终得分。最后将所有个股的综合得分进行排序,挑选出分数较高的股票。
一般来说,打分法相对较直观、稳健,不容易受到极端值的影响,但因各个因子的权重需要人为设定,因此主观性也较强烈。
这次小编要跟大家介绍的就是采用打分法的策略啦。
多因子打分法策略
1
如何进行打分
小编采用以下原则构造打分方法:
同质上的因子服从加法原理,不同质上的因子服从乘法原理,加法原理中子类的作用力不受其他子类影响,而乘法原理中子类的作用力依赖其他子类来实现。
基本面因子、技术因子、行为引子和分析师预测因子作为四个因子大类,其内的子因子服从加法原理,而四个因子大类之间服从乘法原理,公式如下:
2
策略简介
这次小编使用的打分法策略,订阅了沪深300成分股。使用了日收盘价以及国泰安量化因子数据库中的13个因子。利用过去一天内的有效因子作为决策依据,每五天进行一次交易。
你问我这些因子是怎么选出来的?当然是有方法的啦。
3
如何选择因子
市场上用于股票分析的因子可谓成千上百,但并非所有因子对股票的影响都是显著的,为了简化研究成本,先筛选出目前国内外发现的较为有效的四类因子:基本面因子(规模因子、估值因子、成长因子、盈利因子、偿债能力因子)、技术因子(动量因子、换手因子)、行为因子和市场预测因子共计27项子因子作为候选因子进行研究。
为了判断因子的有效性,小编通过买入因子看好的股票组合,卖出因子不看好的股票组合的方式进行判断。如果因子对收益率的影响是有效地,那么组合收益应是显著的,因此可以利用Sharpe比率进行有效因子的筛选。
1、 以沪深300成分股作为研究对象,时间段选取13年1月到6月,利用每个因子进行选股,同时买入因子看多的前百分之二十作为股票组合,卖出因子看空的前百分之二十的股票组合,跟踪收益情况。
2、根据每个因子选股的收益情况,可达到两个目的:
(1)判断因子属于正向因子还是负向因子;
(2)基于收益的Sharpe比率判断因子选股是否有效;
3、通过分析判断,精选出Sharpe比率大于0.5的13个因子进行多因子深度分析。
通过这种方式,我们就可以选出有效的因子啦~
从哪里能获取这些因子?当然是通过小编最爱的Quantrader啦~
不仅是量化因子,小编所使用的数据、策略回测、交易等等都是来自于Quantrader!有了Quantrader,数据不用愁! 再搭配小编所使用的策略编写环境Matlab,不管多复杂的原理,通通只要一行代码全部搞定,选个因子不能再容易了~So easy!
说了这么多,流程图还是照例要放上来的。
看完了流程图,下面就让小编带领大家进入策略源代码环节。
4
小编的这个策略每五天会调仓一次,根据之前提到的订阅的交易代码和数据,使用Quantrader可以直接配置如下:
5
准备好数据后,就可以开始码代码啦。
1、 将同质的因子相加,得到同质因子分数的总和后再将不同质的因子相乘,得到个股的总得分。
将得分里面最高的10%抓出来买入,最差的那10%做空。
啥?怎么又做空了股票?优化的方法上一个策略已经告诉过你啦,这次就不再重复了,自己改代码去,源代码地址照例在最后面~
6
策略写完了当然要用历史数据回测看看绩效。同样的,使用Quantrader,刷一下就回测完了。
从绩效报告中可以看出,基于多因子的策略在多头交易的部分非常稳定且持续上升,因此,修改这个策略做空部分的时候,可以尝试直接把做空部分去掉,这样的收益就已经非常棒了哦。此外,由于小编偷了个懒,使用13年上半年的数据选出13个因子后就再也没改过(实际上应该根据最近一段时间来选择因子才有效),因此,大家应该要每隔一段时间就重新选择一下因子,这样出来的效果更好哦~
多因子打分法策略到这里本就该告一段落啦,但是,由于小编上周实在太忙导致严重拖稿,量化之星的策划汪对小编转达了各位粉丝们的强烈渴望以及不满,小编实在是心有愧疚。因此,小编决定本周对这个打分法策略再深入一下,把行业分类以及权重也结合进来,借此跪求大家原谅,也希望能给大家对于这个可能不太熟悉的量化因子的使用带来一些启发。
OK~需要策略源代码的童鞋可以登陆到宽量网下载,具体流程如下:
下集预告:
量化因子作为国外量化投资的常用工具,在国内却少有人用,不仅仅是因为国内证券环境的诸多限制,还体现在大家对于如何使用量化因子的疑虑上。下集,小编将结合沪深300权重和行业分类,带大家继续探讨量化因子的用法。
戳原文,登陆宽量网! 返回搜狐,查看更多
责任编辑:
多因子模型matlab,【干货】不可不知的N种量化策略模型——量化因子相关推荐
- matlab alpha策略,不可不知的N种量化策略模型——alpha策略
原标题:不可不知的N种量化策略模型--alpha策略 本文共2880字,预计阅读需13分钟 这是一个量化(程序化)策略全方位揭密帖! 如果你是一个拥有充足的时间,充满求知欲,渴望通过自身的努力克服重重 ...
- 位图排序 大数据_干货分享:大话12种排序算法
干货分享:大话12种排序算法 常见的排序算法: 快速排序.堆排序.归并排序.选择排序 插入排序.二分插入排序 冒泡排序.鸡尾酒排序 桶排序.计数排序.基数排序.位图排序 技能点: 1.归并排序在O(N ...
- Matlab中数组元素引用——三种方法
Matlab中数组元素引用--三种方法 1.Matlab中数组元素引用有三种方法 1 2 3 1.下标法(subscripts) 2.索引法(index) 3.布尔法(Boolean) 注意:在使用这 ...
- 时间管理——你不可不知的3种时间管理方法
时间管理--你不可不知的3种时间管理方法 时间管理 英文名:Time Management 请问,如果每天都有86400元进入你的银行户头,而你必须当天用光,你会如何运用这笔钱? 天下真有这样的好事 ...
- python装饰器有几种_Python装饰器使用你可能不知道的几种姿势
前言 在Python中,装饰器是一种十分强大并且好用的语法,一些重复的代码使用装饰器语法的话能够使代码更容易理解及阅读. 因此在这里简单总结了一下Python中装饰器的几种用法以及需要注意的事情. 一 ...
- matlab统计所有股票分析,MATLAB金融算法分析实战:基于机器学习的股票量化分析...
MATLAB金融算法分析实战:基于机器学习的股票量化分析 作者:吴婷;余胜威 编著 出版日期:2017年07月 文件大小:32.24M 支持设备: ¥50.00在线试读 适用客户端: 言商书局 iPa ...
- matlab保存所有图,Matlab中图片保存的5种方法
matlab的绘图和可视化能力是不用多说的,可以说在业内是家喻户晓的. Matlab提供了丰富的绘图函数,比如ez**系类的简易绘图函数,surf.mesh系类的数值绘图函数等几十个.另外其他专业工具 ...
- Matlab中计算程序运行时间的几种方法
平常科研当中,当我们在看文献时,没看到一个优秀的算法时都有想要自己动手编程去实现的愿望,算法好坏可以用代码的运行时间来评估,在MATLAB中大致有以下几种方法来计算程序的运行时间: 1.tic和toc ...
- matlab读取cvs文件的几种方法
matlab读取CVS文件的几种方法: 1,实用csvread()函数 csvread()函数有三种使用方法: 1.M = csvread('filename') 2.M = csvread('fil ...
最新文章
- 循环遍历和迭代器遍历如何选择
- python连接mysql很慢 2.7_Python 2.7 学习笔记 访问mysql数据库
- 1.2 学习笔记之数据类型
- 用神经网络分类过去与未来
- 分类模型的性能评估——以SAS Logistic回归为例(3): Lift和Gain
- 检查本地服务器是否配置成功
- Linux中一切皆文件
- checkbox 选中的id拼接长字符串
- c# 文件压缩、解压及下载
- 我的docker随笔10:docker客户端使用其它主机的docker服务器
- 数据:以太坊2.0存款合约新增9.4万ETH
- 基于BAE微信公众账号管理系统答辩PPT免费下载
- 如何使用.NET配置文件
- 关于Java Web工程中web.xml文件
- 关于WPF的MVVM模式的吐槽
- html如何在手机打开,HTML怎么在手机打开
- buuctf_crypto
- 全国二级C语言上机必读
- 用c语言编写程序输出* ***,用C语言如何编写程序输出以下图形
- 学习与脑力锻炼的关系
热门文章
- [RK3399][Android7.1] 移植笔记 --- 9.7寸eDP显示屏添加
- Amcharts4使用笔记
- 怎么知道网站是否被黑 服务器是否被入侵呢
- win10+Ubuntu16.04双系统安装及卸载
- Css Gird网格布局详细介绍
- A071_管理员登录
- win10代理服务器没有响应解决方案
- 使用Springboot+MAVEN完成SSM项目的搭建(idea)--小白面试机试题
- 解决kettle部署在linux中界面变成英文的问题
- deeplearning.14深度学习猫咪识别阶段性检测记录