量化投资:探索Qlib量化投资平台
文章平均质量分 73
Qlib是一个面向人工智能的量化投资平台,其目标是在量化投资中发挥潜力、赋能研究并通过人工智能技术创造价值。从探索思路到实施生产,Qlib支持多种机器学习建模范式,包括监督学习、市场动力学建模和强化学习。
宋志辉
这个作者很懒,什么都没留下…
展开
-
qlib架构详解:金融数据分析与决策支持
qlib的架构主要由以下几个部分组成:策略、元控制器、数据服务器、训练器、决策生成器、组合管理和信息提取。每个部分都有其独特的功能和作用。原创 2024-06-28 12:39:45 · 354 阅读 · 1 评论 -
Qlib拉取A股数据
Qlib提供了一个名为qrun的工具,可以自动运行整个工作流(包括构建数据集、训练模型、回测和评估)。如果您想测试主分支中的最新脚本或功能,请使用以下方法安装Qlib。注意:用户不能基于Qlib提供的离线数据增量更新数据(为了减少数据大小,一些字段被移除)。如果您使用的是M1芯片的Mac,您可能会在构建LightGBM的wheel时遇到依赖OpenMP的问题。如果用户有高质量的数据集,建议自行准备数据。安装Qlib,但这不是推荐的方法。此步骤是可选的,如果用户只想在历史数据上测试他们的模型和策略。原创 2024-06-25 17:37:00 · 722 阅读 · 0 评论 -
使用 Qlib 打造自己的量化交易策略:一个实用指南
Qlib 是一个由 Microsoft 开发的量化投资研究平台,它允许用户基于配置自动运行整个量化研究流程。尽管有这种自动化的方便性,许多高级用户更倾向于手动定制每个组件,以探索更多的量化投资策略。本文档旨在为对量化研究细节感兴趣的用户提供一个详细的教程,通过逐步构建 Qlib 组件来演示其应用。通过详细介绍如何使用 Qlib 进行数据下载、处理、模型训练和评估,本教程为用户提供了一条清晰的路径,用于构建和优化自己的量化投资策略。原创 2024-06-25 13:41:23 · 315 阅读 · 0 评论 -
A股股票筛选与CRSI策略实现
本文将介绍如何使用Python和Akshare库实现一个简单的A股股票筛选策略。该策略基于相对强弱指数(RSI)和改良相对强弱指数(CRSI),并筛选出符合特定条件的股票。通过以上步骤,我们实现了一个简单的A股股票筛选策略。该策略通过计算CRSI指标,并筛选出符合特定条件的股票,帮助投资者进行决策。相对强弱指数(RSI)是一种常用的技术分析指标,用于衡量股票价格的相对强度。首先,我们需要获取所有A股股票的代码。主程序中调用以上函数,完成股票数据的获取和筛选。函数获取A股的日线数据,并进行必要的预处理。原创 2024-05-21 16:59:29 · 199 阅读 · 0 评论 -
美股股票筛选程序:从零到一的实现过程
该程序使用了多种金融数据处理工具和技术,包括获取所有美股股票代码、下载股票数据、计算技术指标(如相对强弱指数RSI和复合相对强弱指数CRSI),并最终筛选出符合特定条件的股票。库下载股票数据,计算RSI和CRSI,并最终筛选出符合条件的股票,我们可以轻松筛选出具有潜在投资价值的股票。方法,根据指定的股票代码、开始日期和结束日期下载股票数据,并返回数据框。最后,我们将上述步骤结合起来,筛选出符合特定条件的股票。这个函数先计算RSI值,然后计算连续上涨天数,并最终计算出CRSI值。原创 2024-05-21 15:33:07 · 217 阅读 · 0 评论 -
使用 Qlib 在线模式
Qlib 文档中介绍了离线模式。除此之外,用户还可以使用 Qlib 的在线模式。在在线模式下,Qlib 会通过 Qlib-Server 以集中方式管理提供给 Qlib 的数据。原创 2024-03-29 04:47:41 · 158 阅读 · 0 评论 -
Qlib-Server部署
启用网页管理控制台,RabbitMQ还提供了用于管理整个RabbitMQ的网页管理控制台。网页管理控制台可以帮助用户管理RabbitMQ服务器。在RabbitMQBy中创建管理员用户,默认情况下,RabbitMQBy会创建一个用户名为guest,密码为guest的用户。它将在qlib服务器配置中使用。在启动Qlib服务器之前,需要通过配置nfs服务来确保缓存文件目录已经挂载(或至少准备好挂载)到客户端。RabbitMQ是一个通用任务队列,可以使qlib服务器将请求处理过程和数据生成过程分开。原创 2024-03-28 17:09:02 · 418 阅读 · 0 评论 -
Qlib-Server:量化库数据服务器
Qlib-Server 是 Qlib 的配套服务器系统,它利用 Qlib 进行基本计算,并提供广泛的服务器系统和缓存机制。通过 Qlib-Server,可以以集中的方式管理 Qlib 提供的数据。原创 2024-03-28 16:59:22 · 276 阅读 · 1 评论 -
21、【qlib】Qlib:面向人工智能的量化投资平台
量化投资旨在最大化收益并最小化一系列交易周期内对一组金融工具的风险。近年来,受到AI技术在量化投资方面创新潜力的启发,越来越多的量化研究和实际投资采用AI驱动的工作流程。在丰富量化投资方法的同时,AI技术也为量化投资系统带来了新的挑战。特别是,量化投资的新学习范式要求升级基础设施以适应更新的工作流程;此外,AI技术的数据驱动特性确实表明基础设施需要更强大的性能;此外,在金融场景中应用AI技术解决不同任务时还存在一些独特的挑战。原创 2024-03-24 05:59:59 · 332 阅读 · 0 评论 -
20、【qlib】【其他组件/特性/主题】点时间(PIT)数据库
在进行历史市场分析时,点时间(Point-in-Time,简称PIT)数据至关重要。例如,在回测交易策略时,若使用过去五年历史数据作为输入,并假设模型每日在收盘时进行一次交易,我们需要在计算2020年1月1日的交易信号时,只能依据截至该时点的实际历史数据,即只包含2020年1月1日、2019年12月31日、2019年12月30日等日期的数据。在金融数据领域,尤其是财务报告中,同一数据点可能多次修订。如果仅采用最新版数据进行历史回测,会导致数据泄露问题。原创 2024-03-24 04:53:24 · 109 阅读 · 0 评论 -
19、【qlib】【其他组件/特性/主题】任务管理
工作流部分介绍了如何松耦合地运行研究流程,但使用qrun时只能执行单个任务。为了自动地生成和执行不同的任务,任务管理模块提供了一整套流程,包括任务生成、任务存储、任务训练及任务收集。借助这个模块,用户可以在不同时间段、不同损失函数或甚至不同模型下自动运行他们的任务。此整个流程适用于在线服务场景。原创 2024-03-24 04:43:11 · 92 阅读 · 0 评论 -
18、【qlib】【其他组件/特性/主题】序列化
Qlib支持将DataHandler、DataSet、Processor、Model等组件的状态保存至磁盘并重新加载。原创 2024-03-24 04:34:26 · 63 阅读 · 0 评论 -
17、【qlib】【其他组件/特性/主题】在线模式与离线模式
Qlib支持在线模式(Online mode)和离线模式(Offline mode),本文档仅介绍离线模式。中心化管理数据:用户无需自行管理不同版本的数据。减少缓存生成量。支持远程访问数据。原创 2024-03-24 04:32:44 · 101 阅读 · 0 评论 -
16、【qlib】【其他组件/特性/主题】构建公式化Alpha因子
在量化交易实践中,设计能够解释和预测未来资产回报的新颖因子对策略盈利能力至关重要。这类因子通常被称为Alpha因子,或简称Alpha。原创 2024-03-24 04:30:31 · 137 阅读 · 0 评论 -
15、【Qlib】【主要组件】量化交易中的强化学习
QlibRL包含了一系列涵盖RL(强化学习)管道整个生命周期的组件,包括构建市场模拟器、塑造状态与动作、训练策略(策略)以及在模拟环境中对策略进行回测。QlibRL本质上是在Tianshou和Gym框架的支持下实现的。QlibRL的高层结构如下所示:(此处应有插图“QlibRL_framework.png”,由于文本形式无法显示,请参照原文档)这里简要介绍图中每个组件的作用。EnvWrapperEnvWrapper是对模拟环境的整体封装。原创 2024-03-24 04:25:24 · 300 阅读 · 0 评论 -
14、【Qlib】【主要组件】Online Serving:线管理器、在线策略、在线工具以及更新器
除了回溯测试外,验证模型有效性的另一种途径是在真实市场环境中进行预测甚至是基于预测进行实时交易。在线服务由一系列模块组成,用于使用最新数据的在线模型,主要包括在线管理器(Online Manager)、在线策略(Online Strategy)、在线工具(Online Tool)以及更新器(Updater)。原创 2024-03-24 04:08:12 · 84 阅读 · 0 评论 -
13、【Qlib】【主要组件】分析:评估与结果分析
分析旨在显示日内交易的图形报告,这有助于用户直观地评估和分析投资组合。分析位置(analysis_position)报告图表(report_graph)评分图表(score_ic_graph)累计回报图表(cumulative_return_graph)风险分析图表(risk_analysis_graph)排名标签图表(rank_label_graph)分析模型(analysis_model)模型性能图表(model_performance_graph)原创 2023-10-06 18:43:51 · 232 阅读 · 0 评论 -
12、【Qlib】【主要组件】Qlib Recorder:实验管理
Qlib包含一个名为QlibRecorder的实验管理系统,旨在帮助用户以高效的方式处理实验并分析结果。实验管理器(ExperimentManager)一个管理实验的类。实验(Experiment)一个实验类,其每个实例负责单个实验。记录器(Recorder)一个记录器类,其每个实例负责单次运行。以下是系统结构的概览:此实验管理系统定义了一套接口,并提供了一个基于机器学习平台MLFlow的具体实现MLflowExpManager。原创 2023-10-06 18:33:58 · 241 阅读 · 0 评论 -
11、【Qlib】【主要组件】元控制器:元任务、元数据集和元模型
Meta Controller为预测模型提供指导,旨在学习一系列预测任务之间的常规模式,并利用学到的模式指导即将到来的预测任务。用户可以基于Meta Controller模块实现自己的元模型实例。原创 2023-10-06 18:10:12 · 205 阅读 · 0 评论 -
10、【Qlib】【主要组件】高频交易嵌套决策执行框架
日间交易(例如,投资组合管理)和当日交易(例如,订单执行)是量化投资中的两个热门话题,并且通常会分别进行研究。为了获得日间和当日交易的联合交易绩效,它们必须相互作用,并共同进行回测。为了支持多级的联合回测策略,需要一个相应的框架。公开可用的高频交易框架中没有一个考虑到多级联合交易,这使得上述的回测不准确。除了回测外,不同级别的策略优化不是独立的,而是可以相互影响。例如,最佳的投资组合管理策略可能会随着订单执行绩效的变化而变化(例如,当我们改善订单执行策略时,交易量较高的投资组合可能会成为更好的选择)。原创 2023-10-06 17:50:09 · 297 阅读 · 0 评论 -
9、【Qlib】【主要组件】投资组合策略:投资组合管理
投资组合策略旨在采用不同的投资组合策略,这意味着用户可以基于预测模型的预测分数采用不同的算法来生成投资组合。用户可以通过工作流模块(Workflow module)在自动化工作流中使用投资组合策略。由于 Qlib 中的组件设计成了松耦合方式,投资组合策略也可以作为一个独立模块使用。Qlib 提供了几种实现的投资组合策略。同时,Qlib 也支持自定义策略,用户可以根据自己的需求定制策略。原创 2023-10-06 17:34:44 · 222 阅读 · 0 评论 -
8、【Qlib】【主要组件】预测模型:模型训练和预测
预测模型(Forecast Model)旨在对股票做出预测评分。用户可以通过 qrun 在自动化工作流中使用预测模型。由于 Qlib 中的组件设计成了松耦合方式,预测模型也可以作为一个独立模块使用。原创 2023-10-06 16:26:27 · 410 阅读 · 0 评论 -
7、【Qlib】【主要组件】Data Layer:数据框架与使用
Data Layer 提供了用户友好的 API 来管理和检索数据。它提供了高性能的数据基础设施。它是为量化投资设计的。例如,用户可以轻松地使用 Data Layer 构建公式化的 alpha 值。数据准备数据API数据加载器数据处理器数据集缓存数据和缓存文件结构以下是一个 Qlib 数据工作流的典型示例用户下载数据并将数据转换成 Qlib 格式(文件名后缀为 .bin)。在这一步中,通常只有一些基本数据被存储在硬盘上(例如 OHLCV)。原创 2023-10-06 16:14:25 · 653 阅读 · 0 评论 -
6、【Qlib】【主要组件】Workflow:Workflow管理
Qlib框架中的组件设计成了松散耦合的方式。用户可以像Example那样,使用这些组件构建自己的量化研究Workflow(工作流)。除了这些,Qlib还提供了名为 qrun 的更用户友好的接口,可以自动运行由配置定义的整个工作流程。运行整个工流程被称为一个执行。Data(数据)加载处理切片模型训练和推理保存与加载评估预测信号分析回测对于每次执行,Qlib都有一个完整的系统来跟踪在训练、推理和评估阶段生成的所有信息以及工件。原创 2023-10-06 11:58:19 · 288 阅读 · 0 评论 -
5、【Qlib】【第一步】自定义模型集成
Qlib 的模型库包括 LightGBM、MLP、LSTM 等模型。这些模型都是预测模型的例子。除了 Qlib 提供的默认模型外,用户还可以将他们自己的自定义模型集成到 Qlib 中。用户可以按照以下步骤集成他们自己的自定义模型。定义一个自定义模型类,它应该是 qlib.model.base.Model 的子类。编写一个描述自定义模型的路径和参数的配置文件。测试自定义模型。自定义模型需要继承 qlib.model.base.Model 并重写其中的方法。重写 __init__方法。原创 2023-10-02 21:34:14 · 470 阅读 · 0 评论 -
4、【Qlib】【第一步】Qlib股票数据检索
用户可以使用 Qlib 获取股票数据。以下示例演示了基本方式。原创 2023-10-02 20:58:02 · 331 阅读 · 0 评论 -
3、【Qlib】【第一步】Qlib初始化
region 的值应与存储在 provider_uri 中的数据一致。如果用户想使用美国股票市场数据,他们应该在 provider_uri 中准备自己的美国股票数据,并切换到美国股票模式。下载并准备数据:执行以下命令来下载股票数据。请注意,这些数据是从 Yahoo Finance 收集的,可能不是完美的。如果用户有高质量的数据集,我们推荐用户准备自己的数据。除了provider_uri 和region,qlib.init还有其他的参数。不要在 Qlib 的仓库目录中导入 qlib 包,否则可能会发生错误。原创 2023-10-02 20:18:05 · 354 阅读 · 0 评论 -
2、【Qlib】【第一步】Qlib安装
推荐使用 anaconda/miniconda 来设置环境。Qlib 需要 lightgbm 和 pytorch 包,请使用 pip 来安装它们。Qlib同时支持Windows和Linux。建议在Linux中使用Qlib。Qlib支持Python3,最高支持到Python3.8。原创 2023-10-02 19:39:17 · 1417 阅读 · 0 评论 -
1、【Qlib】【开始】【简介】Qlib:量化平台
Qlib是一个面向AI的量化投资平台,旨在实现AI技术在量化投资中的潜力,赋能研究,并创造价值。通过Qlib,用户可以轻松利用他们的想法来创建更好的量化投资策略。原创 2023-10-02 18:04:31 · 931 阅读 · 0 评论