Barra模型因子的构建及应用系列七之Liquidity因子

2023-11-04 06:20

本文主要是介绍Barra模型因子的构建及应用系列七之Liquidity因子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、摘要

在前期的Barra模型系列文章中,我们构建了Size因子、Beta因子、Momentum因子、Residual Volatility因子、NonLinear Size因子和Book-to-Price因子,并分别创建了对应的单因子策略,其中Size因子和NonLinear Siz因子具有很强的收益能力。本节文章是该系列的第七篇,将在该系列下进一步构建Liquidity因子。

二、模型理论

Barra模型的Liquidity因子的计算方法如下:

Liquidity因子是一个复合因子,由三个子因子构成,分别是:月度换手率、季度换手率和年度换手率,三者的权重为0.35、0.35、0.3。换手率的计算方式是成交量和流通股本的比值,进行T天的加总后求对数。月度的交易天数为21天,季度的交易天数为63天,年度的交易天数为252天。

三、因子分析

使用alphalens进行对Liquidity因子进行分析(2022年-2023年3月5日)。

由上述收益分析来看,各个调仓周期下的alpha收益均为负数,5天的调仓周期下的beta收益为正且最大;Liquidity因子值的最大分组和最小分组均贡献负收益,且最大分组的负收益远大于最小分组。

进一步从信息系数来看,IC均值和IC标准差在各个调仓频率之下相差不大,但是平均IC仅为-0.03,小于0.05,选股能力堪忧。

从分组收益图来看,Liquidity因子呈现两端负收益,中间正收益的形态,这表明过高和过低的换手率都会导致平均收益的下滑。

从因子分析来看,该因子的收益能力较差,构建单因子策略的话,其回测收益理应也是较差的。但为了我们后期对Barra模型的10个因子做进一步的综合分析,在此还是进一步撰写代码,方便后期使用。

四、回测分析

回测时间:2022-01-01至2023-03-05(月底换股)

回测品种:全A股(剔除ST股、停牌股和一年以内的次新股)

初始资金:100万

手续费:0.0007(双边万二佣金+单边千一印花税,共千1.4,即双边万7)

滑点:0.00123(双边千1.23)

最大持仓数量:30只

策略净值曲线波动较小,对比沪深300指数,在下跌阶段(2022年7月-10月)抗跌能力强,而在随后的反弹阶段,亦具备较强的进攻能力。整体表现相对较好。

从历史回测数据来看,Liquidity因子的收益能够跑赢大盘指数,但未能创造正收益:年化收益率为-1.81%,最大回撤率为-18.71%,夏普比率-0.11,胜率也仅43.64%。

以上,本期的策略源码已分享至掘金量化社区,大家可以通过下方链接自行获取。

传送门:掘金量化社区-Barra模型因子的构建及应用系列七

本期参考文献:

1.The Barra China Equity Model (CNE5) - MSCI - MSCI

链接:https://www.docin.com/p-1377763566.html

2.石川  正确理解 Barra 的纯因子模型

链接:https://zhuanlan.zhihu.com/p/38280638

3.方正证券 Barra模型初探,A股市场风格解析

4.中银证券 有关Barra中国权益CNE5模型的思考

5.量化投资小笔记 Barra系列

链接:https://zhuanlan.zhihu.com/p/68110181

6.理解非线性市值因子NLSIZE/MIDCAP 

链接:https://zhuanlan.zhihu.com/p/150310851?from_voters_page=true

这篇关于Barra模型因子的构建及应用系列七之Liquidity因子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/343859

相关文章

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

一文详解如何从零构建Spring Boot Starter并实现整合

《一文详解如何从零构建SpringBootStarter并实现整合》SpringBoot是一个开源的Java基础框架,用于创建独立、生产级的基于Spring框架的应用程序,:本文主要介绍如何从... 目录一、Spring Boot Starter的核心价值二、Starter项目创建全流程2.1 项目初始化(

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

使用Python和python-pptx构建Markdown到PowerPoint转换器

《使用Python和python-pptx构建Markdown到PowerPoint转换器》在这篇博客中,我们将深入分析一个使用Python开发的应用程序,该程序可以将Markdown文件转换为Pow... 目录引言应用概述代码结构与分析1. 类定义与初始化2. 事件处理3. Markdown 处理4. 转

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库

SpringBoot整合MybatisPlus的基本应用指南

《SpringBoot整合MybatisPlus的基本应用指南》MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,下面小编就来和大家介绍一下... 目录一、MyBATisPlus简介二、SpringBoot整合MybatisPlus1、创建数据库和