年化22.8%的单因子分析:基于Alphalens做可转债全市场数据的单因子分析(附python代码+全量数据)

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

因子分析是量化研究的基本技能之一。通过因子分析,找出有效的因子,通过相关性去重后,就可以通过机器学习、线性回归等方法把因子组合起来,构成交易策略。

今天咱们要做可转债的因子分析。

【每周研报复现】AI量化特征工程之alphalens:一套用于分析 alpha 因子的通用工具

alphalens年久失修,好在有人修复了一个版本叫alphalen-reloaded

大家直接输入:pip install alphalens-reloaded即可。

alphalens看起来挺复杂,其实使用很简单,准备两个数据,在咱们的表达式引擎上,这个非常简单:

首先是收盘价数据,这个咱们bt引擎里使用的,就是这个数据。

图片

另外一个是因子值,使用双索引。

咱们的数据只需要设置一下双索引就可能了,然后把你要分析的因子列读出来。

图片

这就已经完成90%的工作了。

一行代码完成因子分层计算工作:

from alphalens.utils import get_clean_factor_and_forward_returns
#将tears.py中的get_values()函数改为to_numpy()
ret = get_clean_factor_and_forward_returns(factor, data)

图片

然后一行代码完成分析工作:

import alphalens
alphalens.tears.create_full_tear_sheet(ret)

重点是如何解读Alphalens的输出报告:

首先当然是IC分析:

图片

  • IC 衡量的是因子值与未来收益之间的相关性。

  • IC 值的范围是 -1 到 1,正值表示因子值与未来收益正相关,负值表示负相关。

  • IC 的绝对值越大,表示因子的预测能力越强(绝对值>0.05认为有效)——所以,咱们回测按周调仓是有道理的,也可以按两周来调仓。

  • t-Statistic 是 IC 的统计显著性检验,用来评估 IC 的可靠性。

  • 一个高的 t-Statistic 值(绝对值通常大于 2)表示 IC 的显著性较高,即因子的预测能力不是偶然发生的。

    上面的信息分析表明——双低因子是有效的,且在统计意义上是显著的(不是随机发生)。

    再来看收益分析:

    图片

    因子 Beta 衡量的是因子收益对市场收益变化的敏感性

    Beta 值大于 1 表示因子收益对市场变化的敏感性高于市场平均水平。

因子自相关性:

  • 因子排名自相关性衡量的是时间序列上因子排名的相关性。

  • 高自相关性可能表明因子在短期内具有持续性,但也可能表明因子的预测能力在减弱。

图片

换手率——这个好理解:

  • Turnover 衡量的是投资组合的换手率,即投资组合中股票的更换频率。

  • 高 Turnover 可能意味着因子策略需要频繁交易,这可能导致更高的交易成本。

图片

看分层单调性——我们一共把所有转债按因子从小到大,分为5层,下图显示出分层单调性。——这一点很重要,意味着,因子可以把转债有效区分开,单调性是因子有效的重要标志之一。

我们不仅可以靠做多获得收益,还可以通过做空来使收益倍增(如果可以的话)

图片

分层累计回报(1D): 1层,也就是因子最小的层,与5层,也就是因子最大的层,同样显示出良好的单调性:

图片

因子收益图:展示因子在不同时间段的收益表现。

图片

小结:其实单因子分析并不复杂,这里当然咱们没有做市值,行业中性的数据处理——股票通常是需要的,这个后续分享。

重点看IC,就是未来收益与因子的相关性,看t值确保有统计上的显示性,看ric确保因子稳定。然后就是分层单调性。

代码在如下位置:AI量化实验室——2024量化投资的星辰大海

图片

关于社区

一年多前,就安装过社区软件,其实这是一款不错的产品,精美,功能强大,很适用于知识社群。

记录一下过程,使用docker部署的话:

镜像是现成的,不过这个镜像admin打不开,在社区里找到解决方案,自己从gitee下载最新代码包,然后从论坛下载vendor.zip置于根目录,配置chmod -R 777 discuz目录,即可,然后把mysql数据持久化到宿主机即可。

docker run -p 8088:80 -v 你的discuzq目录:/var/www/discuz -v /data/discuz-mysql:/var/lib/mysqldb -d ccr.ccs.tencentyun.com/discuzq/dzq:latest

吾日三省吾身

你不能朝前看去把点连起来;你只能向后看去把点连起来。所以你必须相信,这些点将来会以某种方式连在一起。你必须相信某种东西的存在。这种思路从没有让我失望,而且它让我的人生很不一样。

乔布斯在斯坦福的演讲

这段演讲,是在北大光华的课堂上,当时老师给我们播的。

当然只是看着乔布斯,作为一个创新的成功者来欣赏。

现在回过头看,方解其中真义。

我们生活在一个超级不确定的时代,各种变量,明天是不可预测的,计划往往赶上不变化。

但努力仍然是最好的选择,尤其对于普通人。

那你可能要问了,努力做什么呢?选择不是更重要吗,努力就是最好的选择,这就是来回绕了吗?

我们当下做的一件件事情,都是一个个点。

你读的每一本书,经历的每一件事情,学习的每一个技能,认识的人,都会在将来连成一条线。

很庆幸,自己在大学毕业之后,一直写代码,折腾过很多东西,看似短期内也许没什么用,但这些技能,都在连接成一条线。

从python到量化投资,然后人工智能,自然语言处理,大模型,然后AI量化投资。

历史文章:

可转债所有历史日线数据打包下载,含“双低”因子值——全历史年化22.8%。(含python代码)

年化22.8%:可转债多因子策略之基准——“双低”因子策略

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

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

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

相关文章

Linux基础学习day1

1.Linux系统介绍 1.常见的操作系统 1.Windows(NT内核)不开源 2.ubantu(linux内核) 3.ios(unix内核)不开源 4.鸿蒙(兼容linux内核) 5.Android(linux内核&#xff09…

STM32(七):STM32指南者-通信实验

目录 一、基本概念通讯基本概念1、串行和并行2、同步通讯与异步通讯3、全双工、半双工、单工4、通讯速率 USART基本概念1、串口通讯基本概念2、物理层3、协议层4、指南者的串口USART I2C基本概念SPI基本概念 二、USART串口实验前期准备1、安装安装 USB 转串口驱动_CH3402、野火…

Git之repo sync -l与repo forall -c git checkout用法区别(四十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

微信各平台历史版本含下载地址大全( 安卓 | Windows | MAC )

微信-windows-版本历史 https://github.com/tom-snow/wechat-windows-versions/releases 微信-windows-x86版本历史 https://github.com/tom-snow/wechat-windows-versions-x86/releases 微信安卓版本历史 https://github.com/DJB-Developer/wechat-android-history-version…

Apache DolphinScheduler 3.2.2 版本正式发布!

Apache DolphinScheduler 3.2.2 版本正式发布! 近日,Apache DolphinScheduler 发布了 3.2.2 版本。此版本主要基于 3.2.1 版本进行了 bug 修复,新增若干特性,并进行了众多改进和 Bug 修复,以及文档修复等。 &#x1…

电路学习——经典运放电路之滞回比较器(施密特触发器)(2024.07.18)

参考链接1: 电子设计教程29:滞回比较器(施密特触发器) 参考链接2: 滞回比较器电路详细分析 参考链接3: 比较器精髓:施密特触发器,正反馈的妙用 参考链接4: 比较器反馈电阻选多大?理解滞后效应,轻…

【iOS】进程与多线程

目录 前言进程和线程进程和线程的区别多线程的意义时间片概念 线程的生命周期线程池的运行策略自旋锁和互斥锁自旋锁互斥锁自旋锁和互斥锁区别原子属性 iOS多线程技术方案 前言 学习此文:iOS多线程 在平时的iOS开发中,多线程是我们常会遇到的&#xff0…

新手教学系列——如何在MacOS 10.13.6(老系统)手动安装和配置Pyenv

前言 对于使用老旧系统(如MacOS 10.13.6)的用户来说,安装和管理Python版本可能会遇到一些挑战。特别是由于Homebrew不再支持老系统,许多软件安装变得困难重重。本文将详细介绍如何在这样的环境下手动安装和配置Pyenv,…

BGP选路之Next Hop

原理概述 当一台BGP路由器中存在多条去往同一目标网络的BGP路由时,BGP协议会对这些BGP路由的属性进行比较,以确定出去往该目标网络的最优BGP路由,然后将该最优BGP路由与去往同一目标网络的其他协议路由进行比较,从而决定是否将该最优BGP路由放进P路由表中…

数据代理实践

1,什么事数据代理机制? 通过访问 代理对象的属性 来向该访问 目标对象的属性 数据代理机制的视线需要依靠,Object.defineProperty()方法 2, ES6新特性: 在对象中的函数/方法 :function是可以省略的 &l…

宝塔国际版Docker Manager 3.4获取镜像列表报错解决办法

宝塔国际版安装Docker Manager 3.4,遇到获取镜像列表的时候报错。 解决办法 找到:/www/server/panel/plugin/docker/docker_main.py文件 替换函数utc_to_local 原代码 # UTC时间转换为时间戳def utc_to_local(self, utc_time_str, utc_format=%Y-%m-%dT%H:%M:%S):

机器学习(五) -- 无监督学习(1) --聚类2

系列文章目录及链接 上篇:机器学习(五) -- 无监督学习(1) --聚类1 下篇: 前言 tips:标题前有“***”的内容为补充内容,是给好奇心重的宝宝看的,可自行跳过。文章内容被…

2个案例区分是平行眼还是交叉眼,以及平行眼学习方法

案例一: 交叉眼:看到凸出的“灌水”,是交叉眼。PS:看的时候,眼是斗鸡眼,眼睛易疲劳 平行眼:看到凹陷的“灌水”,是平行眼。PS:看的时候眼睛是平视,不容易疲…

springboot校园车辆管理系统-计算机毕业设计源码63557

校园车辆管理系统 摘 要 校园车辆管理系统是当前高校校园管理中的一个重要方面,其有效管理和调度对于提升校园的运行效率和管理水平至关重要。本论文基于Spring Boot框架开发了一套校园车辆管理系统,系统主要包括用户和管理员两大角色,涵盖…

Sprint Boot 2 核心功能(二)

数据访问 1、SQL 1.1、数据源的自动配置-HiKariDataSource 1.1.1、导入JDBC场景 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jdbc</artifactId> </dependency>数据库驱动&#xff1…

什么是湖仓一体?湖仓一体解决了什么问题?

目录 一、数据仓库&数据湖&湖仓一体概念辨析 1.数据仓库&#xff08;Data Warehouse&#xff09; 2.数据湖&#xff08;Data Lake&#xff09; 3.湖仓一体&#xff08;Lakehouse&#xff09; 二、湖仓一体的优点 三、湖仓一体要解决什么问题? 四、结语 随着当前大数据…

在spyder中使用arcgis pro的包

历时2天终于搞定了 目标&#xff1a;在anconda中新建一个arcpyPro环境&#xff0c;配置arcgispro3.0中的arcpy 一、安装arcgispro3.0 如果安装完之后打开arcgispro3.0闪退&#xff0c;就去修改注册表&#xff08;在另一台电脑安装arcgispro遇到过&#xff09; 安装成功后可…

Python3网络爬虫开发实战(1)爬虫基础

一、URL 基础 URL也就是网络资源地址&#xff0c;其满足如下格式规范 scheme://[username:password]hostname[:port][/path][;parameters][?query][#fragment] scheme&#xff1a;协议&#xff0c;常用的协议有 Http&#xff0c;https&#xff0c;ftp等等&#xff1b; user…

如何借助生成式人工智能引领未来的科技狂潮

如何借助生成式人工智能引领未来的科技狂潮 1. 生成式AI的现状1.1 技术基础1.1.1 深度学习1.1.2 生成对抗网络&#xff08;GANs&#xff09;1.1.3 变分自编码器&#xff08;VAEs&#xff09; 1.2 主要应用1.2.1 语言模型1.2.2 图像生成1.2.3 音频与视频生成 2. 未来的发展趋势2…

DNS服务器的搭建

目录 1、DNS服务器端软件 2、DNS服务器搭建 第⼀步&#xff1a;环境准备 第二步&#xff1a;web主机的搭建 第三步&#xff1a;服务器端配置DNS 第四步&#xff1a;配置DNS主机 第五步&#xff1a; 检查配置文件是否正确 3、搭建完成 回到客户端测试 1、DNS服务器端软…