Quantlab5.0:一切围绕可实盘策略驱动开发

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

2024年上半年即将结束,开始准备星球下半年的工作。

目前设想的——Quantlab5.0,之所以升级一个大版本,与4.x有很大不同。

5.0专注策略开发,可能以notebook形式为主,弱化gui界面,甚至少用streamlit。同时弱化策略框架的封装,这样大家一可一眼看明白一个策略如何开发出来,如何运行,如何调优。

——简言之,就是一切围绕可实盘策略驱动开发,开发赋能交易,而非其他。

数据加载方面,使用csv加载,数据很重要,处理也挺耗时,但之于策略开发,并非核心,因此简化+标准化:

对于bt框架而言,就是一次性加载多个symbols的收盘价,形成一个dataframe即可——以下示例,加载沪深300指数、创业板指数收盘价,并给图,计算相关性:

图片

可以看出,大小盘的相关性仍然高达0.73。

@staticmethod
def get(symbols: list[str], col='close', start_date='20100101'):dfs = []for s in symbols:df = CSVDataloader.read_csv(s)if df is not None:dfs.append(df)df_all = pd.concat(dfs, axis=0)if col not in df_all.columns:logger.error('{}列不存在')return Nonedf_close = df_all.pivot_table(values=col, index=df_all.index, columns='symbol')df_close = df_close[start_date:]return df_close

我们可以很容易进行全球大类资产——时间序列的分析:

from datafeed.dataloader import CSVDataloader
data = CSVDataloader.get(['000300.SH', #沪深300'159915.SZ', #创业板'HSI', #香港恒生'^NDX',# 纳指100'GDAXI',#德国DAX'000012.SH',#国债指数])
data.dropna(inplace=True)
(data.pct_change()+1).cumprod().plot()

图片

可以看出来,纳指100一骑绝尘。

图片

国债和所有资产都是负相关,沪深 和德国,纳指100的相关度很低,与恒生相关度高。德国(欧洲)与美股(纳指100)相关度也还好。

——从大类资产配置的角度,长期向上的资产,相关度越低,则越能在不降低收益率的基础上,有效降低波动。

重新整合代码目录:

图片

代码每周在星球更新,获取地址(已经有1000+同学加入星球):

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

这是投资组合理论,是投资之基础。

从量化学习的角度,除了python基础之外,最应该熟悉的是掌握一两款回测框架。

当然,如果有兴趣,自己实现一个回测框架——之前我花不少时间,在打磨自己的回测引擎。——这个好处是你知道底层框架的设计细节,对于你调试策略,理解逻辑很有帮助。

从实战的角度,选择成熟的框架就好。

回测框架与实盘框架,我建议是分开的。——回测是验证你的思路,求方便、省事,效率高。而实盘是真金白银,求稳定,可靠。

二者有一定冲突的,都按实盘的标准来,你的策略很复杂,而且你搞不清楚是策略没写好,还是策略本身就不行。所以,分开来。

从回测的角度,Quantlab5.0(计划中),会引入多个回测框架,包含但不限于:bt, backtesting.py, pybroker或backtrader, qlib等。

每个框架各有所长,比如bt特别适合资产配置、轮动策略,而backtesting.py适合单标的择时(backtrader的单标的版本,但策略和指标比backtrader直观和易用),pybroker支持机器学习,尤其是WFA股东训练。

数据方面,专注指数(ETF),对于回测而言,它们都是时间序列,迁移起来是非常容易的。——一开始不必在数据上花费太多时间。

历史文章:

【代码发布】Quantlab-4.3.1发布:lightGBM全球大类资产配置-模型自动调参(代码+数据)

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

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

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

相关文章

Python28-2 机器学习算法之SVM(支持向量机)

SVM(支持向量机) 支持向量机(Support Vector Machine,SVM)是一种用于分类和回归分析的监督学习模型,在机器学习领域中被广泛应用。SVM的目标是找到一个最佳的分割超平面,将不同类别的数据分开&…

【Vue】Vue.js中常见的几种语法

在 Vue.js 中,主要的语法可以分为以下几种: 插值语法 (Interpolation) 使用双大括号 {{ }} 进行文本插值。 示例: {{ message }} 指令语法 (Directives) 指令是特殊的标记,用于告诉Vue框架如何操作DOM。Vue提供了多种内置指…

【最新鸿蒙应用开发】——鸿蒙国际化

1. 国际化 鸿蒙应用开发的国际化主要是指让应用支持多种语言和适应不同地区的用户习惯。这包括对不同语言环境的支持,如文本和布局的本地化设置。要实现国际化,开发者需要准备应用程序支持的每种语言环境的一些资源,比如翻译后的文本、特定区…

理解论文笔记:基于贝叶斯网络和最大期望算法的可维护性研究

看了与上一篇研究方向一致的文章,上一篇19年的,这一篇22年的更新。若有侵权,请联系删除。 I. INTRODUCTION 介绍 主要介绍了使用贝叶斯网络和历史数据对无线传感器网络可维护性研究的重要性和必要性,并对下面的各章进行了…

【高性能服务器】单进程服务器

🔥博客主页: 我要成为C领域大神🎥系列专栏:【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 单进程服务器 …

深入解析MSE在深度学习回归中的双重角色-损失函数-评价指标

深入解析MSE在深度学习回归中的双重角色 在深度学习特别是回归任务中,均方误差(Mean Squared Error, MSE)是一种广泛使用的方法,既可作为损失函数也可作为评价指标。这种使用方式可能会引起一些疑问:作为损失函数和评…

认识100种电路之稳压电路

在电子电路中,稳压电路扮演着至关重要的角色。那么,为什么电路需要稳压?稳压的原理又是什么?以及稳压需要用到哪些元器件,数量又有多少呢?今天,就让我们一同揭开稳压电路的神秘面纱。 【电路为什…

Apple Final Cut Pro 10.8 - 专业后期制作 (视频编辑)

Apple Final Cut Pro 10.8 - 专业后期制作 (视频编辑) Final Cut Pro 10.8 Compressor 4.8 Motion 5.8 (Universal) 请访问原文链接:https://sysin.org/blog/apple-final-cut-pro/,查看最新版。原创作品,转载请保留出处。 作者主页&…

供应商关系管理(SRM)中的供应商绩效评估

供应商绩效评估是供应商关系管理(SRM)的核心组成部分,它涉及到对供应商在合作过程中的表现进行全面的分析和评价。一个有效的供应商绩效评估系统不仅可以帮助企业识别和解决供应链中的潜在问题,还可以促进供应商的持续改进和优化&…

7.javaSE基础进阶_设计模式和代理模式(静态代理JDK和动态代理CGLIB)

文章目录 一.设计模式1.简介1)设计模式基本要素2)设计模式的分类1.模式依据其目的可分为:2.第二是范围准则3.创建模式4.结构模式5、行为模式 2.工厂模式1)定义2)结构3)创建工厂 3.单例(Singleton)模式1)定义2)应用3)分类1.饿汉式EngerSingLeton2.懒汉式LazySingLeto…

Java学习 - Redis缓存问题与优化

缓存收益与成本 收益 加速读写降低后端、持久层的负载和压力 成本 可能导致数据不一致代码运维成本redis节点运维成本 缓存更新策略 策略一致性维护成本介绍LRU/LIRS算法剔除最差底剔除最近最少使用的数据超时剔除较差底定时删除、惰性删除主动更新最好高持久层更新&#x…

监控 Promethus的监控告警Alertmanager、Grafana

Promethus的监控告警Alertmanager Alertmanager 介绍 Prometheus的一个组件,用于定义和发送告警通知,内置多种第三方告警通知方式,同时还提供了对Webhook通知的支持基于警报规则对规则产生的警报进行分组、抑制和路由,并把告警发…

深入了解Spring框架的模块组成

目录 Spring CoreSpring ContextSpring AOPSpring DAOSpring ORMSpring WebSpring MVCSpring WebFluxSpring TestSpring BootSpring SecuritySpring BatchSpring IntegrationSpring Cloud结论 Spring Core 1.1 核心容器 Spring Core模块是整个Spring框架的基础。它包含了框架…

vue如何引入图标

方法1&#xff1a;iconify/vue pnpm add iconify/vue -D 网址&#xff1a;https://icon-sets.iconify.design/ 使用哪个需要安装 如下截图,安装指令&#xff1a; > npm install iconify/icons-gg在使用的页面引入 import { Icon } from “iconify/vue”; <template>…

Mysql存储过程用法:使用存储过程编程,来判断数据库中数据表中的字段是否重复,避免重复插入记录

目录 一、mysql的存储过程介绍 二、. 创建存储过程 1、准备 2、创建插入记录的存储过程 三. 调用存储过程 四. 删除存储过程 五. 修改存储过程&#xff0c;避免数据表的姓名出现重复 1、修改存储过程的方式 2、重新创建存储过程 六. 验证新的存储过程 1、插入新的记…

高考后的抉择:专业优先还是学校优先?

随着2024年高考的帷幕落下&#xff0c;高考生们面临的一个重要抉择再度浮上心头&#xff1a;在分数受限的情况下&#xff0c;是选择一个心仪的专业&#xff0c;还是选择一个知名度更高的学校&#xff1f;这是一个困扰了众多考生和家长的长期难题。在这个关键的时刻&#xff0c;…

好用的导航网站有哪些

网址导航网站是我们日常上网的一个重要工具。它们不仅可以帮助我们快速找到所需的资源和信息&#xff0c;还能提高我们的工作效率。以下是小编收藏的几个好用的导航网站&#xff0c;涵盖了办公、学习、娱乐等多个领域&#xff0c;分享给大家。 1. 办公人导航 办公人导航是一个…

Drag Select Compose:实现多平台图片多选功能的利器

Drag Select Compose:实现多平台图片多选功能的利器 在现代移动应用开发中,图片多选功能是一个常见且实用的需求。而实现这种功能可能涉及到复杂的手势处理和状态管理。今天,我将介绍一款强大的Compose多平台库——Drag Select Compose,它能够轻松实现类似于Google Photos…

【鸿蒙】第2天・装饰器・组件和页面生命周期

背景知识 &#xff11;・ArkTS 拓展了 TypeScript&#xff0c;TypeScript 拓展了 JavaScript。 增加了一些约束。 &#xff12;・ArkTS 是声明式编程。 构建对象时类似构建者设计模式。链式赋值。 装饰器 &#xff20;Component 自定义组件 Component装饰器仅能装饰str…

BGP中的TCP连接源地址问题

3.TCP连接源地址&#xff08;用loop back地址是最优选择&#xff09; 应用场景与理论&#xff1a; 由于BGP应用于大型网络中&#xff0c;为了避免单点失败&#xff0c;往往需要通过多条链路连接&#xff0c;当一条链路故障时候就用另一条链路继续工作&#xff0c;但是BGP又无法…