股票多因子模型实战之因子行业中性化(附python代码)

news2024/12/23 11:08:31

原创文章第607篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。

今天开始,咱们从ETF、可转债正式转到大家最熟悉、最常见的股票市场。

而且切入的方向,仍然是——“多因子模型”。

01 什么是因子?

因子是什么呢?在多因子策略的角度下,因子是解释/驱动市场涨跌的原因。

但这里还不准确,你吃了100克的巧克力,里面可能是5.5克的蛋白质、26.9克的脂肪、59.2克的碳水,还是203毫克的钠元素,还有其他。——这里其实就是5个因子了。

你再吃蛋糕、苹果,最终也会回归类似的因子。——咱们有几千支股票,很多因子模型才几个因子,————这实质是是一种降维了。

理解了因子,再来看什么是好的因子呢?

对比食物,你希望有这样的食物,既好吃还不会长胖,因子是既稳定还能持续创造正收益

02 多因子模型的道

R(it) = Alpha(it) + Beta(it),我们把一个股票的收益率,分解为Alpha(超额收益率) + Beta(市场收益率),这个不难理解,比如你买一支股票(或者一个股票组合),收益率1.8%,而同期沪深300收益率为1.5%,那你的超额是0.3%。

沪深300这个1.5%的市场收益,可以通过做空股指期货来对冲,进而得到一个“无风险”的0.3%的绝对收益。——这是对冲基金的做法;而若仅使用多因子来配置股票,相当于对指数进行增强——这就是“指增”的逻辑;而没有严格对标的指数——就是“空气指增”。

03 多因子的术

构建多因子策略的步骤:单因子测试与筛选(构建因子池)、因子组合(加权)、策略构建、实盘归因分析。

单因子测试几个重要环节:去极值和异常值、标准化、中性化

因子分析都是截面数据分析,也就是取某一个“时间截面”,来分析所有股票该因子值的表现。

代码:我们从市值这个最常见的因子来举例:

取某一天的截面数据:

图片

对市值取对数:

图片

去极值,然后标准化(z-score):

图片

这些数据处理都比较简单,稍微复杂一点的是——行业中性化

现在现在办奥运会,像举重这样的比赛需要分“XX公斤级”,因为体重是一个对结果而言很关键的因子。——分组就是“体重中性化”。把同一公斤级的放到一起比赛才算。

行业中性化的代码——因子值与行业变量做回归,获取残差(行业因子无法解释的),这个残差就是行业中性化后的因子。

def industry_neutralization(factor_df, factor_name):
    result = sm.OLS(factor_df[factor_name], factor_df[list(factor_df.ind_code.unique())], hasconst=True).fit()
    return result.resid

图片

简单小结:

因子分析的前提是因子预处理,包括去市值化(取对数),去极值,标准化,行业中性化这些操作,确保因子的质量,为后续分析打下基础。

图片

昨天咱们已经提交了quantlab 5.4的代码:

quantlab5.4代码发布:新增deap因子挖掘,lightgbm机器学习因子筛选及全量转债数据(附python代码)

大家可以前往星球下载:AI量化实验室——2024量化投资的星辰大海

图片

吾日三省吾身

01 自证预言

在不做投资的人眼中,股市全是风险。

不在做量化的人眼中,量化全是过拟合。

他们不相信世间一个最简单的逻辑——存在即合理。

有一个哥们特别逗,似乎也没有关注咱们这个公众号,但喜欢留言,言必称过拟合。

他既没有看到代码细节,我猜甚至也没有仔细读我写的逻辑,只是把他心目中对于量化策略的声音说出来罢了。

很多人生受限于此。

你先觉得一件事不可能,而后所有的行动都在自证预言。

02 财富与自由

总说财富自由,其实这是两个词。

财富会带来自由。

但大家可能没有仔细推敲过其中的逻辑。——你为何不自由?

被什么所限制?——地点还是时间?

地点上的约束,你需要工作,甚至你需要一个连续的职业生涯——何况现在很多人想工作还求而不行。其次,是孩子读书,当然这不是刚性约束。

如果你能够离得开工作,或者工作不需要在确定的地点——比如当下的数字游民等。——那你就实现地点自由。——如果你有家庭,会更加不容易一些。数字游民更适合单身的年轻人。

如果你有被动收入远超你的生活开支,那你将不需要上班。同时,如果孩子已经长大,那你就实现了自由。

自由很大程度上归结为财富,然后在此基础上构建精神自由。

人这一生,在于体验。

自由是最佳的体验感觉,我认为。

历史文章:

quantlab5.4代码发布:新增deap因子挖掘,lightgbm机器学习因子筛选及全量转债数据(附python代码)

年化27.9%,最大回撤-13.6%的可转债因子策略,结合机器学习特征筛选(附python代码)

量化私募公司的多因子构建方案(附python代码)

通用选股框架——多因子模型

AI量化实验室——2024量化投资的星辰大海

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1973829.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

qml教程:qml视频播放组件介绍

更多qml教程,请参考QML入门进阶教程专栏:https://mingshiqiang.blog.csdn.net/category_9951228_2.html 文章目录 MediaPlayerVideoOutput视频播放代码示例增加视频效果图片二值化处理视频帧本篇博客介绍qml如何播放视频,以及视频特效处理。 本篇博客提供的代码全部通过Qt6.…

64位Office API声明语句第121讲(终了)

跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高…

【Mind+】掌控板入门教程02 趣味相框

光影重叠,时间和回忆定格在在一张张相片里。人们通常会用相框把相片装裱起来,展示在家中或者工作的地方,来回味往日的美好时光。但是一个相框只能放一张照片,怎么才能让它展示不同的照片呢?正好此时我们的手边有一块掌…

Python 爬虫项目实战(一):破解网易云 VIP 免费下载付费歌曲

前言 网络爬虫(Web Crawler),也称为网页蜘蛛(Web Spider)或网页机器人(Web Bot),是一种按照既定规则自动浏览网络并提取信息的程序。爬虫的主要用途包括数据采集、网络索引、内容抓…

World of Warcraft [RETAIL] UI Setting

/*测试魔兽世界正式服,界面UI编辑器,UI布局文本 World of Warcraft [RETAIL] UI Setting开头的:1 39 某种类型 : 序号(默认-1,有多个从0开始计数0,1,2,3 未知类型 未知类型 未知类型 控件类型&#xff1…

【中项】系统集成项目管理工程师-第9章 项目管理概论-9.8项目管理知识领域

前言:系统集成项目管理工程师专业,现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试,全称为“全国计算机与软件专业技术资格(水平)考试”&…

vue2-04-利用VueCli脚手架搭建vue2项目步骤、目录解读、eslint缩进配置、自适应配置、less

目录 前置信息创建vue2项目目录解读在VSCode中启动项目eslint配置自适应配置(px自动转rem)less配置 前置信息 我用的代码编译器是VSCode,node版本是16.20.2,npm版本是8.19.4,项目选用的是less预处理,npm安…

EyouCMS响应式高端网站建设互联网营销网站模板/易优CMS网站建设类企业网站模板源码

EyouCMS响应式高端网站建设互联网营销网站模板,易优CMS网站建设类企业网站模板源码。适用于IT、软件、互联网、游戏类企业网站建设使用。 模板自带eyoucms内核,无需再下载eyou系统,原创设计、手工书写DIVCSS,完美兼容IE7、Firefo…

链式二叉树的实现

文章目录 🎯引言👓链式二叉树的实现1.链式二叉树的结构2.链式二叉树相关操作实现2.1源码展示2.2函数实现详解2.2.1前中后序遍历2.2.2二叉树的其他方法实现2.2.3二叉树的层序遍历和判断是否是完全二叉树 🥇结语 🎯引言 欢迎来到Ha…

论文笔记:InternImage—基于可变形卷积的视觉大模型,超越ViT视觉大模型,COCO 新纪录 64.5 mAP!

文章信息 Title:InternImage: Exploring Large-Scale Vision Foundation Models with Deformable ConvolutionsPaper Link:https://arxiv.org/abs/2211.05778 Code Link:https://github.com/OpenGVLab/InternImage 写在前面 拿到文章之后先看…

科普文:微服务之Spring Cloud Alibaba消息队列组件RocketMQ如何保证发送消息不丢失

概叙 本文分析了 RocketMQ 同步发送、异步发送和单向发送三种方式的原理、优缺点以及使用场景,并且分析了每种方式涉及到的核心源码。 科普文:微服务之Spring Cloud Alibaba版本选择-CSDN博客 通过上文的介绍可以知道同步发送方式可以保证消息发送时不…

git分支介绍

git branch 查看当前分支情况 可以看见当前只有一个分支叫main,也就是默认分支,可以理解为树的主干,git早期版本中默认分支叫master 命令行创建一个新分支 git branch [分支名]在创建之后,如果需要切换到新分支需要git switc…

用VBA在Word文档中快速查找到黄色底纹内容

一、效果展示 二、代码 Sub 快速查找定位到黄色底纹内容()With Selection.Find.ClearFormatting.Wrap wdFindContinue.Font.Shading.BackgroundPatternColorIndex wdYellow.ExecuteEnd With End Sub

C++面向对象高级编程(I)侯捷 自我总结版

关键词: 类的防卫式声明,模版,内联函数,构造函数以及重载,const,pass by reference(有&符号),friend,操作符重载,返回local object的不能retu…

【LightGlue】lightglue performance

【LightGlue】lightglue performance 1. 图表分析2. 数据点解释3. LightGlue的细节4. 结论 这张图表展示了不同特征匹配方法在图像对每秒处理速度和相对位姿精度(Relative Pose Accuracy)之间的关系。 1. 图表分析 X轴(横轴)&…

使用 abortNavigation 阻止导航

title: 使用 abortNavigation 阻止导航 date: 2024/8/3 updated: 2024/8/3 author: cmdragon excerpt: 摘要:在Nuxt3中,abortNavigation是一个辅助函数,用于路由中间件内阻止不符合条件的页面访问,实现权限控制、错误处理及动态…

3条职场情商法则,让你少走弯路

人生的幸福和工作息息相关,它占据了大量时间,而时间是人生最珍贵的资源。但当年轻人从校园走进职场时,却常常面临困境。因为职场和学校是完全不同的场所,游戏规则大相径庭。 人们会惊奇地发现,曾经的学霸可能在职场中…

Qt 5.14安装(配置MSVC 2017)

Qt 5.14安装(配置MSVC 2017) 记录一下自己安装配置Qt的步骤。 我需要安装Qt,并使用MSVC编译,所以才写了这篇文章。 一、环境 操作系统:windows 11 (64位) Qt:Qt 5.14.2 vs&…

Linux 命令,touch说明与使用

1:touch命令功用: 对一个或多个文件,将访问时间和修改时间以及日期进行更新,既在 Linux 和 Unix 系统中,改变文件的访问和修改时间,touch对于强制其他的命令以某一方式处理文件时是有用的。如make的操作 和某些find命令…

LED显示屏的秘密:揭秘模拟信号与模拟电路

在我们日常生活中,LED显示屏无处不在,从商场的广告牌到舞台的背景墙,它们用绚丽多彩的画面吸引着我们的眼球。但你是否好奇,这些神奇的屏幕背后,是如何处理和显示信息的呢?今天,就让我们一起揭开…