
MLFinLab 金融机器学习指南5 个步骤从原始行情做到回测【免费下载链接】mlfinlabMlFinLab helps portfolio managers and traders who want to leverage the power of machine learning by providing reproducible, interpretable, and easy to use tools.项目地址: https://gitcode.com/gh_mirrors/ml/mlfinlab你拿行情数据跑过模型吗如果验证集表现很好实盘却失效多半是标签跨期泄漏了训练集。MLFinLab 是 Hudson Thames 维护的金融机器学习 Python 库围绕这个场景提供 15 个以上专用模块覆盖从数据结构、标注、验证到回测统计的每一步。谁适合用 MLFinLab做股票、期货策略研究的量化开发者你已经有自己的特征和模型但标注靠手写循环、验证还在用普通 k 折结果不敢信。想用《Advances in Financial Machine Learning》方法却缺现成代码的人三重障碍标注、分数差分、Purged K-Fold 这类概念在这套库里都有可直接调用的实现。它的代码结构按任务拆成了独立子包例如 mlfinlab/labeling、mlfinlab/cross_validation、mlfinlab/features你可以只取用需要的部分。MLFinLab 安装与上手三步跑通第 1 步安装pip install mlfinlab第 2 步加载内置示例数据from mlfinlab.datasets import load_stock_prices data load_stock_prices()返回的 DataFrame 包含 23 只 ETF 在 2008 到 2016 年的日线数据不需要你准备任何文件。第 3 步跑第一个特征函数from mlfinlab.features import fracdiff result fracdiff(data[SPY], d0.5)到这里数据、特征两步已经走通。要直接拿到一份特征 标签的多资产训练集可以调用 mlfinlab/datasets 里的generate_multi_asset_data_set(start_date, end_date)它会按三重障碍方法完成标注并返回 X、y 和合约信息后面几节会讲它为什么值得第一个跑。特征工程分数差分参数 d 怎么定金融价格序列往往不平稳直接喂给模型容易过拟合噪声。分数差分是折中方案d 取 1 是普通一阶差分丢掉全部历史记忆d 取 0 则完全保留记忆、也不平稳。选对 d序列既平稳又尽量保留长期依赖。mlfinlab/features 提供两种实现扩展窗口版和固定窗口版效率更高并内置 ADF 平稳性检验辅助函数。典型用法from mlfinlab.features import plot_min_ffd plot_min_ffd(data)这张图会在横轴扫 d右侧画 ADF 统计量、左侧画差分序列与原序列的相关性帮你一眼看出通过平稳性检验的最小 d 是多少。经验起点是 d0.5然后按图调整。标注与验证三重障碍标注和 Purged K-Fold 怎么用用三重障碍法生成训练标签普通固定窗口标注只关心 N 天后的涨跌样本里大量是没发生什么的行情。mlfinlab/labeling 的三重障碍法先用品类 CUSUM 滤波器挑出有行情发生的入场事件再给每个事件同时设三条边界止盈线、止损线和时间边界。先碰到哪条就决定这条样本的标签——1、-1 或 0。配合每日波动率设定边界宽度跨品种、跨时期的样本尺度自然对齐。标签函数支持多进程并行日线量级的数据几分钟内可以跑完。同一目录还有固定时间窗、原始收益率等简单标注器适合快速验证想法正式建模建议直接用三重障碍。用 Purged K-Fold 避免验证泄漏训练集里如果存在信息窗口与测试样本标签期重叠的样本k 折切分就会把答案泄给模型验证分数虚高。mlfinlab/cross_validation 的PurgedKFold接受每个样本的信息起止时间samples_info_sets自动删掉这些重叠训练样本还可以用pct_embargo在训练和测试边界之间再加一段隔离带。多资产组合场景则有堆叠版本可用验证完之后mlfinlab/backtest_statistics 直接算夏普、索提诺、Calmar 等回测指标。常见问题与避坑分数差分的 d 到底取多少d 太小序列仍然不平稳模型容易拟合漂移d 太大特征几乎只剩噪声历史记忆被丢光。用上面的 ADF 曲线找通过检验的最小 d一般落在 0.2 到 0.7 之间。曲线太平所有 d 都不通过就先检查数据本身有没有缺失或断档。验证分数突然变低是不是模型坏了更可能的是泄漏被修掉了。把普通 KFold 换成 PurgedKFold 并加上 embargo 后验证分数明显下降是正常现象说明之前的分数确实虚高。这时应重新比较各模型而不是回退切分方式。训练数据从哪来库里自带 3 份数据23 只 ETF 的日线、E-mini SP 500 的 tick 数据样本、dollar bar 样本。要一份标注好的训练集直接调generate_multi_asset_data_set不必自己管理数据文件。另外提醒一点仓库内代码采用 all rights reserved 许可学习和原型验证没问题商业用途需要联系 Hudson Thames 购买授权。下一步先跑通一个最小管线官方文档和配套讲义视频覆盖了每个模块的理论与参数说明建议先读标注和交叉验证两章。最省事的起点是拿generate_multi_asset_data_set生成一份多资产训练集按分数差分特征 → 训练分类器 → PurgedKFold 验证 → 回测统计的顺序跑一遍整条链路半天内可以搭起来。遇到卡点团队的工程师和量化从业者都在社区 Slack 频道里可以贴代码求助【免费下载链接】mlfinlabMlFinLab helps portfolio managers and traders who want to leverage the power of machine learning by providing reproducible, interpretable, and easy to use tools.项目地址: https://gitcode.com/gh_mirrors/ml/mlfinlab创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考