年化达21%(K=1),最大回撤35%,K=3时,卡玛比最优,最大回撤20%(年化15.2%)| Quantlab5.0代码发布

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

Quantlab5.0代码发布:

值得说明,Quantlab5与4没有继承关系,5开始的思路是:

1、尽量少封装,保留回测框架最原始的功能。

2、取消配置、可视化界面,使用notebook写策略,方便大家直观学习。

后续会引入多框架,包含但不限于:bt, pybroker, backtesting.py, backtrader, qlib,vnpy, wonder trader...

图片

图片

星球已经超过1000名用户,再次感谢大家的信任与支持!

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

希望可视化回测系统前下载4.3版本:

【代码发布】Quantlab4.3:lightGBM应用于全球大类资产的多因子智能策略(代码+数据)

先从方法论上讲讲,投资的三个层次:大类资产配置、战术资产调优和择时。

续前文:稳稳的长期年化10%,想以投资为生?先理解投资三大层次——大类资产配置背后的逻辑基础

大类资产——风险平价——配置曲线看就就挺舒服的:

图片

我们先来一个”大类资产——等权配置“作为对比:

图片

波动会大一些,但作为普通用户,其实等权也是可以的。

——曾经有人问马可维茨(因投资组合理论获诺奖),他自己是否使用”均值—方差理论来做配置“。

他的回答是,他做股债平衡时,也是自己给一个固定比例的股债平衡,然后定期再平衡。

今天我们来聊——战术资产配置。

战略资产配置,就是给不同类型的投资品,分配相应的权重,不做预测。

而战术资产配置,在战略资产的基础上,加上一些择优。——这里仍然不做市场预测,就像我们不预测气温,但夏天的时候少穿衣服,冬天时候多穿衣服肯定是没错的。

那如何判断当前投资品的市场是夏天还是冬天呢?

——低相关性的标的之间,使用趋势指标来择优。

bt内置没有实现轮动函数,我扩展了一个:

class SelectTopK(bt.AlgoStack):def __init__(self, signal, K, sort_descending=True, all_or_none=False, filter_selected=False):super(SelectTopK, self).__init__(bt.algos.SetStat(signal),bt.algos.SelectN(K, sort_descending, all_or_none, filter_selected))

回测结果如下:——另外,bt有一个很大的优点,可以多策略一起跑,然后参数进行对比,其实框架这一点需要自己实现。

图片

图片

可以看出,K=1,也就是选择最强的标的最优,年化达到21%,最大回撤35%,但K=3时,卡玛比最优,最大回撤才20%(年化15.2%)。

代码在如下位置:

图片

历史文章:

Alpha2:使用深度强化学习挖掘公式化的超额收益因子(附论文及源代码)

AlphaGPT v0.1发布后答疑——基于大模型的智能因子挖掘框架(代码)

【研报复现】年化27.1%,人工智能多因子大类资产配置策略之benchmark

稳稳的长期年化10%,想以投资为生?先理解投资三大层次——大类资产配置背后的逻辑基础

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

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

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

相关文章

【LabView学习篇 - 1】:初始LabView

文章目录 初始LabView前面板和程序框图前面板(Front Panel)程序框图(Block Diagram)交互和工作流程 练手小案例:LabView中实现加法操作 初始LabView LabVIEW(Laboratory Virtual Instrument Engineering W…

C#的多线程UI窗体控件显示方案

在C#中,特别是在使用Windows窗体(WinForms)或WPF(Windows Presentation Foundation)进行UI开发时,处理多线程与UI控件的交互需要特别小心。由于UI控件不是线程安全的,直接从非UI线程&#xff08…

yolov5 训练过程中的监控指标说明

1、参数的具体含义及其重要性 epoch: 训练迭代次数,表示模型已经进行了多少轮的训练。这是模型训练的基本计数单位,对于跟踪训练进度至关重要。 train/box_loss: 训练过程中边界框(bounding box)预测的损失值。这反映了模型在定位…

【CT】LeetCode手撕—93. 复原 IP 地址

目录 题目1- 思路2- 实现⭐93. 复原 IP 地址——题解思路 3- ACM 实现 题目 原题连接:93. 复原 IP 地址 1- 思路 模式识别:给一个 String 字符串 ——> 复原 IP 地址 ——> 回溯三部曲 ,回溯的切割问题 ——> 实现一个左闭右闭区间…

利用redis数据库管理代理库爬取cosplay网站-cnblog

爬取cos猎人 数据库管理主要分为4个模块,代理获取模块,代理储存模块,代理测试模块,爬取模块 cos猎人已经倒闭,所以放出爬虫源码 api.py 为爬虫评分提供接口支持 import requests import concurrent.futures import …

银河麒麟高级服务器操作系统(通用)安装和编译指定的python3版本

银河麒麟高级服务器操作系统(通用)安装和编译指定的python3版本 一 系统环境二 安装python3.12.42.1 安装编译需要的依赖包2.2 下载官网目前最新的python源码包2.3 解压Python-3.12.4.tar.xz2.4 配置python-3.12.42.5 编译安装2.6 配置环境变量使其生效2…

Artificial Intelligence Self-study

Artificial Intelligence Self-study Traditional AI (Symbolic AI) 基于:符号表示 数理逻辑 搜索 - 有明确规则,依靠算力。Appliance : 数学难题(Heuristic Algorithm),棋牌对抗(围棋),专家系统(输入病症&#xf…

linux安装jdk1.8(无废话版)

文章目录 1、下载安装包2、创建文件目录,并将安装包上传到该目录下3、解压安装包4、配置环境变量5、加载配置文件6、验证 前言:linux系统以ubuntu20.04.6版本为例,jdk版本jdk-8u411-linux-x64.tar.gz版本为例 1、下载安装包 jdk下载地址&am…

Python中列表推导式的概念以及示例

列表推导式(List Comprehension)是Python中一种简洁而强大的工具,用于从现有的可迭代对象(如列表、元组、字符串等)中快速生成新的列表。它提供了一种优雅的方式来表达循环和条件逻辑,以生成列表。列表推导…

2. 创建kvm虚拟机

创建kvm虚拟机 一、创建kvm虚拟机1、virt-manager 图形化工具2、virt-install 命令行工具3、查看虚拟机 一、创建kvm虚拟机 1、virt-manager 图形化工具 2、virt-install 命令行工具 [rootlocalhost ~]# virt-install --namevm02_centos79 \ > --graphics vnc,listen0.0.0…

linux下删除当前路径下的所有文件夹但保留文件

打开终端,输入, find . -mindepth 1 -maxdepth 1 -type d -exec rm -r {} 解释: find是查找文件和文件夹的命令。.表示当前路径。-mindepth 1表示最小搜索深度为1,这样不会包括当前目录。-maxdepth 1表示最大搜索深度为1&#x…

『Python学习笔记』Python运行设置PYTHONPATH环境变量!

Python运行设置PYTHONPATH环境变量! 文章目录 一. Python运行设置PYTHONPATH环境变量!1. 解释2. 为什么有用3. 示例4. vscode配置 一. Python运行设置PYTHONPATH环境变量! export PYTHONPATH$(pwd) 是一个命令,用于将当前目录添…

举例C++程序在线程出错后重启线程

在C中&#xff0c;当一个线程出现错误时&#xff0c;可以通过捕获异常并重新启动线程来实现自动重启线程的功能。以下是一个简单的例子&#xff0c;展示了如何实现这一功能&#xff1a; #include <iostream> #include <thread> #include <exception> #inclu…

Java的数据类型(复习版)

思维导图 一.字面常量 什么是常量&#xff1f;在我的理解看来常量就是在一个程序运行期间&#xff0c;保持不变的量就是常量。 例如&#xff1a; System.out.println(100);System.out.println(a);System.out.println(3.114);这些都可以称为常量。 字面常量的分类&#xff1a;…

Swagger的原理及应用详解(七)

本系列文章简介&#xff1a; 在当今快速发展的软件开发领域&#xff0c;特别是随着微服务架构和前后端分离开发模式的普及&#xff0c;API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;的设计与管理变得愈发重要。一个清晰、准确且易…

将 WSL(Windows Subsystem for Linux)移动到另一个盘上

方法一&#xff1a;通过 wsl --export 和 wsl --import 命令 导出当前的 WSL 分发版&#xff1a; 首先&#xff0c;您需要导出当前运行的 WSL 分发版。假设您的分发版名称为 Ubuntu-20.04&#xff0c;执行以下命令&#xff1a; wsl --export Ubuntu-20.04 D:\WSL\Ubuntu-20.04.…

护眼落地灯哪个牌子好?盘点五款必入不踩雷的护眼大路灯

护眼落地灯哪个牌子好&#xff1f;在这个快节奏的时代&#xff0c;护眼落地灯已经从一种高端选择转变为日常用眼生活中的必须品。不论是提升普通照明&#xff0c;还是针对孩子学习是改善光线质量环境&#xff0c;一款优秀的护眼落地灯都能成为我们生活中的照明神器。怎么选择一…

Java实现电子围栏的小例子

主要需求是实现一个电子围栏判断的小例子其中包括前端和后端的demo代码 引入对应的依赖库 <!--jts库通常用于几何计算和表示地理空间数据--> <dependency><groupId>org.locationtech.jts</groupId><artifactId>jts-core</artifactId><…

Python中定位一个序列中特点值出现的位置,比如 [0,0,0,1,1,0,0,]中1的位置

已知 Python中计算一个序列中特点值出现的数量&#xff0c;比如 [0,0,0,1,1,0,0,]中1的数量 如何定位位置呢 要找到列表 [0, 0, 0, 1, 1, 0, 0] 中 1 出现的位置&#xff08;索引&#xff09;&#xff0c;可以使用 Python 的列表推导式或者循环。以下是几种方法&#xff1a; …

在 VS Code 中自动化 Xcode 项目编译和调试

在 VS Code 中自动化 Xcode 项目编译和调试 在日常的开发工作中&#xff0c;Xcode 是 macOS、iOS、watchOS 和 tvOS 应用程序开发的主要工具。为了提高工作效率&#xff0c;许多开发者选择在 Visual Studio Code (VS Code) 中编辑代码&#xff0c;并希望能够直接从 VS Code 启…