多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Qlib 选股基准实战手册:Alpha158/Alpha360 上 20+ 模型的评测指标、基准结果与复现流程

Qlib 选股基准实战手册:Alpha158/Alpha360 上 20+ 模型的评测指标、基准结果与复现流程 Qlib 选股基准实战手册Alpha158/Alpha360 上 20 模型的评测指标、基准结果与复现流程【免费下载链接】qlibQlib is an AI-oriented Quant investment platform that aims to use AI tech to empower Quant Research, from exploring ideas to implementing productions. Qlib supports diverse ML modeling paradigms, including supervised learning, market dynamics modeling, and RL, and is now equipped with https://github.com/microsoft/RD-Agent to automate RD process.项目地址: https://gitcode.com/GitHub_Trending/qli/qlib本文基于 Qlib 仓库中的基准说明文档 examples/benchmarks/README.md 展开系统讲解 Qlib 如何对“选股型alpha seeking”模型进行双重评测——信号层面IC/Rank IC与组合层面年化收益/信息比率/最大回撤完整继承 CSI300 与 CSI500 上的基准结果表并结合 LightGBM 工作流配置、run_all_model.py 批量运行脚本以及qlib/workflow/record_temp.py中的记录类源码说明每个指标的产生位置与可复现的端到端操作流程。读完后你能够独立运行任一 benchmark 模型、复算 20 次种子的均值/标准差结果并按仓库贡献规范提交自己的新模型。1. 基准评测的基本设定examples/benchmarks目录收录了一批面向 alpha 挖掘的方法。每个模型的目标都是每天为全市场股票打一个分数预测例如预测股票未来的超额收益模型输出的分数即被视为挖到的 alpha预期是持有高分股票可以获得更高收益。文档明确 alpha 从两个角度评估信号相关性alpha 分数与未来收益之间的相关性即 IC 类指标组合收益基于 alpha 构建组合评价最终总收益组合类指标。组合类指标的具体解释可参考 Qlib 文档中的报告模块 docs/component/report.rst。所有结果表中的数值都是每个基准模型在 Qlib 的Alpha360与Alpha158数据集、分别对应中国 A 股全市场与 CSI300 数据上运行 20 次不同随机种子后计算的均值 ± 标准差。文档同时强调表中数字代表的是每个模型完整 workflow数据加载 → 训练 → 预测 → 回测的表现而不仅是模型本身。2. 评测数据集Alpha158 与 Alpha360 的本质差异文档在结果表后给出了两个数据集的关键区别这一点直接决定了“哪类模型更适合哪个数据集”Alpha158 是表格型tabular数据集不同特征之间的空间关系较弱每个特征都是人工精心设计的即特征工程产物Alpha360 包含未经太多特征工程加工的原始价格与成交量数据特征在时间维度上存在较强的空间关系更适合时间序列类模型GRU、LSTM、Transformer 等。这一对应关系与仓库源码结构吻合两个 handler 均定义在 qlib/contrib/data/handler.py 中Alpha360、Alpha360vwap、Alpha158、Alpha158vwap基准配置 YAML 通过dataset.handler字段引用它们。文档表格中反复出现的 “Alpha158(with selected 20 features)” 说明GRU/LSTM/ALSTM/TRA 等部分模型仅使用基于 LightGBM 模型特征重要性筛选出的 20 个特征而非全部 158 个特征。3. 评测指标体系及其源码实现文档将指标分为两大类并给出了公式。以下先完整给出定义再指出其在源码中的落点。3.1 信号类指标IC / ICIR / Rank IC / Rank ICIR设 (\hat{\mathbf{y}}^{(t)}) 为 t 日的预测分数、(\mathbf{ret}^{(t)}) 为 t 日实际收益corr 为相关系数相关系数 [ \mathrm{corr}(\mathbf{x},\mathbf{y})\frac{\sum_i (x_i-\bar{x})(y_i-\bar{y})}{\sqrt{\sum_i (x_i-\bar{x})^2 \sum_i (y_i-\bar{y})^2}} ]IC(t) corr((\hat{\mathbf{y}}^{(t)}), (\mathbf{ret}^{(t)}))每日对全部股票做横截面 Pearson 相关ICIR mean(IC) / std(IC)IC 的均值除以标准差衡量信号稳定性Rank IC(t) corr(rank((\hat{\mathbf{y}}^{(t)})), rank((\mathbf{ret}^{(t)})))对分数与收益取排名后做 Spearman 相关对离群值更鲁棒Rank ICIR mean(Rank IC) / std(Rank IC)。从源码结构看这些指标由工作流记录类SigAnaRecord产出见 qlib/workflow/record_temp.py_generate从pred.pkl/label.pkl加载预测与标签调用calc_ic后记录metrics { IC: ic.mean(), ICIR: ic.mean() / ic.std(), Rank IC: ric.mean(), Rank ICIR: ric.mean() / ric.std(), }若设置ana_long_shortTrue还会额外产出 Long-Short 年化收益/Sharpe 等指标。横截面相关的另一种计算路径在 qlib/contrib/report/analysis_position/score_ic.py 中_get_score_ic按datetime分组分别用x[label].corr(x[score])IC与methodspearmanRank IC逐日计算与文档公式一致。3.2 组合类指标Annualized Return / Information Ratio / Max Drawdown这一类指标通过“基于 alpha 构建组合并回测”得到包括年化收益、信息比率IR与最大回撤。其实现链路为PortAnaRecordqlib/workflow/record_temp.py调用normal_backtest得到report_normal含 return / bench / cost 三列再对return - bench与return - bench - cost分别做risk_analysis得到带成本与不带成本两套风险指标。值得注意的是run_all_model.py汇总进结果表的是含成本口径的指标即读取1day.excess_return_with_cost.annualized_return、1day.excess_return_with_cost.information_ratio、1day.excess_return_with_cost.max_drawdown三个 metric key见 examples/run_all_model.py因此下文表格中的 Annualized Return / Information Ratio / Max Drawdown 均为扣除交易成本后的净值。4. CSI300 上的基准结果4.1 Alpha158 数据集CSI300Model NameDatasetICICIRRank ICRank ICIRAnnualized ReturnInformation RatioMax DrawdownTCN(Shaojie Bai, et al.)Alpha1580.0279±0.000.2181±0.010.0421±0.000.3429±0.010.0262±0.020.4133±0.25-0.1090±0.03TabNet(Sercan O. Arik, et al.)Alpha1580.0204±0.010.1554±0.070.0333±0.000.2552±0.050.0227±0.040.3676±0.54-0.1089±0.08Transformer(Ashish Vaswani, et al.)Alpha1580.0264±0.000.2053±0.020.0407±0.000.3273±0.020.0273±0.020.3970±0.26-0.1101±0.02GRU(Kyunghyun Cho, et al.)Alpha158(with selected 20 features)0.0315±0.000.2450±0.040.0428±0.000.3440±0.030.0344±0.020.5160±0.25-0.1017±0.02LSTM(Sepp Hochreiter, et al.)Alpha158(with selected 20 features)0.0318±0.000.2367±0.040.0435±0.000.3389±0.030.0381±0.030.5561±0.46-0.1207±0.04Localformer(Juyong Jiang, et al.)Alpha1580.0356±0.000.2756±0.030.0468±0.000.3784±0.030.0438±0.020.6600±0.33-0.0952±0.02SFM(Liheng Zhang, et al.)Alpha1580.0379±0.000.2959±0.040.0464±0.000.3825±0.040.0465±0.020.5672±0.29-0.1282±0.03ALSTM (Yao Qin, et al.)Alpha158(with selected 20 features)0.0362±0.010.2789±0.060.0463±0.010.3661±0.050.0470±0.030.6992±0.47-0.1072±0.03GATs (Petar Velickovic, et al.)Alpha158(with selected 20 features)0.0349±0.000.2511±0.010.0462±0.000.3564±0.010.0497±0.010.7338±0.19-0.0777±0.02TRA(Hengxu Lin, et al.)Alpha158(with selected 20 features)0.0404±0.000.3197±0.050.0490±0.000.4047±0.040.0649±0.021.0091±0.30-0.0860±0.02LinearAlpha1580.0397±0.000.3000±0.000.0472±0.000.3531±0.000.0692±0.000.9209±0.00-0.1509±0.00TRA(Hengxu Lin, et al.)Alpha1580.0440±0.000.3535±0.050.0540±0.000.4451±0.030.0718±0.021.0835±0.35-0.0760±0.02CatBoost(Liudmila Prokhorenkova, et al.)Alpha1580.0481±0.000.3366±0.000.0454±0.000.3311±0.000.0765±0.000.8032±0.01-0.1092±0.00XGBoost(Tianqi Chen, et al.)Alpha1580.0498±0.000.3779±0.000.0505±0.000.4131±0.000.0780±0.000.9070±0.00-0.1168±0.00TFT (Bryan Lim, et al.)Alpha158(with selected 20 features)0.0358±0.000.2160±0.030.0116±0.010.0720±0.030.0847±0.020.8131±0.19-0.1824±0.03MLPAlpha1580.0376±0.000.2846±0.020.0429±0.000.3220±0.010.0895±0.021.1408±0.23-0.1103±0.02LightGBM(Guolin Ke, et al.)Alpha1580.0448±0.000.3660±0.000.0469±0.000.3877±0.000.0901±0.001.0164±0.00-0.1038±0.00DoubleEnsemble(Chuheng Zhang, et al.)Alpha1580.0521±0.000.4223±0.010.0502±0.000.4117±0.010.1158±0.011.3432±0.11-0.0920±0.01表格补充说明继承自原文档“selected 20 features” 基于一个 LightGBM 模型的特征重要性选取DoubleEnsemble 的基模型是 LightGBMTCTS 的基模型是 GRU。4.2 Alpha360 数据集CSI300Model NameDatasetICICIRRank ICRank ICIRAnnualized ReturnInformation RatioMax DrawdownTransformer(Ashish Vaswani, et al.)Alpha3600.0114±0.000.0716±0.030.0327±0.000.2248±0.02-0.0270±0.03-0.3378±0.37-0.1653±0.05TabNet(Sercan O. Arik, et al.)Alpha3600.0099±0.000.0593±0.000.0290±0.000.1887±0.00-0.0369±0.00-0.3892±0.00-0.2145±0.00MLPAlpha3600.0273±0.000.1870±0.020.0396±0.000.2910±0.020.0029±0.020.0274±0.23-0.1385±0.03Localformer(Juyong Jiang, et al.)Alpha3600.0404±0.000.2932±0.040.0542±0.000.4110±0.030.0246±0.020.3211±0.21-0.1095±0.02CatBoost((Liudmila Prokhorenkova, et al.)Alpha3600.0378±0.000.2714±0.000.0467±0.000.3659±0.000.0292±0.000.3781±0.00-0.0862±0.00XGBoost(Tianqi Chen, et al.)Alpha3600.0394±0.000.2909±0.000.0448±0.000.3679±0.000.0344±0.000.4527±0.02-0.1004±0.00DoubleEnsemble(Chuheng Zhang, et al.)Alpha3600.0390±0.000.2946±0.010.0486±0.000.3836±0.010.0462±0.010.6151±0.18-0.0915±0.01LightGBM(Guolin Ke, et al.)Alpha3600.0400±0.000.3037±0.000.0499±0.000.4042±0.000.0558±0.000.7632±0.00-0.0659±0.00TCN(Shaojie Bai, et al.)Alpha3600.0441±0.000.3301±0.020.0519±0.000.4130±0.010.0604±0.020.8295±0.34-0.1018±0.03ALSTM (Yao Qin, et al.)Alpha3600.0497±0.000.3829±0.040.0599±0.000.4736±0.030.0626±0.020.8651±0.31-0.0994±0.03LSTM(Sepp Hochreiter, et al.)Alpha3600.0448±0.000.3474±0.040.0549±0.000.4366±0.030.0647±0.030.8963±0.39-0.0875±0.02ADDAlpha3600.0430±0.000.3188±0.040.0559±0.000.4301±0.030.0667±0.020.8992±0.34-0.0855±0.02GRU(Kyunghyun Cho, et al.)Alpha3600.0493±0.000.3772±0.040.0584±0.000.4638±0.030.0720±0.020.9730±0.33-0.0821±0.02AdaRNN(Yuntao Du, et al.)Alpha3600.0464±0.010.3619±0.080.0539±0.010.4287±0.060.0753±0.031.0200±0.40-0.0936±0.03GATs (Petar Velickovic, et al.)Alpha3600.0476±0.000.3508±0.020.0598±0.000.4604±0.010.0824±0.021.1079±0.26-0.0894±0.03TCTS(Xueqing Wu, et al.)Alpha3600.0508±0.000.3931±0.040.0599±0.000.4756±0.030.0893±0.031.2256±0.36-0.0857±0.02TRA(Hengxu Lin, et al.)Alpha3600.0485±0.000.3787±0.030.0587±0.000.4756±0.030.0920±0.031.2789±0.42-0.0834±0.02IGMTF(Wentao Xu, et al.)Alpha3600.0480±0.000.3589±0.020.0606±0.000.4773±0.010.0946±0.021.3509±0.25-0.0716±0.02HIST(Wentao Xu, et al.)Alpha3600.0522±0.000.3530±0.010.0667±0.000.4576±0.010.0987±0.021.3726±0.27-0.0681±0.01KRNNAlpha3600.0173±0.010.1210±0.060.0270±0.010.2018±0.04-0.0465±0.05-0.5415±0.62-0.2919±0.13SandwichAlpha3600.0258±0.000.1924±0.040.0337±0.000.2624±0.030.0005±0.030.0001±0.33-0.1752±0.05两张表放在一起可以读出几点对比基准有用的事实同一模型在不同数据集上表现可能差异很大如 Transformer 在 Alpha158 上年化 0.027在 Alpha360 上为负这正呼应第 2 节“特征结构决定模型适配性”的结论而表格类模型LightGBM、CatBoost、XGBoost在两个数据集上均保持正收益。5. CSI500 上的基准结果与迁移方法CSI500 的结果尚不完整文档明确说明欢迎社区为 CSI500 补齐模型结果。文档给出的核心实操是将 CSI300 的模型迁移到 CSI500 只需几条命令。以 LightGBM 为例注意仓库中 workflow_config_lightgbm_Alpha158_csi500.yaml 已存在market: csi500、benchmark: SH000905与下面 sed 替换的规则一致可直接复用它做验证cd examples/benchmarks/LightGBM pip install -r requirements.txt # 新建配置并把 benchmark 改为 csi500 cp workflow_config_lightgbm_Alpha158.yaml workflow_config_lightgbm_Alpha158_csi500.yaml sed -i s/csi300/csi500/g workflow_config_lightgbm_Alpha158_csi500.yaml sed -i s/SH000300/SH000905/g workflow_config_lightgbm_Alpha158_csi500.yaml # 方式一只运行一次 qrun workflow_config_lightgbm_Alpha158_csi500.yaml # 方式二自动多次运行并汇总结果有随机性的模型请跑 20 次 cd ../../ python run_all_model.py run 3 lightgbm Alpha158 csi500替换的本质就是改两处配置market成分股集合csi300→csi500与benchmark基准指数代码SH000300→SH000905。run_all_model.py的universe参数会自动在文件名中追加_csi500后缀来定位对应 YAML见 examples/run_all_model.py 中get_all_files的 glob 拼接逻辑。5.1 CSI500 结果表文档当前收录部分Alpha158 数据集Model NameDatasetICICIRRank ICRank ICIRAnnualized ReturnInformation RatioMax DrawdownLinearAlpha1580.0332±0.000.3044±0.000.0462±0.000.4326±0.000.0382±0.000.1723±0.00-0.4876±0.00MLPAlpha1580.0229±0.010.2181±0.050.0360±0.000.3409±0.020.0043±0.020.0602±0.27-0.2184±0.04LightGBMAlpha1580.0399±0.000.4065±0.000.0482±0.000.5101±0.000.1284±0.001.5650±0.00-0.0635±0.00CatBoostAlpha1580.0345±0.000.2855±0.000.0417±0.000.3740±0.000.0496±0.000.5977±0.00-0.1496±0.00DoubleEnsembleAlpha1580.0380±0.000.3659±0.000.0442±0.000.4324±0.000.0382±0.000.1723±0.00-0.4876±0.00Alpha360 数据集Model NameDatasetICICIRRank ICRank ICIRAnnualized ReturnInformation RatioMax DrawdownMLPAlpha3600.0258±0.000.2021±0.020.0426±0.000.3840±0.020.0022±0.020.0301±0.26-0.2064±0.02LightGBMAlpha3600.0400±0.000.3605±0.000.0536±0.000.5431±0.000.0505±0.000.7658±0.02-0.1880±0.00CatBoostAlpha3600.0382±0.000.3229±0.000.0489±0.000.4649±0.020.0297±0.000.4227±0.02-0.1499±0.01DoubleEnsembleAlpha3600.0361±0.000.3092±0.000.0499±0.000.4793±0.000.0382±0.000.1723±0.02-0.4876±0.006. 基准工作流的完整配置剖析每个 benchmark 模型都遵循同一套目录约定其核心是一份可被qrun读取的工作流配置。以 examples/benchmarks/LightGBM/workflow_config_lightgbm_Alpha158.yaml 为例全文结构如下参数注释为本文补充qlib_init: provider_uri: ~/.qlib/qlib_data/cn_data # 本地数据目录 region: cn # 数据区域 market: market csi300 # 股票池锚点定义供复用 benchmark: benchmark SH000300 # 基准指数 data_handler_config: data_handler_config start_time: 2008-01-01 # 数据起始 end_time: 2020-08-01 # 数据结束 fit_start_time: 2008-01-01 # 归一化等 fit 阶段起始 fit_end_time: 2014-12-31 # fit 阶段结束防止用测试段信息拟合 instruments: *market port_analysis_config: port_analysis_config strategy: class: TopkDropoutStrategy # 每日持有 topk 只随机卖出 n_drop 只再买入 module_path: qlib.contrib.strategy kwargs: signal: PRED # 占位符运行时替换为模型预测 topk: 50 # 持股数量 n_drop: 5 # 每日换仓数量 backtest: start_time: 2017-01-01 end_time: 2020-08-01 account: 100000000 # 初始资金 1 亿 benchmark: *benchmark exchange_kwargs: limit_threshold: 0.095 # 涨跌停判定阈值±9.5% 视为不可交易 deal_price: close # 以收盘价成交 open_cost: 0.0005 # 买入成本 0.05% close_cost: 0.0015 # 卖出成本 0.15% min_cost: 5 # 最低手续费 5 元 task: model: class: LGBModel module_path: qlib.contrib.model.gbdt kwargs: # LightGBM 超参loss、学习率、正则、叶子数等 loss: mse colsample_bytree: 0.8879 learning_rate: 0.2 subsample: 0.8789 lambda_l1: 205.6999 lambda_l2: 580.9768 max_depth: 8 num_leaves: 210 num_threads: 20 dataset: class: DatasetH # 表格型数据集封装 module_path: qlib.data.dataset kwargs: handler: class: Alpha158 module_path: qlib.contrib.data.handler kwargs: *data_handler_config segments: train: [2008-01-01, 2014-12-31] valid: [2015-01-01, 2016-12-31] test: [2017-01-01, 2020-08-01] record: - class: SignalRecord # 产出 pred.pkl / label.pkl module_path: qlib.workflow.record_temp kwargs: {model: MODEL, dataset: DATASET} - class: SigAnaRecord # 计算 IC/ICIR/Rank IC/Rank ICIR module_path: qlib.workflow.record_temp kwargs: {ana_long_short: False, ann_scaler: 252} - class: PortAnaRecord # 回测 风险分析 module_path: qlib.workflow.record_temp kwargs: {config: *port_analysis_config}这段配置把第 3、4 节的所有要素串了起来record段的三个记录类分别对应“出预测 → 算 IC 指标 → 回测出组合指标”的流水线TopkDropoutStrategy定义于 qlib/contrib/strategy/signal_strategy.pyPRED/MODEL/DATASET占位符在运行时被fill_placeholder替换为真实对象见 qlib/workflow/record_temp.py。同时注意segments与backtest时间窗的一致性train/valid 结束于 2016 年底、回测从 2017 年开始保证前视信息不泄漏。7. 批量运行与统计汇总run_all_model.py第 4、5 节结果表中的 “mean±std” 由 examples/run_all_model.py 自动生成。该脚本基于fire暴露ModelRunner.run命令核心流程为get_all_folders扫描benchmarks/下的模型目录按models参数筛选或用--exclude反选每个模型在临时 conda 环境中安装各自的requirements.txt含 torch 的会自动用 light-the-torch 适配 CUDA并从qlib_uri安装 qlibgen_yaml_file_without_seed_kwargs会读取 YAML 并删除task.model.kwargs.seed使同一次运行内的多次迭代天然使用不同随机种子见 examples/run_all_model.py循环执行times次qrunget_all_results通过R.get_exp拉取每个 recorder 的list_metrics()只收集FINISHED且包含1day.excess_return_with_cost.annualized_return的完整结果提取 7 个指标cal_mean_std计算均值/标准差gen_and_save_md_table生成table.md并归档实验目录。run的完整签名与用法示例继承自脚本 docstring# Case 1 - 所有模型运行 3 次 python run_all_model.py run 3 # Case 2 - 指定模型 python run_all_model.py run 3 mlp # Case 3 - 指定模型 数据集 python run_all_model.py run 3 mlp Alpha158 # Case 4 - 排除法 python run_all_model.py run 3 [mlp,tft,lstm] --excludeTrue # Case 5 - 指定模型列表运行一次 python run_all_model.py run --models[mlp,lightgbm] # Case 6 - 排除列表运行一次 python run_all_model.py run --models[mlp,tft,sfm] --excludeTrue # Case 7 - lightgbm 在 csi500 上运行 3 次 python run_all_model.py run 3 lightgbm Alpha158 csi500主要参数times运行次数、modelsstr/list要跑或要排除的模型、dataset默认Alpha360、universe股票池后缀如csi500、exclude反选、qlib_uriqlib 安装地址支持远端或绝对路径的本地目录、exp_folder_name默认run_all_model_records。脚本 docstring 中明确注明了适用前提目前仅支持 Linux且暂不支持同一模型并行多次运行。8. 贡献新模型到基准仓库对新模型贡献持开放态度文档同时提醒官方实现与调参资源有限部分模型的实际潜力可能高于表中表现欢迎社区探索。贡献步骤如下原文中指向仓库内部的链接已转为本地相对路径为你的模型在examples/benchmarks/下创建文件夹可参考 examples/benchmarks/TCTS 的结构文件夹内包含三项requirements.txt依赖声明README.md模型简介workflow_config_model name_dataset.yaml可被qrun读取的配置。鼓励在所有数据集上运行你的模型可选把你的模型作为模块集成进 qlib/contrib/model 目录用自动脚本 run_all_model.py 以20 次不同随机种子运行把结果更新到基准表计算资源不足可在 PR 中求助更新 README 的 Whats New 新闻列表与 Quant Model Paper Zoo 模型列表然后提交 PR。9. FAQ 与重要注意事项Q*.py与*_ts.py命名的模型有什么区别A*_ts.py命名的模型专为TSDatasetH设计——它会自动把表格数据组织成时间序列张量*.py命名的模型面向DatasetH表格型数据。用户仍可以把时间序列模型用在表格数据集上前提是列与列之间存在时间序列关系。注意事项适用前提与限制均继承自原文档版本基线0.8.0 之后的回测实现与更早版本差异较大阅读旧版数字前请先查阅变更历史 docs/changelog/changelog.rst数据集版本如需精确复现文中数字应使用v1数据集python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn --version v1。新版 qlib 默认数据集为v2由于数据来自 YahooFinance API稳定性有限v2 与 v1 的结果可能存在差异统计口径所有指标均为 20 次随机种子运行的均值 ± 标准差表格类模型如 LightGBM 固定超参的 std 通常接近 0结果口径组合类指标为扣除交易成本后的超额收益口径1day.excess_return_with_cost.*成本参数即第 6 节配置中的open_cost/close_cost/min_cost与涨跌停约束。小结本文完整继承了 examples/benchmarks/README.md 的评测框架双视角指标、数据集差异说明、CSI300/CSI500 全部结果表、CSI500 迁移命令、贡献流程与 FAQ并补充了仓库源码级证据指标计算落在 SigAnaRecord 与 score_ic.py回测与风险分析落在 PortAnaRecord批量统计由 run_all_model.py 完成端到端配置范式见 LightGBM 工作流 YAML。按第 5、6 节的命令与配置即可自行复现任一基准结果并按第 8 节的规范把自己的模型加入对比。【免费下载链接】qlibQlib is an AI-oriented Quant investment platform that aims to use AI tech to empower Quant Research, from exploring ideas to implementing productions. Qlib supports diverse ML modeling paradigms, including supervised learning, market dynamics modeling, and RL, and is now equipped with https://github.com/microsoft/RD-Agent to automate RD process.项目地址: https://gitcode.com/GitHub_Trending/qli/qlib创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表