<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>金融机器学习的进展 on Yuunagi Library</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/index.html</link><description>Recent content in 金融机器学习的进展 on Yuunagi Library</description><generator>Hugo</generator><language>zh-CN</language><copyright>© Yuunagi</copyright><lastBuildDate>Fri, 17 Jul 2026 23:03:29 +0800</lastBuildDate><atom:link href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/index.xml" rel="self" type="application/rss+xml"/><item><title>第01章 · 金融机器学习作为一门独立学科</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch01.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch01.html</guid><description>&lt;h1 id="金融机器学习作为一门独立学科"&gt;金融机器学习作为一门独立学科&lt;a class="anchor" href="#%e9%87%91%e8%9e%8d%e6%9c%ba%e5%99%a8%e5%ad%a6%e4%b9%a0%e4%bd%9c%e4%b8%ba%e4%b8%80%e9%97%a8%e7%8b%ac%e7%ab%8b%e5%ad%a6%e7%a7%91"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="11-动机"&gt;1.1 动机&lt;a class="anchor" href="#11-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;机器学习（Machine Learning, ML）正在改变我们生活的方方面面。如今 ML 算法完成的任务，直到不久前还只有专家才能胜任。就金融而言，这是采用颠覆性技术最激动人心的时刻——它将改变几代人投资的方式。本书讲解经过科学验证、我在二十年间实践有效的 ML 工具，这些工具帮助我为一些最苛刻的机构投资者管理了大量资金。&lt;/p&gt;
&lt;p&gt;关于投资的书籍大多分为两类。一类是作者并未实践其所教的著作——它们包含极其优美的数学，描述的却是一个并不存在的世界。一个定理在逻辑上为真，并不意味着它在物理上也为真。另一类是作者缺乏严谨学术理论的著作——他们滥用数学工具来描述实际的观察结果，模型过拟合，一经实施便告失败。学术研究与金融市场的实际应用脱节，而交易/投资领域的许多应用又缺乏坚实的科学基础。&lt;/p&gt;
&lt;p&gt;写这本书的第一个动机，是跨越横亘在学术界与工业界之间的鸿沟。我曾身处鸿沟两侧，深知跨越它的困难，也理解固守一方的容易。美德在于平衡。本书不会仅因数学之美而推崇某种理论，也不会仅因看似有效而提出某种方案。我的目标是传递那种只来自经验、并以严谨方式形式化的知识。&lt;/p&gt;
&lt;p&gt;第二个动机源于让金融回归服务本源的愿望。多年来，我在学术期刊和报纸上发表的文章表达了对金融当前社会角色的不满。投资者被诱导在江湖骗子的煽动和大众媒体的鼓噪下，凭直觉豪赌自己的财富。在不久的将来，ML 将主导金融，科学将遏制猜测，投资将不再意味着赌博。我希望读者在那场革命中发挥作用。&lt;/p&gt;
&lt;p&gt;第三个动机是许多投资者未能把握 ML 应用于投资的复杂性。这对于向「量化基本面」（quantamental）空间转型的自由裁量型公司似乎尤其如此。我担心他们的高期望无法实现——不是因为 ML 失败了，而是因为他们错误地使用了 ML。未来几年，许多公司将直接从学术界或硅谷引进现成的 ML 算法进行投资，我的预测是它们会亏损（输给更好的 ML 方案）。战胜群体的智慧，比识别人脸或驾驶汽车更难。通过本书，我希望你能学会解决那些使金融成为 ML 特别困难战场的一些挑战，比如回测过拟合（backtest overfitting）。金融 ML 是一门独立的学科，与标准 ML 相关但又有所区别，本书将为你揭开它的面纱。&lt;/p&gt;
&lt;h2 id="12-金融机器学习项目失败的主要原因"&gt;1.2 金融机器学习项目失败的主要原因&lt;a class="anchor" href="#12-%e9%87%91%e8%9e%8d%e6%9c%ba%e5%99%a8%e5%ad%a6%e4%b9%a0%e9%a1%b9%e7%9b%ae%e5%a4%b1%e8%b4%a5%e7%9a%84%e4%b8%bb%e8%a6%81%e5%8e%9f%e5%9b%a0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;量化金融的失败率很高，金融 ML 尤其如此。少数成功者积累了大量资产，并为投资者持续带来卓越业绩。然而，这是一个罕见的结果，原因本书将会解释。在过去二十年里，我目睹了许多人来来去去，许多公司起起落落。根据我的经验，所有失败背后都有一个共同的关键错误。&lt;/p&gt;
&lt;h3 id="121-西西弗斯范式"&gt;1.2.1 西西弗斯范式&lt;a class="anchor" href="#121-%e8%a5%bf%e8%a5%bf%e5%bc%97%e6%96%af%e8%8c%83%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;自由裁量型投资组合经理（discretionary portfolio managers, PM）做出投资决策时，不遵循特定的理论或逻辑（如果有，他们就是系统型 PM 了）。他们消费原始的新闻和分析，但主要依靠自己的判断或直觉。他们可能基于某个故事为决策辩护，但每个决策都有一个故事。因为没有人完全理解他们下注背后的逻辑，投资公司让他们在各自独立的「孤岛」（silos）中工作，以确保分散化。如果你参加过自由裁量型 PM 的会议，你可能注意到它们是多么冗长而无的放矢。每个与会者似乎都执迷于某条轶事信息，并在缺乏基于事实的经验证据的情况下做出巨大的论证跳跃。这并不意味着自由裁量型 PM 不能成功——相反，其中一些人确实成功了。关键在于，他们天然无法作为一个团队工作。把 50 个自由裁量型 PM 放在一起，他们会相互影响，直到最终你为一个人的工作支付 50 份薪水。因此，让他们在孤岛中工作，尽可能少地互动，是有道理的。&lt;/p&gt;
&lt;p&gt;但凡我看到这个模式被应用到量化或 ML 项目上，结果都是灾难。董事会的想法是：让我们对量化人员做对自由裁量型 PM 有效的事情——雇 50 个博士，要求每个人在六个月内产出一个投资策略。这种方法总是适得其反，因为每个博士都会疯狂地寻找投资机会，最终满足于：(1) 在过拟合回测中看起来很棒的假阳性，或 (2) 标准因子投资——一个人满为患、夏普比率低的策略，但至少有学术支持。两种结果都会让投资委员会失望，项目因此被取消。即使这 50 人中有 5 人发现了真正的成果，其利润也不足以覆盖 50 人的开支，于是这 5 人会另谋高就，寻求合理的回报。&lt;/p&gt;</description></item><item><title>第1部分 · 数据分析</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/part1.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/part1.html</guid><description>&lt;section class="book-part"&gt;
 &lt;p class="book-part-label"&gt;Part 1&lt;/p&gt;
 &lt;h2 class="book-part-title"&gt;数据分析&lt;/h2&gt;
 &lt;p class="book-part-desc"&gt;如何结构化金融数据——数据类型、标签、样本权重、分数阶差分。&lt;/p&gt;
&lt;/section&gt;
&lt;h2 id="本部分章节"&gt;本部分章节&lt;a class="anchor" href="#%e6%9c%ac%e9%83%a8%e5%88%86%e7%ab%a0%e8%8a%82"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;a class="part-chapter" href="ch02.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 2 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;金融数据结构&lt;/span&gt;
&lt;/a&gt;
&lt;a class="part-chapter" href="ch03.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 3 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;标签方法&lt;/span&gt;
&lt;/a&gt;
&lt;a class="part-chapter" href="ch04.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 4 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;样本权重&lt;/span&gt;
&lt;/a&gt;
&lt;a class="part-chapter" href="ch05.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 5 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;分数阶差分特征&lt;/span&gt;
&lt;/a&gt;</description></item><item><title>第02章 · 金融数据结构</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch02.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch02.html</guid><description>&lt;h1 id="金融数据结构"&gt;金融数据结构&lt;a class="anchor" href="#%e9%87%91%e8%9e%8d%e6%95%b0%e6%8d%ae%e7%bb%93%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="21-动机"&gt;2.1 动机&lt;a class="anchor" href="#21-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在本章中我们将学习如何处理非结构化的金融数据，并从中导出适合 ML 算法的结构化数据集。一般来说，你不想消费别人已处理过的数据集，因为可能的结果是你发现了别人已经知道或即将发现的东西。理想情况下，你的起点是一批非结构化的原始数据，你将以某种方式处理它，从而导出信息丰富的特征。&lt;/p&gt;
&lt;h2 id="22-金融数据的基本类型"&gt;2.2 金融数据的基本类型&lt;a class="anchor" href="#22-%e9%87%91%e8%9e%8d%e6%95%b0%e6%8d%ae%e7%9a%84%e5%9f%ba%e6%9c%ac%e7%b1%bb%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;金融数据有多种形态。表 2.1 展示了四种基本类型的金融数据，按多样性从左到右递增排列。接下来，我们将讨论它们的不同性质和应用。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;表 2.1&lt;/strong&gt; 金融数据的四种基本类型&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th style="text-align: center"&gt;&lt;strong&gt;基本面数据&lt;/strong&gt;&lt;/th&gt;
					&lt;th style="text-align: center"&gt;&lt;strong&gt;市场数据&lt;/strong&gt;&lt;/th&gt;
					&lt;th style="text-align: center"&gt;&lt;strong&gt;分析数据&lt;/strong&gt;&lt;/th&gt;
					&lt;th style="text-align: center"&gt;&lt;strong&gt;另类数据&lt;/strong&gt;&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td style="text-align: center"&gt;- 资产&lt;br&gt;- 负债&lt;br&gt;- 销售额&lt;br&gt;- 成本/利润&lt;br&gt;- 宏观变量&lt;br&gt;- ...&lt;/td&gt;
					&lt;td style="text-align: center"&gt;- 价格/收益率/隐含波动率&lt;br&gt;- 成交量&lt;br&gt;- 股息/利息&lt;br&gt;- 公开市场操作利率&lt;br&gt;- 报价/撤单&lt;br&gt;- 主动方&lt;br&gt;- ...&lt;/td&gt;
					&lt;td style="text-align: center"&gt;- 分析师推荐&lt;br&gt;- 信用评级&lt;br&gt;- 盈利预期&lt;br&gt;- 新闻情绪&lt;br&gt;- ...&lt;/td&gt;
					&lt;td style="text-align: center"&gt;- 卫星/监控图像&lt;br&gt;- Google 搜索&lt;br&gt;- Twitter/聊天&lt;br&gt;- 元数据&lt;br&gt;- ...&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="221-基本面数据"&gt;2.2.1 基本面数据&lt;a class="anchor" href="#221-%e5%9f%ba%e6%9c%ac%e9%9d%a2%e6%95%b0%e6%8d%ae"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;基本面数据涵盖可在监管文件和商业分析中找到的信息。它主要是会计数据，按季度报告。这种数据的一个特点是报告时有滞后。你必须确认每个数据点确切的发布时间，以便你的分析只在该信息公开可用之后才使用它。一个常见的初学者错误是假设该数据在报告期末发布。事实从来不是这样。&lt;/p&gt;
&lt;p&gt;例如，Bloomberg 发布的基本面数据按报告中包含的最后日期索引，该日期先于发布日期（通常早 1.5 个月）。换言之，Bloomberg 将这些值分配到一个它们尚不为人知的日期。你不会相信每年有多少论文使用了错位的基本面数据，尤其是在因子投资文献中。一旦你正确对齐数据，那些论文中的大量发现都无法复现。&lt;/p&gt;
&lt;p&gt;基本面数据的第二个特点是它经常被回填或更正。「回填」（backfilling）意味着为缺失数据分配一个值，即使这些值在当时是未知的。「更正值」（reinstated value）是修正初始错误发布的值。一家公司可能在首次发布很久之后对过去一个季度的结果发布多次更正，数据供应商可能用更正覆盖初始值。问题是，更正值在首次发布日期并不为人所知。一些数据供应商通过为每个变量存储多个发布日期和值来规避这个问题。例如，我们通常对单次季度 GDP 发布有三个值：原始发布值和两次月度修正。然而，非常常见的是，有研究使用最终发布值并将其分配到首次发布的时间，甚至报告期的最后一天。我们将在&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch11.html"&gt;第 11 章&lt;/a&gt;讨论回测错误时重新审视这个错误及其影响。&lt;/p&gt;
&lt;p&gt;基本面数据非常规整且低频。由于对市场如此可及，剩余可利用的价值很可能不多。不过，它与其他数据类型结合时可能有用。&lt;/p&gt;
&lt;h3 id="222-市场数据"&gt;2.2.2 市场数据&lt;a class="anchor" href="#222-%e5%b8%82%e5%9c%ba%e6%95%b0%e6%8d%ae"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;市场数据包括在交易所（如 CME）或交易场所（如 MarketAxess）发生的所有交易活动。理想情况下，你的数据提供商给了你原始数据流，包含各种非结构化信息，如允许你完全重构交易簿的 FIX 消息，或 BWIC（竞价需求）的完整响应集合。每个市场参与者在交易记录中都留下特征性的足迹，只要有足够的耐心，你就能找到预判竞争对手下一步行动的方法。例如，TWAP 算法留下非常特别的足迹，掠夺性算法利用它来抢跑其日末交易（通常是对冲）活动（Easley、López de Prado 和 O'Hara [2011]）。人工 GUI 交易员通常以整手交易，你可以利用这个事实估计在给定时间点有多少比例的成交量来自他们，然后将其与特定的市场行为关联。&lt;/p&gt;</description></item><item><title>第03章 · 标签方法</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch03.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch03.html</guid><description>&lt;h1 id="标签方法"&gt;标签方法&lt;a class="anchor" href="#%e6%a0%87%e7%ad%be%e6%96%b9%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="31-动机"&gt;3.1 动机&lt;a class="anchor" href="#31-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch02.html"&gt;第 2 章&lt;/a&gt;中，我们讨论了如何从非结构化数据集中产生金融特征矩阵 X。无监督学习算法可以从该矩阵 X 中学习模式，例如它是否包含层次聚类。另一方面，监督学习算法要求 X 中的行与标签或值数组 y 关联，以便这些标签或值可以在未见过的特征样本上被预测。在本章中，我们将讨论给金融数据打标签的方法。&lt;/p&gt;
&lt;h2 id="32-固定时间窗口法"&gt;3.2 固定时间窗口法&lt;a class="anchor" href="#32-%e5%9b%ba%e5%ae%9a%e6%97%b6%e9%97%b4%e7%aa%97%e5%8f%a3%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;就金融而言，几乎所有 ML 论文都使用固定时间窗口法（fixed-time horizon method）标记观测。该方法可描述如下。考虑一个具有 I 行的特征矩阵 X，{X&lt;del&gt;i&lt;/del&gt;}&lt;del&gt;i=1,...,I&lt;/del&gt;，从索引为 t = 1, ..., T 的某些条中抽取，其中 I ≤ T。&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch02.html"&gt;第 2 章&lt;/a&gt;第 2.5 节讨论了产生特征集 {X&lt;del&gt;i&lt;/del&gt;}&lt;del&gt;i=1,...,I&lt;/del&gt; 的采样方法。观测 X&lt;del&gt;i&lt;/del&gt; 被分配标签 y&lt;del&gt;i&lt;/del&gt; ∈ {−1, 0, 1}，&lt;/p&gt;
&lt;p&gt;&lt;img src="images/Image00599.webp" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;其中 τ 是预定义的常数阈值，t&lt;del&gt;i,0&lt;/del&gt; 是 X&lt;del&gt;i&lt;/del&gt; 发生之后紧接的条的索引，t&lt;del&gt;i,0&lt;/del&gt; + h 是 t&lt;del&gt;i,0&lt;/del&gt; 之后第 h 个条的索引，&lt;img src="images/Image00188.webp" alt="" /&gt;
 是条跨度 h 上的价格收益，&lt;/p&gt;
&lt;p&gt;&lt;img src="images/Image00602.webp" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;由于文献几乎总是使用时间条，h 隐含了一个固定时间窗口。参考文献部分列出了多项 ML 研究，其中 Dixon 等 [2016] 是该标记方法的一个近期例子。尽管它很流行，但在大多数情况下有若干理由应避免这种方法。第一，正如我们在&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch02.html"&gt;第 2 章&lt;/a&gt;中看到的，时间条不具备良好的统计性质。第二，无论观测到的波动率如何，都应用相同的阈值 τ。假设 τ = 1E−2，有时我们在已实现条波动率为 &lt;img src="images/Image00207.webp" alt="" /&gt;
（例如夜间时段）时将观测标记为 y&lt;del&gt;i&lt;/del&gt; = 1，有时在 &lt;img src="images/Image00606.webp" alt="" /&gt;
（例如开盘附近）。绝大多数标签将是 0，即使收益 &lt;img src="images/Image00657.webp" alt="" /&gt;
 是可预测的且统计显著。&lt;/p&gt;</description></item><item><title>第04章 · 样本权重</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch04.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch04.html</guid><description>&lt;h1 id="样本权重"&gt;样本权重&lt;a class="anchor" href="#%e6%a0%b7%e6%9c%ac%e6%9d%83%e9%87%8d"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="41-动机"&gt;4.1 动机&lt;a class="anchor" href="#41-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch03.html"&gt;第 3 章&lt;/a&gt;提出了几种标记金融观测的新方法。我们引入了两个新概念——三重障碍法和元标签——并解释了它们在金融应用（包括量化基本面投资策略）中的用途。在本章中，你将学习如何使用样本权重来解决金融应用中另一个普遍存在的问题，即观测不是由独立同分布（IID）过程产生的。大多数 ML 文献基于 IID 假设，而许多 ML 应用在金融中失败的一个原因是，这些假设在金融时间序列的情况下是不切实际的。&lt;/p&gt;
&lt;h2 id="42-重叠结果"&gt;4.2 重叠结果&lt;a class="anchor" href="#42-%e9%87%8d%e5%8f%a0%e7%bb%93%e6%9e%9c"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch03.html"&gt;第 3 章&lt;/a&gt;中，我们为观测特征 X&lt;del&gt;i&lt;/del&gt; 分配了标签 y&lt;del&gt;i&lt;/del&gt;，其中 y&lt;del&gt;i&lt;/del&gt; 是在区间 [t&lt;del&gt;i,0&lt;/del&gt;, t&lt;del&gt;i,1&lt;/del&gt;] 内发生的价格条的函数。当 t&lt;del&gt;i,1&lt;/del&gt; &amp;gt; t&lt;del&gt;j,0&lt;/del&gt; 且 i &amp;lt; j 时，y&lt;del&gt;i&lt;/del&gt; 和 y&lt;del&gt;j&lt;/del&gt; 都将依赖于一个共同的收益 &lt;img src="images/Image00644.webp" alt="" /&gt;
，即区间 [t&lt;del&gt;j,0&lt;/del&gt;, max(t&lt;del&gt;i,1&lt;/del&gt;, t&lt;del&gt;j,1&lt;/del&gt;)] 上的收益。这意味着，只要任何两个连续结果之间存在重叠（∃i | t&lt;del&gt;i,1&lt;/del&gt; &amp;gt; t&lt;del&gt;i+1,0&lt;/del&gt;），标签序列 {y&lt;del&gt;i&lt;/del&gt;}&lt;del&gt;i=1,...,I&lt;/del&gt; 就不是 IID 的。&lt;/p&gt;
&lt;p&gt;假设我们通过将下注窗口限制为 t&lt;del&gt;i,1&lt;/del&gt; ≤ t&lt;del&gt;i+1,0&lt;/del&gt; 来规避这个问题。在这种情况下没有重叠，因为每个特征结果在下一次观测特征开始之前或之时就已确定。但这将导致粗糙的模型，特征的采样频率将受限于用于确定结果的窗口。一方面，如果我们希望调查持续一个月的结果，特征必须以不超过月度的频率采样。另一方面，如果我们将采样频率提高到比如每日，我们将被迫将结果的窗口缩减为一天。此外，如果我们希望应用路径依赖的标记技术（如三重障碍法），采样频率将服从于第一个障碍的触及。无论你做什么，通过限制结果窗口来消除重叠都是一个糟糕的解决方案。我们必须允许 t&lt;del&gt;i,1&lt;/del&gt; &amp;gt; t&lt;del&gt;i+1,0&lt;/del&gt;，这又把我们带回到了前面描述的重叠结果问题。&lt;/p&gt;
&lt;p&gt;这种情况是金融应用的典型特征。大多数非金融 ML 研究者可以假设观测来自 IID 过程。例如，你可以从大量患者身上采集血样并测量胆固醇。当然，各种潜在的共同因素会移动胆固醇分布的均值和标准差，但样本仍然独立：每个受试者一个观测。假设你采集了那些血样，实验室有人把每个管子里的血洒到右边接下来的九个管子里。也就是说，10 号管含有 10 号患者的血，但也含有 1-9 号患者的血。11 号管含有 11 号患者的血，但也含有 2-10 号患者的血，以此类推。现在你需要确定预测高胆固醇的特征（饮食、运动、年龄等），但不能确定每个患者的胆固醇水平。这就是我们在金融 ML 中面临的等价挑战，额外的不利条件是溢出模式是非确定性且未知的。就 ML 应用而言，金融不是即插即用的学科。任何告诉你相反的人都会浪费你的时间和金钱。&lt;/p&gt;</description></item><item><title>第05章 · 分数阶差分特征</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch05.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch05.html</guid><description>&lt;h1 id="分数阶差分特征"&gt;分数阶差分特征&lt;a class="anchor" href="#%e5%88%86%e6%95%b0%e9%98%b6%e5%b7%ae%e5%88%86%e7%89%b9%e5%be%81"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="51-动机"&gt;5.1 动机&lt;a class="anchor" href="#51-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;众所周知，由于套利力量的作用，金融序列表现出低信噪比（López de Prado [2015]）。更糟糕的是，整数差分等标准平稳性变换会通过去除记忆进一步降低信号。价格序列有记忆，因为每个值都依赖于之前水平的漫长历史。相比之下，收益等整数差分序列有记忆截断——历史在有限的样本窗口后完全被忽略。一旦平稳性变换抹去了数据中的所有记忆，统计学家就求助于复杂的数学技术来提取残留的信号。毫不奇怪，在记忆被抹除的序列上应用这些复杂技术很可能导致错误发现。在本章中，我们引入一种数据变换方法，在保留尽可能多记忆的同时确保数据的平稳性。&lt;/p&gt;
&lt;h2 id="52-平稳性与记忆的困境"&gt;5.2 平稳性与记忆的困境&lt;a class="anchor" href="#52-%e5%b9%b3%e7%a8%b3%e6%80%a7%e4%b8%8e%e8%ae%b0%e5%bf%86%e7%9a%84%e5%9b%b0%e5%a2%83"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在金融中，非平稳时间序列很常见。使这些序列非平稳的是记忆的存在，即先前水平的漫长历史使序列的均值随时间漂移。为了进行推断分析，研究者需要处理不变的过程，如价格收益（或对数价格变化）、收益率变化或波动率变化。这些数据变换使序列平稳，但代价是去除了原始序列中的所有记忆（Alexander [2001]，&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch11.html"&gt;第 11 章&lt;/a&gt;）。虽然平稳性是推断目的的必要属性，但在信号处理中，我们很少希望所有记忆都被抹除，因为该记忆是模型预测力的基础。例如，均衡（平稳）模型需要一些记忆来评估价格过程偏离长期预期值的程度，以生成预测。困境在于：收益是平稳的但无记忆，而价格有记忆但非平稳。问题来了：什么是使价格序列平稳同时保留尽可能多记忆的最小差分程度？相应地，我们希望推广收益的概念，考虑&lt;em&gt;平稳序列中并非所有记忆都被抹除&lt;/em&gt;的情况。在此框架下，收益只是许多可能的价格变换中的一种（且在大多数情况下是次优的）。&lt;/p&gt;
&lt;p&gt;协整方法的部分重要性在于它们能够对具有记忆的序列建模。但为什么零差分的特殊情况会带来最佳结果？零差分与 1 阶差分一样任意。在这两个极端之间（一端是完全差分的序列，另一端是零差分的序列）有一个宽广的区域，可以通过分数阶差分来探索，以开发高预测力的 ML 模型。&lt;/p&gt;
&lt;p&gt;监督学习算法通常需要平稳特征。原因是我们需要将一个以前未见过的（未标记的）观测映射到一组标记示例，并从中推断该新观测的标签。如果特征不平稳，我们无法将新观测映射到大量已知示例。但平稳性并不能确保预测力。平稳性是 ML 算法高性能的必要非充分条件。问题是，平稳性和记忆之间存在权衡。我们总是可以通过差分使序列更平稳，但这将以抹除一些记忆为代价，从而破坏 ML 算法的预测目的。在本章中，我们将研究一种解决该困境的方法。&lt;/p&gt;
&lt;h2 id="53-文献综述"&gt;5.3 文献综述&lt;a class="anchor" href="#53-%e6%96%87%e7%8c%ae%e7%bb%bc%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;几乎所有金融时间序列文献都基于通过整数变换使非平稳序列平稳的前提（例如见 Hamilton [1994]）。这提出了两个问题：(1) 为什么整数 1 阶差分（如用于计算对数价格收益的那样）是最优的？(2) 过度差分是否是文献如此偏向有效市场假说的一个原因？&lt;/p&gt;
&lt;p&gt;分数阶差分的概念应用于预测性时间序列分析至少可以追溯到 Hosking [1981]。在那篇论文中，ARIMA 过程族被推广，允许差分阶数取分数值。这很有用，因为分数差分过程表现出长期持续性和反持续性，从而增强了与标准 ARIMA 方法相比的预测力。在同一篇论文中，Hosking 指出：「除了 Granger (1978) 的一笔带过的引用外，分数差分似乎没有在与时间序列分析的关联中被提及过。」&lt;/p&gt;
&lt;p&gt;Hosking 的论文之后，关于这一主题的文献出人意料地稀少，总共只有 8 篇期刊文章，作者仅 9 人：Hosking、Johansen、Nielsen、MacKinnon、Jensen、Jones、Popiel、Cavaliere 和 Taylor。详见参考文献。这些论文大多涉及技术问题，如连续随机过程中分数阶差分的快速计算算法（例如 Jensen 和 Nielsen [2014]）。&lt;/p&gt;
&lt;p&gt;对随机过程进行差分是一种计算昂贵的操作。在本章中，我们将采取一种实用的、替代的、新颖的方法来恢复平稳性：我们将把差分算子推广到非整数步骤。&lt;/p&gt;
&lt;h2 id="54-方法"&gt;5.4 方法&lt;a class="anchor" href="#54-%e6%96%b9%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;考虑后移算子 B 应用于实值特征矩阵 {X&lt;del&gt;t&lt;/del&gt;}，其中 B^k^ X&lt;del&gt;t&lt;/del&gt; = X&lt;del&gt;t−k&lt;/del&gt;，对于任何整数 k ≥ 0。例如，(1 − B)² = 1 − 2B + B²，其中 B² X&lt;del&gt;t&lt;/del&gt; = X&lt;del&gt;t−2&lt;/del&gt;，所以 (1 − B)² X&lt;del&gt;t&lt;/del&gt; = X&lt;del&gt;t&lt;/del&gt; − 2X&lt;del&gt;t−1&lt;/del&gt; + X&lt;del&gt;t−2&lt;/del&gt;。注意 &lt;img src="images/Image00154.webp" alt="" /&gt;
，对于正整数 n。对于实数 d，&lt;img src="images/Image00158.webp" alt="" /&gt;
，即二项式级数。&lt;/p&gt;</description></item><item><title>第2部分 · 建模</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/part2.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/part2.html</guid><description>&lt;section class="book-part"&gt;
 &lt;p class="book-part-label"&gt;Part 2&lt;/p&gt;
 &lt;h2 class="book-part-title"&gt;建模&lt;/h2&gt;
 &lt;p class="book-part-desc"&gt;集成方法、交叉验证、特征重要性、超参数调优。&lt;/p&gt;
&lt;/section&gt;
&lt;h2 id="本部分章节"&gt;本部分章节&lt;a class="anchor" href="#%e6%9c%ac%e9%83%a8%e5%88%86%e7%ab%a0%e8%8a%82"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;a class="part-chapter" href="ch06.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 6 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;集成方法&lt;/span&gt;
&lt;/a&gt;
&lt;a class="part-chapter" href="ch07.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 7 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;金融中的交叉验证&lt;/span&gt;
&lt;/a&gt;
&lt;a class="part-chapter" href="ch08.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 8 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;特征重要性&lt;/span&gt;
&lt;/a&gt;
&lt;a class="part-chapter" href="ch09.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 9 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;交叉验证超参数调优&lt;/span&gt;
&lt;/a&gt;</description></item><item><title>第06章 · 集成方法</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch06.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch06.html</guid><description>&lt;h1 id="集成方法"&gt;集成方法&lt;a class="anchor" href="#%e9%9b%86%e6%88%90%e6%96%b9%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="61-动机"&gt;6.1 动机&lt;a class="anchor" href="#61-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在本章中，我们将讨论两种最流行的 ML 集成方法。^1^ 在参考文献和脚注中，你可以找到介绍这些技术的书籍和文章。与本书其他地方一样，我们假设你已经使用过这些方法。本章的目标是解释什么使它们有效，以及如何避免导致其在金融中被误用的常见错误。&lt;/p&gt;
&lt;h2 id="62-误差的三个来源"&gt;6.2 误差的三个来源&lt;a class="anchor" href="#62-%e8%af%af%e5%b7%ae%e7%9a%84%e4%b8%89%e4%b8%aa%e6%9d%a5%e6%ba%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;ML 模型通常有三个误差来源：^2^&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;偏差（Bias）：&lt;/strong&gt; 此误差由不切实际的假设引起。当偏差高时，ML 算法未能识别特征与结果之间的重要关系。在这种情况下，算法被称为「欠拟合」。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;方差（Variance）：&lt;/strong&gt; 此误差由对训练集微小变化的敏感性引起。当方差高时，算法过拟合了训练集，这就是为什么训练集的微小变化都能产生截然不同的预测。算法没有建模训练集中的通用模式，而是将噪声误认为信号。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;噪声（Noise）：&lt;/strong&gt; 此误差由观测值的方差引起，如不可预测的变化或测量误差。这是不可约误差，无法被任何模型解释。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;考虑一个观测训练集 {x&lt;del&gt;i&lt;/del&gt;}&lt;del&gt;i=1,...,n&lt;/del&gt; 和实值结果 {y&lt;del&gt;i&lt;/del&gt;}&lt;del&gt;i=1,...,n&lt;/del&gt;。假设存在函数 f[x]，使得 y = f[x] + ϵ，其中 ϵ 是白噪声，E[ϵ&lt;del&gt;i&lt;/del&gt;] = 0 且 E[ϵ&lt;del&gt;i&lt;/del&gt;²] = σ&lt;del&gt;ϵ&lt;/del&gt;²。我们希望估计最拟合 f[x] 的函数 ![](images/Image00818.webp），使估计误差 &lt;img src="images/Image00821.webp" alt="" /&gt;
 的方差最小（由于 σ&lt;del&gt;ϵ&lt;/del&gt;² 代表的噪声，均方误差不可能为零）。该均方误差可分解为&lt;/p&gt;
&lt;p&gt;&lt;img src="images/Image00826.webp" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;集成方法是一种将一组弱学习器组合的方法，所有学习器都基于相同的学习算法，以创建一个比任何单个学习器表现更好的（更强的）学习器。集成方法有助于减少偏差和/或方差。&lt;/p&gt;
&lt;h2 id="63-bootstrap-聚合"&gt;6.3 Bootstrap 聚合&lt;a class="anchor" href="#63-bootstrap-%e8%81%9a%e5%90%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Bootstrap 聚合（bagging）是减少预测方差的有效方法。它的工作方式如下：第一，通过&lt;strong&gt;有放回&lt;/strong&gt;随机采样生成 N 个训练数据集。第二，在每个训练集上拟合 N 个估计器。这些估计器相互独立拟合，因此模型可以并行拟合。第三，集成预测是 N 个模型各自预测的&lt;strong&gt;简单&lt;/strong&gt;平均。对于分类变量，观测属于某一类的概率由将该观测分类为该类成员的估计器比例（多数投票）给出。当基础估计器可以进行带预测概率的预测时，bagging 分类器可以推导概率的均值。&lt;/p&gt;
&lt;p&gt;如果你使用 sklearn 的 &lt;code&gt;BaggingClassifier&lt;/code&gt; 类计算袋外精度，你应该注意这个 bug：&lt;a href="https://github.com/scikit-learn/scikit-learn/issues/8933"&gt;https://github.com/scikit-learn/scikit-learn/issues/8933&lt;/a&gt;。一种变通方法是将标签重命名为整数顺序。&lt;/p&gt;
&lt;h3 id="631-方差减少"&gt;6.3.1 方差减少&lt;a class="anchor" href="#631-%e6%96%b9%e5%b7%ae%e5%87%8f%e5%b0%91"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Bagging 的主要优势是减少预测的方差，从而有助于解决过拟合。bagged 预测 φ&lt;del&gt;i&lt;/del&gt;[c] 的方差是 bagged 估计器数量（N）、单个估计器预测的平均方差（&lt;img src="images/Image00830.webp" alt="" /&gt;
）及其预测的平均相关性（&lt;img src="images/Image00833.webp" alt="" /&gt;
）的函数：&lt;/p&gt;</description></item><item><title>第07章 · 金融中的交叉验证</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch07.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch07.html</guid><description>&lt;h1 id="金融中的交叉验证"&gt;金融中的交叉验证&lt;a class="anchor" href="#%e9%87%91%e8%9e%8d%e4%b8%ad%e7%9a%84%e4%ba%a4%e5%8f%89%e9%aa%8c%e8%af%81"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="71-动机"&gt;7.1 动机&lt;a class="anchor" href="#71-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;交叉验证（CV）的目的是确定 ML 算法的泛化误差，以防止过拟合。CV 是标准 ML 技术在应用于金融问题时失败的又一个实例。过拟合将会发生，而 CV 将无法检测到它。事实上，CV 将通过超参数调优助长过拟合。在本章中，我们将学习标准 CV 为什么在金融中失效，以及可以做些什么。&lt;/p&gt;
&lt;h2 id="72-交叉验证的目标"&gt;7.2 交叉验证的目标&lt;a class="anchor" href="#72-%e4%ba%a4%e5%8f%89%e9%aa%8c%e8%af%81%e7%9a%84%e7%9b%ae%e6%a0%87"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;ML 的目的之一是学习数据的一般结构，以便我们能在未来的、未见过的特征上做出预测。当我们在用于训练的同一数据集上测试 ML 算法时，不出所料地获得了惊人的结果。当 ML 算法被那样误用时，它们与有损压缩算法没有什么不同：它们能以极高的保真度概括数据，但预测力为零。&lt;/p&gt;
&lt;p&gt;CV 将从 IID 过程抽取的观测分为两个集合：&lt;em&gt;训练集&lt;/em&gt;和&lt;em&gt;测试集&lt;/em&gt;。完整数据集中的每个观测属于且仅属于一个集合。这是为了防止一个集合向另一个集合泄露，因为那将破坏在未见数据上测试的目的。更多细节可在参考文献部分列出的书籍和文章中找到。&lt;/p&gt;
&lt;p&gt;有许多替代 CV 方案，其中最流行之一是 k 折 CV。图 7.1 说明了 k 折 CV 执行的 &lt;em&gt;k&lt;/em&gt; 次训练/测试划分，其中 k = 5。在该方案中：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;数据集被划分为 &lt;em&gt;k&lt;/em&gt; 个子集。&lt;/li&gt;
&lt;li&gt;对于 &lt;em&gt;i = 1,...,k&lt;/em&gt;
&lt;ol&gt;
&lt;li&gt;ML 算法在排除 &lt;em&gt;i&lt;/em&gt; 的所有子集上训练。&lt;/li&gt;
&lt;li&gt;拟合的 ML 算法在 &lt;em&gt;i&lt;/em&gt; 上测试。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="images/Image00063.webp" alt="" /&gt;
&lt;/p&gt;
&lt;p class="caption"&gt;
 图 7.1 5 折 CV 方案中的训练/测试划分
&lt;/p&gt;

&lt;p&gt;k 折 CV 的结果是一个 k×1 的交叉验证性能指标数组。例如，在二元分类器中，如果交叉验证精度超过 1/2，则认为模型学到了东西，因为那是我们抛均匀硬币将获得的精度。&lt;/p&gt;</description></item><item><title>第08章 · 特征重要性</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch08.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch08.html</guid><description>&lt;h1 id="特征重要性"&gt;特征重要性&lt;a class="anchor" href="#%e7%89%b9%e5%be%81%e9%87%8d%e8%a6%81%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="81-动机"&gt;8.1 动机&lt;a class="anchor" href="#81-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;金融研究中最普遍的错误之一是：取一些数据，通过 ML 算法运行，回测预测，然后重复该序列直到出现好看的回测。学术期刊充满了这类伪发现，甚至大型对冲基金也经常落入这个陷阱。回测是否为走步法样本外并不重要。我们在同一数据上反复测试的事实很可能导致错误发现。这个方法论错误在统计学家中如此臭名昭著，以至于他们认为这是科学欺诈，美国统计协会在其道德准则中对此发出警告（American Statistical Association [2016]，讨论 #4）。通常大约需要 20 次这样的迭代才能发现一个（错误的）投资策略，满足 5% 的标准显著性水平（假阳性率）。在本章中，我们将探讨为什么这种方法是浪费时间和金钱的，以及特征重要性如何提供替代方案。&lt;/p&gt;
&lt;h2 id="82-特征重要性的重要性"&gt;8.2 特征重要性的重要性&lt;a class="anchor" href="#82-%e7%89%b9%e5%be%81%e9%87%8d%e8%a6%81%e6%80%a7%e7%9a%84%e9%87%8d%e8%a6%81%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;金融行业一个引人注目的方面是，如此多非常资深的投资组合经理（包括许多有量化背景的）没有意识到过拟合回测是多么容易。如何正确回测不是本章的主题；我们将在第 11-15 章讨论那个极其重要的话题。本章的目标是解释在进行任何回测&lt;em&gt;之前&lt;/em&gt;必须执行的分析之一。&lt;/p&gt;
&lt;p&gt;假设给定一对矩阵 (X, y)，分别包含特定金融工具的特征和标签。我们可以在 (X, y) 上拟合分类器，并通过净化 k 折交叉验证（CV）评估泛化误差，如我们在&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch07.html"&gt;第 7 章&lt;/a&gt;中所见。假设我们获得了良好的性能。接下来的自然问题是试图理解哪些特征对这一性能做出了贡献。也许我们可以添加一些增强分类器预测力所负责信号的特征。也许我们可以消除一些只给系统增加噪声的特征。值得注意的是，理解特征重要性打开了 proverbial 黑盒。如果我们理解什么信息源对分类器是不可或缺的，我们就可以洞察分类器识别的模式。这是 ML 怀疑论者有些过度渲染黑盒说法的原因之一。是的，算法在没有我们引导过程的情况下（这就是 ML 的全部意义！）在黑盒中学习，但这并不意味着我们不能（或不应该）看看算法发现了什么。猎人不会盲目地吃他们的聪明狗衔回来的一切，对吧？&lt;/p&gt;
&lt;p&gt;一旦我们发现了哪些特征重要，我们就可以通过进行一些实验来了解更多。这些特征是否一直重要，还是只在某些特定环境中？什么触发了重要性随时间的变化？这些状态切换可以被预测吗？那些重要特征是否也与相关金融工具相关？它们是否与其他资产类别相关？所有金融工具中最相关的特征是什么？在整个投资宇宙中排名相关性最高的特征子集是什么？这比愚蠢的回测循环是更好的策略研究方式。让我将这一准则陈述为我希望你从本书中学到的最关键的教训之一：&lt;/p&gt;



&lt;div class="callout callout-quote"&gt;
 
 &lt;div class="callout-body"&gt;&lt;p&gt;「回测不是研究工具。特征重要性才是。」&lt;/p&gt;
&lt;p&gt;——Marcos López de Prado，《金融机器学习的进展》（2018）&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h2 id="83-带替代效应的特征重要性"&gt;8.3 带替代效应的特征重要性&lt;a class="anchor" href="#83-%e5%b8%a6%e6%9b%bf%e4%bb%a3%e6%95%88%e5%ba%94%e7%9a%84%e7%89%b9%e5%be%81%e9%87%8d%e8%a6%81%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;我发现根据是否受替代效应影响来区分特征重要性方法是有用的。在这种情况下，当一个特征的重要性因其他相关特征的存在而降低时，就会发生替代效应。替代效应是统计和计量经济学文献中所谓的「多重共线性」的 ML 类比。解决线性替代效应的一种方法是对原始特征应用 PCA，然后在正交特征上执行特征重要性分析。详见 Belsley 等 [1980]、Goldberger [1991, pp. 245-253] 和 Hill 等 [2001]。&lt;/p&gt;
&lt;h3 id="831-平均不纯度减少"&gt;8.3.1 平均不纯度减少&lt;a class="anchor" href="#831-%e5%b9%b3%e5%9d%87%e4%b8%8d%e7%ba%af%e5%ba%a6%e5%87%8f%e5%b0%91"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;平均不纯度减少（Mean Decrease Impurity, MDI）是一种快速的、解释性重要性（样本内，IS）方法，特定于基于树的分类器（如 RF）。在每棵决策树的每个节点上，选择的特征以减少不纯度的方式分割它接收的子集。因此，我们可以为每棵决策树推导出多少整体不纯度减少可以归因于每个特征。鉴于我们有一片树的森林，我们可以在所有估计器上平均这些值并相应地排列特征。详细描述见 Louppe 等 [2013]。使用 MDI 时，你必须记住一些重要考虑事项：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;当某些特征被基于树的分类器系统性地忽略而有利于其他特征时，就会发生掩蔽效应。为了避免它们，在使用 sklearn 的 RF 类时设置 &lt;code&gt;max_features=int(1)&lt;/code&gt;。这样，每个层级只考虑一个随机特征。
&lt;ol&gt;
&lt;li&gt;每个特征都有机会（在某些随机树的某些随机层级）减少不纯度。&lt;/li&gt;
&lt;li&gt;确保重要性为零的特征不被平均，因为为零的唯一原因是该特征未被随机选择。将这些值替换为 &lt;code&gt;np.nan&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;该过程显然是 IS 的。每个特征都会有一些重要性，即使它们完全没有任何预测力。&lt;/li&gt;
&lt;li&gt;MDI 不能推广到其他非基于树的分类器。&lt;/li&gt;
&lt;li&gt;按构造，MDI 具有特征重要性加总为 1 的良好性质，且每个特征重要性在 0 和 1 之间有界。&lt;/li&gt;
&lt;li&gt;该方法不解决相关特征存在时的替代效应。MDI 稀释了替代特征的重要性，因为它们的可互换性：两个相同特征的重要性将被减半，因为它们以等概率被随机选择。&lt;/li&gt;
&lt;li&gt;Strobl 等 [2007] 实验表明 MDI 对某些预测变量有偏差。White 和 Liu [1994] 认为，在单个决策树的情况下，这种偏差是由于流行的杂质函数对具有大量类别的预测变量给予的不公平优势。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Sklearn 的 &lt;code&gt;RandomForest&lt;/code&gt; 类将 MDI 实现为默认特征重要性分数。这一选择可能是出于能够以最低计算成本即时计算 MDI 的能力。^1^ 代码片段 8.2 展示了 MDI 的实现，纳入了前面列出的考虑事项。&lt;/p&gt;</description></item><item><title>第09章 · 交叉验证超参数调优</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch09.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch09.html</guid><description>&lt;h1 id="交叉验证超参数调优"&gt;交叉验证超参数调优&lt;a class="anchor" href="#%e4%ba%a4%e5%8f%89%e9%aa%8c%e8%af%81%e8%b6%85%e5%8f%82%e6%95%b0%e8%b0%83%e4%bc%98"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="91-动机"&gt;9.1 动机&lt;a class="anchor" href="#91-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;超参数调优是拟合 ML 算法的关键步骤。如果做得不当，算法很可能过拟合，实盘表现将令人失望。ML 文献特别关注对任何调优的超参数进行交叉验证。正如我们在&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch07.html"&gt;第 7 章&lt;/a&gt;中所见，金融中的交叉验证（CV）是一个尤其困难的问题，其他领域的解决方案很可能失败。在本章中，我们将讨论如何使用净化 k 折 CV 方法调优超参数。参考文献部分列出了提出可能适用于特定问题的替代方法的研究。&lt;/p&gt;
&lt;h2 id="92-网格搜索交叉验证"&gt;9.2 网格搜索交叉验证&lt;a class="anchor" href="#92-%e7%bd%91%e6%a0%bc%e6%90%9c%e7%b4%a2%e4%ba%a4%e5%8f%89%e9%aa%8c%e8%af%81"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;网格搜索交叉验证对所有参数组合进行穷举搜索，以根据某个用户定义的评分函数最大化 CV 性能。当我们对数据的底层结构知之甚少时，这是一个合理的初步方法。Scikit-learn 已在函数 &lt;code&gt;GridSearchCV&lt;/code&gt; 中实现了该逻辑，它接受 CV 生成器作为参数。由于&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch07.html"&gt;第 7 章&lt;/a&gt;中解释的原因，我们需要传入 &lt;code&gt;PurgedKFold&lt;/code&gt; 类（代码片段 7.3），以防止 &lt;code&gt;GridSearchCV&lt;/code&gt; 将 ML 估计器过拟合到泄露的信息。&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;代码片段 9.1 使用净化 K 折交叉验证的网格搜索&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;img src="images/Image00387.webp" alt="" /&gt;
&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;代码片段 9.1 列出了函数 &lt;code&gt;clfHyperFit&lt;/code&gt;，它实现了净化的 &lt;code&gt;GridSearchCV&lt;/code&gt;。参数 &lt;code&gt;fit_params&lt;/code&gt; 可用于传递 &lt;code&gt;sample_weight&lt;/code&gt;，&lt;code&gt;param_grid&lt;/code&gt; 包含将组合成网格的值。此外，该函数允许对调优的估计器进行 bagging。出于&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch06.html"&gt;第 6 章&lt;/a&gt;中解释的原因，对估计器进行 bagging 通常是个好主意，上述函数为此目的纳入了逻辑。&lt;/p&gt;
&lt;p&gt;我建议你在元标签应用的上下文中使用 &lt;code&gt;scoring='f1'&lt;/code&gt;，原因如下。假设一个样本有大量负例（即标签 '0'）。一个将所有案例预测为负例的分类器将达到高 &lt;code&gt;accuracy&lt;/code&gt; 或 &lt;code&gt;neg_log_loss&lt;/code&gt;，即使它没有从特征中学习如何区分案例。事实上，这样的模型达到零召回率和未定义的精确率（见&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch03.html"&gt;第 3 章&lt;/a&gt;第 3.7 节）。&lt;code&gt;f1&lt;/code&gt; 分数通过以精确率和召回率评分分类器来纠正这种性能膨胀（见&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch14.html"&gt;第 14 章&lt;/a&gt;第 14.8 节）。&lt;/p&gt;</description></item><item><title>第3部分 · 回测</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/part3.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/part3.html</guid><description>&lt;section class="book-part"&gt;
 &lt;p class="book-part-label"&gt;Part 3&lt;/p&gt;
 &lt;h2 class="book-part-title"&gt;回测&lt;/h2&gt;
 &lt;p class="book-part-desc"&gt;下注规模、回测陷阱、交叉验证回测、合成数据、回测统计、策略风险、资产配置。&lt;/p&gt;
&lt;/section&gt;
&lt;h2 id="本部分章节"&gt;本部分章节&lt;a class="anchor" href="#%e6%9c%ac%e9%83%a8%e5%88%86%e7%ab%a0%e8%8a%82"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;a class="part-chapter" href="ch10.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 10 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;下注规模&lt;/span&gt;
&lt;/a&gt;
&lt;a class="part-chapter" href="ch11.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 11 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;回测的危险&lt;/span&gt;
&lt;/a&gt;
&lt;a class="part-chapter" href="ch12.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 12 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;交叉验证回测&lt;/span&gt;
&lt;/a&gt;
&lt;a class="part-chapter" href="ch13.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 13 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;合成数据回测&lt;/span&gt;
&lt;/a&gt;
&lt;a class="part-chapter" href="ch14.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 14 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;回测统计&lt;/span&gt;
&lt;/a&gt;
&lt;a class="part-chapter" href="ch15.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 15 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;理解策略风险&lt;/span&gt;
&lt;/a&gt;
&lt;a class="part-chapter" href="ch16.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 16 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;机器学习资产配置&lt;/span&gt;
&lt;/a&gt;</description></item><item><title>第10章 · 下注规模</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch10.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch10.html</guid><description>&lt;h1 id="下注规模"&gt;下注规模&lt;a class="anchor" href="#%e4%b8%8b%e6%b3%a8%e8%a7%84%e6%a8%a1"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="101-动机"&gt;10.1 动机&lt;a class="anchor" href="#101-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;策略游戏与投资之间有着迷人的相似之处。我合作过的一些最优秀的投资组合经理是出色的扑克玩家，也许比国际象棋玩家更甚。一个原因是下注规模（bet sizing），德州扑克为此提供了绝佳的类比和训练场。你的 ML 算法可以达到高精度，但如果你不正确地确定下注规模，你的投资策略将不可避免地亏损。在本章中，我们将回顾几种从 ML 预测确定下注规模的方法。&lt;/p&gt;
&lt;h2 id="102-策略无关的下注规模方法"&gt;10.2 策略无关的下注规模方法&lt;a class="anchor" href="#102-%e7%ad%96%e7%95%a5%e6%97%a0%e5%85%b3%e7%9a%84%e4%b8%8b%e6%b3%a8%e8%a7%84%e6%a8%a1%e6%96%b9%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;考虑同一工具上的两个策略。令 m&lt;del&gt;i,t&lt;/del&gt; ∈ [−1, 1] 为策略 i 在时间 t 的下注规模，其中 m&lt;del&gt;i,t&lt;/del&gt; = −1 表示满仓空头，m&lt;del&gt;i,t&lt;/del&gt; = 1 表示满仓多头。假设一个策略产生了下注规模序列 [m&lt;del&gt;1,1&lt;/del&gt;, m&lt;del&gt;1,2&lt;/del&gt;, m&lt;del&gt;1,3&lt;/del&gt;] = [.5, 1, 0]，而市场价格遵循序列 [p&lt;del&gt;1&lt;/del&gt;, p&lt;del&gt;2&lt;/del&gt;, p&lt;del&gt;3&lt;/del&gt;] = [1, .5, 1.25]，其中 p&lt;del&gt;t&lt;/del&gt; 是时间 t 的价格。另一个策略产生了序列 [m&lt;del&gt;2,1&lt;/del&gt;, m&lt;del&gt;2,2&lt;/del&gt;, m&lt;del&gt;2,3&lt;/del&gt;] = [1, .5, 0]，因为它被迫在市场对初始满仓头寸不利时减少下注规模。两个策略产生的预测都被证明是正确的（价格在 p&lt;del&gt;1&lt;/del&gt; 和 p&lt;del&gt;3&lt;/del&gt; 之间增加了 25%），但第一个策略赚钱（0.5）而第二个策略亏损（−.125）。&lt;/p&gt;
&lt;p&gt;我们更希望以一种在交易信号减弱之前为信号增强的可能性保留一些现金的方式来确定仓位规模。一种选择是计算序列 c&lt;del&gt;t&lt;/del&gt; = c&lt;del&gt;t,l&lt;/del&gt; − c&lt;del&gt;t,s&lt;/del&gt;，其中 c&lt;del&gt;t,l&lt;/del&gt; 是时间 t 的并发多头下注数，c&lt;del&gt;t,s&lt;/del&gt; 是时间 t 的并发空头下注数。该下注并发性对每方的推导类似于我们在&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch04.html"&gt;第 4 章&lt;/a&gt;中计算标签并发性的方式（回忆 &lt;code&gt;t1&lt;/code&gt; 对象及其重叠时间跨度）。我们在 {c&lt;del&gt;t&lt;/del&gt;} 上拟合两个高斯分布的混合，应用 López de Prado 和 Foreman [2014] 描述的方法。然后，下注规模推导为&lt;/p&gt;</description></item><item><title>第11章 · 回测的危险</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch11.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch11.html</guid><description>&lt;h1 id="回测的危险"&gt;回测的危险&lt;a class="anchor" href="#%e5%9b%9e%e6%b5%8b%e7%9a%84%e5%8d%b1%e9%99%a9"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="111-动机"&gt;11.1 动机&lt;a class="anchor" href="#111-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;回测是量化武器库中最关键但最不被理解的技术之一。一个常见的误解是把回测当作研究工具。研究和回测就像酒驾——不要在回测的影响下做研究。大多数期刊上发表的回测都是有缺陷的，这是对多重检验进行选择偏差的结果（Bailey、Borwein、López de Prado 和 Zhu [2014]；Harvey 等 [2016]）。可以写一整本书列举人们在回测时犯下的各种错误。我可能是在回测和投资绩效指标方面发表期刊论文最多的学术作者，但即便如此，我也没有毅力把我过去 20 年见过的所有错误汇编成册。本章不是回测的速成课，而是一些连经验丰富的专业人士也会犯的常见错误的简短清单。&lt;/p&gt;
&lt;h2 id="112-不可能的任务完美的回测"&gt;11.2 不可能的任务：完美的回测&lt;a class="anchor" href="#112-%e4%b8%8d%e5%8f%af%e8%83%bd%e7%9a%84%e4%bb%bb%e5%8a%a1%e5%ae%8c%e7%be%8e%e7%9a%84%e5%9b%9e%e6%b5%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在最狭义的定义中，回测是对策略在过去一段时间内运行时表现的模拟。因此，它是一个假设，绝非实验。在像伯克利实验室这样的物理实验室里，我们可以在控制环境变量的同时重复实验，从而推导出精确的因果关系。相比之下，回测不是实验，它不能证明任何事。即使我们能乘时光机回到过去，也不能保证达到那个夏普比率——即使在我们那辆改装过的 DeLorean DMC-12 里也不行（Bailey 和 López de Prado [2012]）。随机抽样会有所不同，过去不会重演。&lt;/p&gt;
&lt;p&gt;那么回测的意义是什么？它是对若干变量的合理性检查，包括下注规模、换手率、对成本的韧性以及在给定情景下的行为。一个好的回测可以极有帮助，但做好回测极其困难。2014 年，德意志银行由 Yin Luo 带领的量化团队发表了一份题为《量化投资的七宗罪》（Seven Sins of Quantitative Investing）的研究（Luo 等 [2014]）。这是一篇图文并茂、通俗易懂的文章，我建议业内每个人仔细阅读。在这篇文章中，该团队提到了那些惯犯：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;幸存者偏差（Survivorship bias）：&lt;/strong&gt; 使用当前的投资宇宙，因而忽略了沿途有些公司破产、证券退市的事实。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;前视偏差（Look-ahead bias）：&lt;/strong&gt; 在模拟决策本应做出的时刻使用了尚未公开的信息。务必确认每个数据点的时间戳，考虑发布日期、分发延迟和回填修正。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;讲故事（Storytelling）：&lt;/strong&gt; 事后编造故事来为某个随机模式辩护。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据挖掘与数据窥探（Data mining and data snooping）：&lt;/strong&gt; 在测试集上训练模型。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;交易成本（Transaction costs）：&lt;/strong&gt; 模拟交易成本很困难，因为确定该成本的唯一方式是与交易账簿互动（即实际执行交易）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;异常值（Outliers）：&lt;/strong&gt; 将策略建立在过去观测到的少数极端结果上，而这些结果可能永远不会再次发生。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;做空（Shorting）：&lt;/strong&gt; 对现金产品做空需要找到出借方。出借成本和可用数量通常是未知的，取决于关系、库存、相对需求等。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这些只是大多数期刊发表论文经常犯的一些基本错误。其他常见错误包括：用非标准方法计算绩效表现（&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch14.html"&gt;第 14 章&lt;/a&gt;）；忽略隐藏风险；只关注收益而忽略其他指标；混淆相关性与因果性；选择不具代表性的时间段；未能预料到意外情况；忽略止损限制或追加保证金通知的存在；忽略融资成本；以及遗忘实际操作层面的问题（Sarfati [2015]）。错误还有很多，但说实话，列举下去没有意义，原因就是下一节的标题。&lt;/p&gt;
&lt;h2 id="113-即使你的回测完美它可能也是错的"&gt;11.3 即使你的回测完美，它可能也是错的&lt;a class="anchor" href="#113-%e5%8d%b3%e4%bd%bf%e4%bd%a0%e7%9a%84%e5%9b%9e%e6%b5%8b%e5%ae%8c%e7%be%8e%e5%ae%83%e5%8f%af%e8%83%bd%e4%b9%9f%e6%98%af%e9%94%99%e7%9a%84"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;恭喜！你的回测完美无瑕——每个人都能复现你的结果，你的假设如此保守，以至于连你的老板都无法反对。你为每笔交易支付的成本是任何人可能索要的两倍以上。你在信息被半个地球的人知道数小时后才执行，成交量参与率低得可笑。尽管有所有这些离谱的成本，你的回测仍然赚了很多钱。然而，这个完美的回测很可能是错的。为什么？因为只有专家才能产出完美的回测。成为专家意味着这些年来你已经运行了成千上万次回测。结论是，这不是你产出的第一个回测，所以我们需要考虑这是一种错误发现的可能性——在同一数据集上进行多次检验后不可避免地出现的统计偶发事件。&lt;/p&gt;
&lt;p&gt;回测令人抓狂的是，你越擅长它，错误发现出现的可能性越大。初学者落入 Luo 等 [2014] 的七宗罪（还有更多，但谁有心思数呢？）。专业人士可能产出完美无瑕的回测，却仍会落入多重检验、选择偏差或回测过拟合的陷阱（Bailey 和 López de Prado [2014b]）。&lt;/p&gt;</description></item><item><title>第12章 · 交叉验证回测</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch12.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch12.html</guid><description>&lt;h1 id="交叉验证回测"&gt;交叉验证回测&lt;a class="anchor" href="#%e4%ba%a4%e5%8f%89%e9%aa%8c%e8%af%81%e5%9b%9e%e6%b5%8b"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="121-动机"&gt;12.1 动机&lt;a class="anchor" href="#121-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;回测使用过去的观测来评估投资策略的样本外表现。这些过去的观测可以用于两种方式：(1) 狭义上，模拟投资策略的历史表现，就好像它过去运行过一样；(2) 广义上，模拟过去未发生的情景。第一种（狭义）方法也称为走步法（walk-forward），如此流行，以至于事实上「回测」已成为&lt;em&gt;事实上&lt;/em&gt;的「历史模拟」的同义词。第二种（广义）方法远不那么为人所知，在本章中，我们将介绍一些执行它的新方法。每种方法都有其优缺点，都应给予仔细考虑。&lt;/p&gt;
&lt;h2 id="122-走步法"&gt;12.2 走步法&lt;a class="anchor" href="#122-%e8%b5%b0%e6%ad%a5%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;文献中最常见的回测方法是走步法（Walk-Forward, WF）。WF 是对策略过去表现的模拟。每个策略决策都基于先于该决策的观测。正如我们在&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch11.html"&gt;第 11 章&lt;/a&gt;中所见，执行无瑕疵的 WF 模拟是一项艰巨的任务，需要对数据源、市场微观结构、风险管理、绩效衡量标准（如 GIPS）、多重检验方法、实验数学等有深入了解。遗憾的是，没有进行回测的通用配方。为了准确和有代表性，每个回测都必须定制化以评估特定策略的假设。&lt;/p&gt;
&lt;p&gt;WF 有两个关键优势：(1) WF 有清晰的历史解释。其表现可以与纸面交易核对。(2) 历史是一个过滤；因此，使用尾随数据保证测试集是样本外的（无泄露），只要净化被正确实现（见&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch07.html"&gt;第 7 章&lt;/a&gt;第 7.4.1 节）。在 WF 回测中发现泄露是一个常见错误，其中 &lt;code&gt;t1.index&lt;/code&gt; 落在训练集内，但 &lt;code&gt;t1.values&lt;/code&gt; 落在测试集内（见&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch03.html"&gt;第 3 章&lt;/a&gt;）。WF 回测中不需要禁运，因为训练集总是先于测试集。&lt;/p&gt;
&lt;h3 id="1221-走步法的缺陷"&gt;12.2.1 走步法的缺陷&lt;a class="anchor" href="#1221-%e8%b5%b0%e6%ad%a5%e6%b3%95%e7%9a%84%e7%bc%ba%e9%99%b7"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;WF 有三个主要缺点：第一，只测试了一个情景（历史路径），这很容易过拟合（Bailey 等 [2014]）。第二，WF 不一定代表未来表现，因为结果可能被数据点的特定序列所偏移。WF 方法的支持者通常认为预测过去会导致过于乐观的表现估计。然而，在反向观测序列上拟合一个表现优异的模型，往往会导致 WF 回测表现不佳。事实是，过拟合走步前向回测和过拟合走步后向回测一样容易，改变观测序列产生不一致结果的事实就是过拟合的证据。如果 WF 支持者是对的，我们应该观察到走步后向回测系统性地优于其走步前向对应物。情况并非如此，因此支持 WF 的主要论据相当薄弱。&lt;/p&gt;
&lt;p&gt;为了使第二个缺点更清楚，假设一个股票策略使用 WF 在 S&amp;amp;P 500 数据上回测，从 2007 年 1 月 1 日开始。直到 2009 年 3 月 15 日，反弹和抛售的混合将训练策略成为市场中性的，对每个头寸的信心很低。之后，长期反弹将主导数据集，到 2017 年 1 月 1 日，买入预测将占优于卖出预测。如果我们反向播放信息（从 2017 年 1 月 1 日到 2007 年 1 月 1 日，先长期反弹再急剧抛售），表现将非常不同。通过利用特定序列，WF 选择的策略可能让我们为灾难做好准备。&lt;/p&gt;</description></item><item><title>第13章 · 合成数据回测</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch13.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch13.html</guid><description>&lt;h1 id="合成数据回测"&gt;合成数据回测&lt;a class="anchor" href="#%e5%90%88%e6%88%90%e6%95%b0%e6%8d%ae%e5%9b%9e%e6%b5%8b"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="131-动机"&gt;13.1 动机&lt;a class="anchor" href="#131-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在本章中，我们将研究一种替代回测方法，它使用历史来生成具有从观测数据估计的统计特征的合成数据集。这将允许我们在大量未见过的合成测试集上回测策略，从而降低策略被拟合到特定数据点集的可能性。^1^ 这是一个非常广泛的主题，为了达到一定深度，我们将专注于交易规则的回测。&lt;/p&gt;
&lt;h2 id="132-交易规则"&gt;13.2 交易规则&lt;a class="anchor" href="#132-%e4%ba%a4%e6%98%93%e8%a7%84%e5%88%99"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;投资策略可以定义为假定市场低效存在的算法。一些策略依赖计量经济学模型来预测价格，使用 GDP 或通胀等宏观经济变量；其他策略使用基本面和会计信息来为证券定价，或在衍生品定价中寻找套利类机会等。例如，假设金融中介机构倾向于在美国国债拍卖前两天卖出旧券，以筹集购买新「票据」所需的现金。人们可以通过在拍卖前三天卖出旧券来从该知识中获利。但如何做？每个投资策略都需要一种实施战术，通常称为「交易规则」。&lt;/p&gt;
&lt;p&gt;有数十种对冲基金风格，每种运行数十种独特的投资策略。虽然策略在性质上可能非常异构，但战术相对同质。交易规则提供了进入和退出头寸必须遵循的算法。例如，当策略信号达到某个值时将进入头寸。退出头寸的条件通常通过止盈和止损阈值定义。这些进入和退出规则依赖于通常通过历史模拟校准的参数。这种做法导致了&lt;em&gt;回测过拟合&lt;/em&gt;的问题，因为这些参数针对样本内的特定观测，以至于投资策略如此依附于过去，以至于对未来不再适用。&lt;/p&gt;
&lt;p&gt;一个重要的澄清是，我们感兴趣的是最大化表现的退出走廊条件。换言之，头寸已经存在，问题是如何最优地退出它。这是执行交易员经常面临的困境，不应与确定投资证券的进入和退出阈值混淆。该替代问题的研究见例如 Bertram [2009]。&lt;/p&gt;
&lt;p&gt;Bailey 等 [2014, 2017] 讨论了回测过拟合问题，并提供了确定模拟表现可能在多大程度上因过拟合而膨胀的方法。虽然评估回测过拟合的概率是丢弃多余投资策略的有用工具，但最好能避免过拟合的风险，至少在校准交易规则的上下文中。在理论上，这可以通过直接从生成数据的随机过程推导交易规则的最优参数来实现，而非进行历史模拟。这是我们在本章采取的方法。使用整个历史样本，我们将表征生成观测收益流的随机过程，并在不需要历史模拟的情况下推导交易规则参数的最优值。&lt;/p&gt;
&lt;h2 id="133-问题"&gt;13.3 问题&lt;a class="anchor" href="#133-%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;假设投资策略 S 投资 i = 1, ..., I 个机会或下注。在每个机会 i 处，S 持有 m&lt;del&gt;i&lt;/del&gt; 个单位的证券 X，其中 m&lt;del&gt;i&lt;/del&gt; ∈ (−∞, ∞)。进入该机会的交易以价值 m&lt;del&gt;i&lt;/del&gt;P&lt;del&gt;i,0&lt;/del&gt; 定价，其中 P&lt;del&gt;i,0&lt;/del&gt; 是 m&lt;del&gt;i&lt;/del&gt; 个证券交易的平均单价。当其他市场参与者交易证券 X 时，我们可以在 t 次观测交易后将机会 i 的价值盯市为 m&lt;del&gt;i&lt;/del&gt;P&lt;del&gt;i,t&lt;/del&gt;。这表示如果机会 i 在 t 次交易后以市场观测价格清算时的价值。相应地，我们可以将机会 i 在 t 次交易后的盯市盈亏计算为 π&lt;del&gt;i,t&lt;/del&gt; = m&lt;del&gt;i&lt;/del&gt;(P&lt;del&gt;i,t&lt;/del&gt; − P&lt;del&gt;i,0&lt;/del&gt;)。&lt;/p&gt;
&lt;p&gt;标准交易规则提供了在 t = T&lt;del&gt;i&lt;/del&gt; 时退出机会 i 的逻辑。这在以下两个条件之一得到验证时发生：&lt;/p&gt;</description></item><item><title>第14章 · 回测统计</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch14.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch14.html</guid><description>&lt;h1 id="回测统计"&gt;回测统计&lt;a class="anchor" href="#%e5%9b%9e%e6%b5%8b%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="141-动机"&gt;14.1 动机&lt;a class="anchor" href="#141-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在前面的章节中，我们研究了三种回测范式：第一，历史模拟（走步法，&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch11.html"&gt;第 11 章&lt;/a&gt;和 12）。第二，情景模拟（CV 和 CPCV 方法，&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch12.html"&gt;第 12 章&lt;/a&gt;）。第三，合成数据上的模拟（&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch13.html"&gt;第 13 章&lt;/a&gt;）。无论你选择哪种回测范式，你都需要根据一系列统计来报告结果，投资者将用这些统计来比较和评判你的策略与竞争对手。在本章中，我们将讨论一些最常用的绩效评估统计量。其中一些统计包含在全球投资绩效标准（GIPS）^1^ 中，然而全面的表现分析需要针对所审查的 ML 策略的特定指标。&lt;/p&gt;
&lt;h2 id="142-回测统计的类型"&gt;14.2 回测统计的类型&lt;a class="anchor" href="#142-%e5%9b%9e%e6%b5%8b%e7%bb%9f%e8%ae%a1%e7%9a%84%e7%b1%bb%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;回测统计包括投资者用于评估和比较各种投资策略的指标。它们应帮助我们揭示策略潜在的问题方面，如大量的非对称风险或低容量。总的来说，它们可以分为一般特征、绩效、运行/回撤、实现 shortfall、收益/风险效率、分类评分和归因。&lt;/p&gt;
&lt;h2 id="143-一般特征"&gt;14.3 一般特征&lt;a class="anchor" href="#143-%e4%b8%80%e8%88%ac%e7%89%b9%e5%be%81"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;以下统计量告诉我们回测的一般特征：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;时间范围：&lt;/strong&gt; 时间范围指定开始和结束日期。用于测试策略的期间应足够长，以涵盖全面的市场状态（Bailey 和 López de Prado [2012]）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;平均 AUM：&lt;/strong&gt; 这是管理资产的平均美元价值。为计算此平均值，多头和空头头寸的美元价值被视为正实数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;容量：&lt;/strong&gt; 策略的容量可以衡量为实现目标风险调整表现所需的最高 AUM。需要最低 AUM 来确保适当的下注规模（&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch10.html"&gt;第 10 章&lt;/a&gt;）和风险分散（&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch16.html"&gt;第 16 章&lt;/a&gt;）。超过该最低 AUM 后，随着 AUM 增加，由于更高的交易成本和更低的换手率，表现将衰减。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;杠杆：&lt;/strong&gt; 杠杆衡量实现报告表现所需的借款量。如果发生杠杆，必须为其分配成本。衡量杠杆的一种方式是平均美元仓位规模与平均 AUM 的比率。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;最大美元仓位：&lt;/strong&gt; 最大美元仓位告诉我们策略是否有时持有的美元仓位大大超过了平均 AUM。一般来说，我们偏好最大美元仓位接近平均 AUM 的策略，表明它们不依赖极端事件（可能是异常值）的发生。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多头比例：&lt;/strong&gt; 多头比例显示涉及多头头寸的下注比例。在多空市场中立策略中，理想情况下该值接近 0.5。如果不是，策略可能有仓位偏差，或回测期可能太短且不代表未来市场条件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下注频率：&lt;/strong&gt; 下注频率是回测中每年的下注数。同一方向的一系列仓位被视为同一下注的一部分。当仓位被平仓或翻转到相反方向时，下注结束。下注数总是小于交易数。交易计数会高估策略发现的独立机会数。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;平均持有期：&lt;/strong&gt; 平均持有期是一个下注持有的平均天数。高频策略可能持有头寸几分之一秒，而低频策略可能持有头寸数月甚至数年。短持有期可能限制策略的容量。持有期与下注频率相关但不同。例如，策略可能在每月非农就业数据发布时下注，每个下注只持有几分钟。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;年化换手率：&lt;/strong&gt; 年化换手率衡量每年平均交易美元金额与平均年 AUM 的比率。即使下注数少也可能出现高换手率，因为策略可能需要不断调整仓位。如果每笔交易涉及在最大多头和最大空头之间翻转仓位，低交易数也可能出现高换手率。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;与标的的相关性：&lt;/strong&gt; 这是策略收益与底层投资宇宙收益之间的相关性。当相关性显著为正或负时，策略本质上是在持有或做空投资宇宙，没有增加多少价值。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;代码片段 14.1 列出了从目标仓位（&lt;code&gt;tPos&lt;/code&gt;）的 pandas 序列中推导平仓或翻转交易时间戳的算法。这给出了已发生的下注数。&lt;/p&gt;</description></item><item><title>第15章 · 理解策略风险</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch15.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch15.html</guid><description>&lt;h1 id="理解策略风险"&gt;理解策略风险&lt;a class="anchor" href="#%e7%90%86%e8%a7%a3%e7%ad%96%e7%95%a5%e9%a3%8e%e9%99%a9"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="151-动机"&gt;15.1 动机&lt;a class="anchor" href="#151-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;正如我们在&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch03.html"&gt;第 3 章&lt;/a&gt;和&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch13.html"&gt;第 13 章&lt;/a&gt;中看到的，投资策略通常以持仓直到满足两个条件之一来实施：(1) 以盈利退出头寸的条件（止盈），或 (2) 以亏损退出头寸的条件（止损）。即使策略没有明确声明止损，也总有一个隐含的止损限制，在此投资者无法再为其头寸融资（追加保证金通知）或承受不断增加的未实现亏损带来的痛苦。由于大多数策略都（隐含或明确地）有这两个退出条件，通过二项过程建模结果分布是有意义的。这反过来将帮助我们理解什么组合的下注频率、赔率和收益是不经济的。本章的目标是帮助你评估策略何时容易受到这些变量中任何一个的微小变化的影响。&lt;/p&gt;
&lt;h2 id="152-对称收益"&gt;15.2 对称收益&lt;a class="anchor" href="#152-%e5%af%b9%e7%a7%b0%e6%94%b6%e7%9b%8a"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;考虑一个每年产生 n 个 IID 下注的策略，其中下注 i ∈ [1, n] 的结果 X&lt;del&gt;i&lt;/del&gt; 是概率为 P[X&lt;del&gt;i&lt;/del&gt; = π] = p 的利润 π &amp;gt; 0，以及概率为 P[X&lt;del&gt;i&lt;/del&gt; = −π] = 1 − p 的损失 −π。你可以将 p 视为二元分类器的精确率，其中正例意味着对机会下注，负例意味着放过机会：真阳性被奖励，假阳性被惩罚，而负例（无论真假）没有收益。由于下注结果 {X&lt;del&gt;i&lt;/del&gt;}&lt;del&gt;i=1,...,n&lt;/del&gt; 是独立的，我们将计算每次下注的期望矩。一次下注的期望利润为 E[X&lt;del&gt;i&lt;/del&gt;] = πp + (−π)(1 − p) = π(2p − 1)。方差为 V[X&lt;del&gt;i&lt;/del&gt;] = E[X&lt;del&gt;i&lt;/del&gt;²] − E[X&lt;del&gt;i&lt;/del&gt;]²，其中 E[X&lt;del&gt;i&lt;/del&gt;²] = π²p + (−π)²(1 − p) = π²，因此 V[X&lt;del&gt;i&lt;/del&gt;] = π² − π²(2p − 1)² = π²[1 − (2p − 1)²] = 4π²p(1 − p)。对于每年 n 个 IID 下注，年化夏普比率（θ）为&lt;/p&gt;</description></item><item><title>第16章 · 机器学习资产配置</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch16.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch16.html</guid><description>&lt;h1 id="机器学习资产配置"&gt;机器学习资产配置&lt;a class="anchor" href="#%e6%9c%ba%e5%99%a8%e5%ad%a6%e4%b9%a0%e8%b5%84%e4%ba%a7%e9%85%8d%e7%bd%ae"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="161-动机"&gt;16.1 动机&lt;a class="anchor" href="#161-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;本章介绍层次风险平价（Hierarchical Risk Parity, HRP）方法。^1^ HRP 投资组合解决了二次优化器（特别是 Markowitz 的临界线算法 CLA）的三个主要问题：不稳定性、集中性和表现不佳。HRP 应用现代数学（图论和机器学习技术），基于协方差矩阵中包含的信息构建分散化投资组合。然而，与二次优化器不同，HRP 不要求协方差矩阵的可逆性。事实上，HRP 可以在病态退化甚至奇异协方差矩阵上计算投资组合，这对二次优化器来说是不可能的壮举。蒙特卡洛实验表明，HRP 的样本外方差低于 CLA，即使最小方差是 CLA 的优化目标。与传统风险平价方法相比，HRP 在样本外产生风险更低的投资组合。历史分析也表明 HRP 的表现优于标准方法（Kolanovic 等 [2017]、Raffinot [2017]）。HRP 的一个实际应用是确定多个机器学习（ML）策略间的配置。&lt;/p&gt;
&lt;h2 id="162-凸投资组合优化的问题"&gt;16.2 凸投资组合优化的问题&lt;a class="anchor" href="#162-%e5%87%b8%e6%8a%95%e8%b5%84%e7%bb%84%e5%90%88%e4%bc%98%e5%8c%96%e7%9a%84%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;投资组合构建也许是最常见的金融问题。每天，投资经理必须构建整合其对风险和收益的观点和预测的投资组合。这是 24 岁的 Harry Markowitz 在六十多年前试图回答的最原始问题。他的不朽洞见是认识到不同风险水平对应不同的风险调整收益最优投资组合，因此有了「有效前沿」的概念（Markowitz [1952]）。一个含义是，将所有资产分配给期望收益最高的投资很少是最优的。相反，我们应该考虑替代投资之间的相关性，以构建分散化的投资组合。&lt;/p&gt;
&lt;p&gt;在 1954 年获得博士学位之前，Markowitz 离开学术界加入 RAND Corporation，在那里他开发了临界线算法（CLA）。CLA 是一种专门为不等式约束投资组合优化问题设计的二次优化程序。该算法的显著之处在于它保证在已知迭代次数后找到精确解，并巧妙地规避了 Karush-Kuhn-Tucker 条件（Kuhn 和 Tucker [1951]）。该算法的描述和开源实现见 Bailey 和 López de Prado [2013]。令人惊讶的是，大多数金融从业者似乎仍然不知道 CLA，因为他们经常依赖不保证正确解或停止时间的通用二次规划方法。&lt;/p&gt;
&lt;p&gt;尽管 Markowitz 的理论非常出色，许多实际问题使 CLA 的解有些不可靠。一个主要警示是，预测收益的微小偏差会导致 CLA 产生非常不同的投资组合（Michaud [1998]）。鉴于收益很少能以足够的精度预测，许多作者选择完全放弃它们而专注于协方差矩阵。这导致了基于风险的资产配置方法，其中「风险平价」是一个突出的例子（Jurczenko [2015]）。放弃收益预测改善了但不能防止不稳定问题。原因是二次规划方法需要正定协方差矩阵（所有特征值必须为正）的逆。当协方差矩阵在数值上病态条件化（即条件数高）时，该逆容易产生大误差（Bailey 和 López de Prado [2012]）。&lt;/p&gt;
&lt;h2 id="163-markowitz-的诅咒"&gt;16.3 Markowitz 的诅咒&lt;a class="anchor" href="#163-markowitz-%e7%9a%84%e8%af%85%e5%92%92"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;协方差矩阵、相关矩阵（或正规矩阵，因此可对角化）的条件数是其最大和最小（按模）特征值之比的绝对值。图 16.1 绘制了几个相关矩阵的排序特征值，其中条件数是每条线第一个和最后一个值的比率。对角相关矩阵的条件数最低，它是自己的逆。随着我们添加相关（多重共线性）投资，条件数增长。在某个点，条件数如此之高，以至于数值误差使逆矩阵太不稳定：任何条目的微小变化都会导致非常不同的逆。这就是 Markowitz 的诅咒：投资越相关，分散化的需求越大，然而我们越可能得到不稳定的解。分散化的好处往往被估计误差所抵消甚至超过。&lt;/p&gt;</description></item><item><title>第4部分 · 实用金融特征</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/part4.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/part4.html</guid><description>&lt;section class="book-part"&gt;
 &lt;p class="book-part-label"&gt;Part 4&lt;/p&gt;
 &lt;h2 class="book-part-title"&gt;实用金融特征&lt;/h2&gt;
 &lt;p class="book-part-desc"&gt;结构性突变、熵特征、微观结构特征。&lt;/p&gt;
&lt;/section&gt;
&lt;h2 id="本部分章节"&gt;本部分章节&lt;a class="anchor" href="#%e6%9c%ac%e9%83%a8%e5%88%86%e7%ab%a0%e8%8a%82"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;a class="part-chapter" href="ch17.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 17 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;结构性突变&lt;/span&gt;
&lt;/a&gt;
&lt;a class="part-chapter" href="ch18.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 18 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;熵特征&lt;/span&gt;
&lt;/a&gt;
&lt;a class="part-chapter" href="ch19.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 19 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;微观结构特征&lt;/span&gt;
&lt;/a&gt;</description></item><item><title>第17章 · 结构性突变</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch17.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch17.html</guid><description>&lt;h1 id="结构性突变"&gt;结构性突变&lt;a class="anchor" href="#%e7%bb%93%e6%9e%84%e6%80%a7%e7%aa%81%e5%8f%98"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="171-动机"&gt;17.1 动机&lt;a class="anchor" href="#171-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在开发基于 ML 的投资策略时，我们通常希望在多种因素汇聚、其预测结果提供了有利风险调整收益时下注。结构性突变，如从一种市场状态到另一种的转换，就是一个特别值得关注的此类汇聚的例子。例如，均值回归模式可能让位于动量模式。当这种转换发生时，大多数市场参与者措手不及，他们将犯代价高昂的错误。这种错误是许多有利可图策略的基础，因为输方通常在为时已晚时才意识到自己的错误。在接受损失之前，他们将以非理性方式行事，试图持有头寸，并期望回涨。有时他们甚至会在绝望中增加亏损头寸。最终他们将被迫止损或被止损。结构性突变提供了最好的风险/回报之一。在本章中，我们将回顾一些衡量结构性突变可能性的方法，以便可以在此基础上构建信息特征。&lt;/p&gt;
&lt;h2 id="172-结构性突变检验的类型"&gt;17.2 结构性突变检验的类型&lt;a class="anchor" href="#172-%e7%bb%93%e6%9e%84%e6%80%a7%e7%aa%81%e5%8f%98%e6%a3%80%e9%aa%8c%e7%9a%84%e7%b1%bb%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;我们可以将结构性突变检验分为两大类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CUSUM 检验：&lt;/strong&gt; 这些检验累计预测误差是否显著偏离白噪声。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;爆炸性检验：&lt;/strong&gt; 超越偏离白噪声，这些检验测试过程是否表现出指数增长或崩溃，因为这与随机游走或平稳过程不一致，且在长期中不可持续。
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;右尾单位根检验：&lt;/strong&gt; 这些检验在假设自回归规范的情况下评估指数增长或崩溃的存在。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;亚/超鞅检验：&lt;/strong&gt; 这些检验在各种函数形式下评估指数增长或崩溃的存在。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="173-cusum-检验"&gt;17.3 CUSUM 检验&lt;a class="anchor" href="#173-cusum-%e6%a3%80%e9%aa%8c"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在&lt;a href="https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch02.html"&gt;第 2 章&lt;/a&gt;中，我们介绍了 CUSUM 滤波器，我们在基于事件的条采样上下文中应用了它。其思想是每当某个变量（如累计预测误差）超过预定义阈值时采样一个条。这个概念可以进一步扩展以测试结构性突变。&lt;/p&gt;
&lt;h3 id="1731-递归残差的-brown-durbin-evans-cusum-检验"&gt;17.3.1 递归残差的 Brown-Durbin-Evans CUSUM 检验&lt;a class="anchor" href="#1731-%e9%80%92%e5%bd%92%e6%ae%8b%e5%b7%ae%e7%9a%84-brown-durbin-evans-cusum-%e6%a3%80%e9%aa%8c"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;该检验由 Brown、Durbin 和 Evans [1975] 提出。假设在每个观测 t = 1, ..., T 处，我们有一组预测值 y&lt;del&gt;t&lt;/del&gt; 的特征 x&lt;del&gt;t&lt;/del&gt;。矩阵 X&lt;del&gt;t&lt;/del&gt; 由时间序列特征 {x&lt;del&gt;i&lt;/del&gt;}&lt;del&gt;i=1,...,t&lt;/del&gt;（t ≤ T）组成。这些作者建议我们基于规范&lt;/p&gt;
&lt;p&gt;&lt;img src="images/Image00766.webp" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;计算 β 的递归最小二乘（RLS）估计，该规范在子样本 ([1, k+1]、[1, k+2]、...、[1, T]) 上拟合，给出 T−k 个最小二乘估计 &lt;img src="images/Image00004.webp" alt="" /&gt;
。我们可以计算标准化的一步前向递归残差为&lt;/p&gt;
&lt;p&gt;&lt;img src="images/Image00097.webp" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="images/Image00185.webp" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;CUSUM 统计量定义为&lt;/p&gt;</description></item><item><title>第18章 · 熵特征</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch18.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch18.html</guid><description>&lt;h1 id="熵特征"&gt;熵特征&lt;a class="anchor" href="#%e7%86%b5%e7%89%b9%e5%be%81"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="181-动机"&gt;18.1 动机&lt;a class="anchor" href="#181-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;价格序列传达了供需力量的信息。在完美市场中，价格是不可预测的，因为每个观测传达了关于产品或服务的所有已知信息。当市场不完美时，价格以部分信息形成，由于某些代理人比其他人了解更多，他们可以利用这种信息不对称。估计价格序列的信息含量，并形成 ML 算法可以学习可能结果的特征将是有帮助的。例如，ML 算法可能发现当价格携带少量信息时动量下注更有利可图，而当价格携带大量信息时均值回归下注更有利可图。在本章中，我们将探索确定价格序列中包含的信息量的方法。&lt;/p&gt;
&lt;h2 id="182-香农熵"&gt;18.2 香农熵&lt;a class="anchor" href="#182-%e9%a6%99%e5%86%9c%e7%86%b5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在本节中，我们将回顾信息论中的一些概念，这些概念在本章其余部分将有用。读者可以在 MacKay [2003] 中找到完整阐述。信息论之父 Claude Shannon 将熵定义为数据平稳源产生的（长消息上的）平均信息量。它是以唯一可解码方式描述消息所需的每字符最小比特数。在数学上，Shannon [1948] 将离散随机变量 X（可能值为 x ∈ A）的熵定义为&lt;/p&gt;
&lt;p&gt;&lt;img src="images/Image00095.webp" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;其中 0 ≤ H[X] ≤ log&lt;del&gt;2&lt;/del&gt;||A||，其中：p[x] 是 x 的概率；H[X] = 0 ⇔ ∃x|p[x] = 1；&lt;img src="images/Image00641.webp" alt="" /&gt;
 对所有 x；||A|| 是集合 A 的大小。这可以解释为 X 中信息内容的概率加权平均，信息比特以 &lt;img src="images/Image00715.webp" alt="" /&gt;
 衡量。将信息衡量为 &lt;img src="images/Image00151.webp" alt="" /&gt;
 的原理来自低概率结果比高概率结果揭示更多信息的观察。换言之，当意外事件发生时我们学到东西。类似地，冗余定义为&lt;/p&gt;
&lt;p&gt;&lt;img src="images/Image00045.webp" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;其中 0 ≤ R[X] ≤ 1。Kolmogorov [1965] 形式化了冗余与马尔可夫信息源复杂性之间的联系。两个变量之间的互信息定义为从联合概率密度到边际概率密度乘积的 Kullback-Leibler 散度。&lt;/p&gt;
&lt;p&gt;&lt;img src="images/Image00184.webp" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;互信息（MI）始终非负、对称，当且仅当 X 和 Y 独立时为零。对于正态分布变量，互信息与熟悉的 Pearson 相关 ρ 密切相关。&lt;/p&gt;</description></item><item><title>第19章 · 微观结构特征</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch19.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch19.html</guid><description>&lt;h1 id="微观结构特征"&gt;微观结构特征&lt;a class="anchor" href="#%e5%be%ae%e8%a7%82%e7%bb%93%e6%9e%84%e7%89%b9%e5%be%81"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="191-动机"&gt;19.1 动机&lt;a class="anchor" href="#191-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;市场微观结构研究「在显性交易规则下交换资产的过程和结果」（O'Hara [1995]）。微观结构数据集包含拍卖过程的一手信息，如订单撤单、双向拍卖簿、队列、部分成交、主动方、更正、替换等。主要来源是金融信息交换（FIX）消息，可以从交易所购买。FIX 消息中包含的细节水平使研究者能够了解市场参与者如何隐藏和揭示他们的意图。这使得微观结构数据成为构建预测性 ML 特征的最重要成分之一。&lt;/p&gt;
&lt;h2 id="192-文献综述"&gt;19.2 文献综述&lt;a class="anchor" href="#192-%e6%96%87%e7%8c%ae%e7%bb%bc%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;市场微观结构理论的深度和复杂性随着时间的推移而演变，这是可用数据的数量和多样性的函数。第一代模型仅使用价格信息。早期的两个基础成果是交易分类模型（如 tick 规则）和 Roll [1984] 模型。第二代模型出现在成交量数据集开始可用之后，研究者将注意力转向研究成交量对价格的影响。这一代模型的两个例子是 Kyle [1985] 和 Amihud [2002]。&lt;/p&gt;
&lt;p&gt;第三代模型出现在 1996 年之后，当时 Maureen O'Hara、David Easley 等人发表了他们的「知情交易概率」（PIN）理论（Easley 等 [1996]）。这构成了一个重大突破，因为 PIN 将买卖价差解释为流动性提供者（做市商）和持仓者（知情交易者）之间序贯战略决策的后果。本质上，它说明了做市商是出售被知情交易者逆向选择的期权的卖方，买卖价差是他们为该期权收取的溢价。Easley 等 [2012a, 2012b] 解释了如何在基于成交量的采样下估计 VPIN——PIN 的高频估计。&lt;/p&gt;
&lt;p&gt;这些是微观结构文献使用的主要理论框架。O'Hara [1995] 和 Hasbrouck [2007] 提供了低频微观结构模型的良好概览。Easley 等 [2013] 展示了高频微观结构模型的现代处理。&lt;/p&gt;
&lt;h2 id="193-第一代价格序列"&gt;19.3 第一代：价格序列&lt;a class="anchor" href="#193-%e7%ac%ac%e4%b8%80%e4%bb%a3%e4%bb%b7%e6%a0%bc%e5%ba%8f%e5%88%97"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;第一代微观结构模型致力于估计买卖价差和波动率作为流动性不足的代理。他们以有限的数据做到了这一点，且不对交易过程施加战略或序贯结构。&lt;/p&gt;
&lt;h3 id="1931-tick-规则"&gt;19.3.1 Tick 规则&lt;a class="anchor" href="#1931-tick-%e8%a7%84%e5%88%99"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;在双向拍卖簿中，报价以各种价格水平卖出证券（卖盘）或以各种价格水平买入证券（买盘）。卖盘价格总是高于买盘价格，否则将立即匹配。当买方匹配卖盘或卖方匹配买盘时发生交易。每笔交易都有买方和卖方，但只有一方发起交易。&lt;/p&gt;
&lt;p&gt;Tick 规则是一种用于确定交易主动方的算法。买入发起的交易标记为「1」，卖出发起的交易标记为「−1」，按照以下逻辑：&lt;/p&gt;
&lt;p&gt;&lt;img src="images/Image00839.webp" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;其中 p&lt;del&gt;t&lt;/del&gt; 是索引为 t = 1, ..., T 的交易价格，b&lt;del&gt;0&lt;/del&gt; 任意设为 1。多项研究确定，尽管 tick 规则相对简单，但它达到了高分类精度（Aitken 和 Frino [1996]）。竞争的分类方法包括 Lee 和 Ready [1991] 及 Easley 等 [2016]。&lt;/p&gt;</description></item><item><title>第5部分 · 高性能计算指南</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/part5.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/part5.html</guid><description>&lt;section class="book-part"&gt;
 &lt;p class="book-part-label"&gt;Part 5&lt;/p&gt;
 &lt;h2 class="book-part-title"&gt;高性能计算指南&lt;/h2&gt;
 &lt;p class="book-part-desc"&gt;多进程与向量化、暴力搜索与量子计算、HPC 预测技术。&lt;/p&gt;
&lt;/section&gt;
&lt;h2 id="本部分章节"&gt;本部分章节&lt;a class="anchor" href="#%e6%9c%ac%e9%83%a8%e5%88%86%e7%ab%a0%e8%8a%82"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;a class="part-chapter" href="ch20.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 20 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;多进程与向量化&lt;/span&gt;
&lt;/a&gt;
&lt;a class="part-chapter" href="ch21.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 21 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;暴力搜索与量子计算&lt;/span&gt;
&lt;/a&gt;
&lt;a class="part-chapter" href="ch22.html"&gt;
 &lt;span class="part-chapter-num"&gt;第 22 章&lt;/span&gt; &lt;!-- validate-skip --&gt;
 &lt;span class="part-chapter-title"&gt;高性能计算智能与预测技术&lt;/span&gt;
&lt;/a&gt;</description></item><item><title>第20章 · 多进程与向量化</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch20.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch20.html</guid><description>&lt;h1 id="多进程与向量化"&gt;多进程与向量化&lt;a class="anchor" href="#%e5%a4%9a%e8%bf%9b%e7%a8%8b%e4%b8%8e%e5%90%91%e9%87%8f%e5%8c%96"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="201-动机"&gt;20.1 动机&lt;a class="anchor" href="#201-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;多进程对 ML 至关重要。ML 算法计算量大，需要高效利用所有 CPU、服务器和集群。出于这个原因，本书中提出的大多数函数都是为异步多进程设计的。例如，我们频繁使用了一个神秘的函数 &lt;code&gt;mpPandasObj&lt;/code&gt;，却从未定义它。在本章中，我们将解释该函数的功能。此外，我们将详细研究如何开发多进程引擎。本章提出的程序结构对用于执行它们的硬件架构是不可知的，无论我们使用单个服务器的核心还是分布在多个互联服务器上的核心（例如，在高性能计算集群或云中）。&lt;/p&gt;
&lt;h2 id="202-向量化示例"&gt;20.2 向量化示例&lt;a class="anchor" href="#202-%e5%90%91%e9%87%8f%e5%8c%96%e7%a4%ba%e4%be%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;向量化（又称数组编程）是并行化的最简单示例，其中一个操作一次应用于整个值集合。作为一个最简示例，假设你需要对一个 3 维空间进行暴力搜索，每个维度 2 个节点。该笛卡尔积的非向量化实现看起来像代码片段 20.1。如果你必须搜索 100 个维度，或者维度数由用户在运行时定义，这段代码会是什么样子？&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;代码片段 20.1 非向量化的笛卡尔积&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;img src="images/Image00730.webp" alt="" /&gt;
&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;向量化解决方案将所有显式迭代器（如 &lt;code&gt;For...loops&lt;/code&gt;）替换为矩阵代数操作或编译的迭代器或生成器。代码片段 20.2 实现了代码片段 20.1 的向量化版本。向量化版本更优有四个原因：(1) 慢的嵌套 &lt;code&gt;For...loops&lt;/code&gt; 被快速迭代器取代；(2) 代码从 &lt;code&gt;dict0&lt;/code&gt; 的维度推断网格的维度；(3) 我们可以运行 100 个维度而无需修改代码或需要 100 个 &lt;code&gt;For...loops&lt;/code&gt;；(4) 在底层，Python 可以用 C 或 C++ 运行操作。&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;代码片段 20.2 向量化的笛卡尔积&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;img src="images/Image00313.webp" alt="" /&gt;
&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 id="203-单线程-vs-多线程-vs-多进程"&gt;20.3 单线程 vs 多线程 vs 多进程&lt;a class="anchor" href="#203-%e5%8d%95%e7%ba%bf%e7%a8%8b-vs-%e5%a4%9a%e7%ba%bf%e7%a8%8b-vs-%e5%a4%9a%e8%bf%9b%e7%a8%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;现代计算机有多个 CPU 插槽。每个 CPU 有多个核心（处理器），每个核心有几个线程。多线程是在两个或更多线程上并行运行多个应用程序的技术。多线程的一个优势是，由于应用程序共享同一个核心，它们共享相同的内存空间。这引入了几个应用程序可能同时写入相同内存空间的风险。为防止这种情况发生，全局解释器锁（GIL）一次将写访问分配给每个核心的一个线程。在 GIL 下，Python 的多线程被限制为每个处理器一个线程。因此，Python 通过多进程而非真正的多线程实现并行性。处理器不共享相同的内存空间，因此多进程不会有写入相同内存空间的风险；然而，这也使得在进程之间共享对象更加困难。&lt;/p&gt;</description></item><item><title>第21章 · 暴力搜索与量子计算</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch21.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch21.html</guid><description>&lt;h1 id="暴力搜索与量子计算"&gt;暴力搜索与量子计算&lt;a class="anchor" href="#%e6%9a%b4%e5%8a%9b%e6%90%9c%e7%b4%a2%e4%b8%8e%e9%87%8f%e5%ad%90%e8%ae%a1%e7%ae%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="211-动机"&gt;21.1 动机&lt;a class="anchor" href="#211-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;离散数学自然地出现在多个 ML 问题中，包括层次聚类、网格搜索、基于阈值的决策和整数优化。有时，这些问题没有已知的解析（闭式）解，甚至没有近似它的启发式方法，我们唯一的希望是通过暴力搜索。在本章中，我们将研究一个对现代超级计算机来说棘手的金融问题如何被重新表述为整数优化问题。这种表示使其适合量子计算机。从这个例子中，读者可以推断如何将他特定的金融 ML 棘手问题转化为量子暴力搜索。&lt;/p&gt;
&lt;h2 id="212-组合优化"&gt;21.2 组合优化&lt;a class="anchor" href="#212-%e7%bb%84%e5%90%88%e4%bc%98%e5%8c%96"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;组合优化问题可以描述为存在有限数量可行解的问题，这些解由有限数量变量的离散值组合产生。随着可行组合数量的增长，穷举搜索变得不切实际。旅行商问题是已知为 NP 困难（Woeginger [2003]）的组合优化问题的例子，即至少与非确定性多项式时间内可解的最难问题一样难的类别。&lt;/p&gt;
&lt;p&gt;使穷举搜索不切实际的是，标准计算机顺序评估和存储可行解。但如果我们可以一次评估和存储所有可行解呢？这就是量子计算机的目标。标准计算机的比特一次只能采用两种可能状态（{0, 1}）之一，而量子计算机依赖量子比特（qubit），这是可以保持两种状态&lt;em&gt;线性叠加&lt;/em&gt;的内存元素。理论上，量子计算机由于量子力学现象可以实现这一点。在某些实现中，量子比特可以同时支持两个方向的电流，从而提供所需的叠加。这种线性叠加特性使量子计算机非常适合求解 NP 困难组合优化问题。量子计算机能力的全面论述见 Williams [2010]。&lt;/p&gt;
&lt;p&gt;理解该方法的最佳方式是通过特定示例。我们现在将看到受一般交易成本函数约束的动态投资组合优化问题如何表示为量子计算机可处理的组合优化问题。与 Garleanu 和 Pedersen [2012] 不同，我们不假设收益来自 IID 高斯分布。这个问题对大型资产管理公司特别相关，因为过度换手和实现 shortfall 的成本可能严重侵蚀其投资策略的盈利能力。&lt;/p&gt;
&lt;h2 id="213-目标函数"&gt;21.3 目标函数&lt;a class="anchor" href="#213-%e7%9b%ae%e6%a0%87%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;考虑一组资产 X = {x&lt;del&gt;i&lt;/del&gt;}，i = 1, ..., N，其收益在每个时间范围 h = 1, ..., H 上遵循多元正态分布，具有变化的均值和方差。我们假设收益是多元正态的、时间独立的，但非时间同分布。我们定义交易轨迹为 N×H 矩阵 ω，确定在 H 个范围上分配给 N 个资产中每一个的资本比例。在特定范围 h = 1, ..., H 处，我们有预测均值 μ&lt;del&gt;h&lt;/del&gt;、预测方差 V&lt;del&gt;h&lt;/del&gt; 和预测交易成本函数 τ&lt;del&gt;h&lt;/del&gt;[ω]。这意味着，给定交易轨迹 ω，我们可以计算期望投资收益向量 r，如&lt;/p&gt;
&lt;p&gt;&lt;img src="images/Image00164.webp" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;其中 τ[ω] 可以采用任何函数形式。不失一般性，考虑以下：&lt;/p&gt;</description></item><item><title>第22章 · 高性能计算智能与预测技术</title><link>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch22.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://uynajgi.github.io/yuulibrary/books/advances-fin-ml/ch22.html</guid><description>&lt;h1 id="高性能计算智能与预测技术"&gt;高性能计算智能与预测技术&lt;a class="anchor" href="#%e9%ab%98%e6%80%a7%e8%83%bd%e8%ae%a1%e7%ae%97%e6%99%ba%e8%83%bd%e4%b8%8e%e9%a2%84%e6%b5%8b%e6%8a%80%e6%9c%af"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Kesheng Wu 与 Horst D. Simon&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="221-动机"&gt;22.1 动机&lt;a class="anchor" href="#221-%e5%8a%a8%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;本章介绍劳伦斯伯克利国家实验室（LBNL）的「计算智能与预测技术」（Computational Intelligence and Forecasting Technologies，CIFT）项目。CIFT 的主要目标是推动高性能计算（HPC）工具和技术在流数据分析中的应用。在注意到 SEC 与 CFTC 将数据量作为延迟五个月才发布 2010 年闪电崩盘（Flash Crash）调查报告的原因之后，LBNL 启动了 CIFT 项目，旨在将 HPC 技术应用于金融数据的管理与分析。对流数据做出及时决策是许多商业应用的需求，例如避免电网即将发生的故障或金融市场中的流动性危机。在所有这些情形中，HPC 工具都非常适合处理复杂的数据依赖关系并提供及时的解决方案。多年来，CIFT 致力于研究多种不同形式的流数据，包括来自道路交通、电网、用电量等方面的数据。以下各节解释 HPC 系统的关键特征，介绍这些系统上使用的若干专用工具，并给出使用这些 HPC 工具进行流数据分析的实例。&lt;/p&gt;
&lt;h2 id="222-对-2010-年闪电崩盘的监管响应"&gt;22.2 对 2010 年闪电崩盘的监管响应&lt;a class="anchor" href="#222-%e5%af%b9-2010-%e5%b9%b4%e9%97%aa%e7%94%b5%e5%b4%a9%e7%9b%98%e7%9a%84%e7%9b%91%e7%ae%a1%e5%93%8d%e5%ba%94"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;2010 年 5 月 6 日约下午 2:45（美国东部夏令时），美国股市的道琼斯工业平均指数经历了近 10% 的暴跌，但几分钟后又收复了大部分跌幅。监管机构花了大约五个月才拿出一份调查报告。在调查该崩盘的国会小组面前，数据量（约 20 TB）被列为长期延迟的主要原因。由于诸如国家能源研究科学计算（NERSC）中心&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;等 HPC 系统通常在数分钟内就能处理数百 TB 的数据，我们处理来自金融市场的数据应当毫无问题。这促成了 CIFT 项目的建立，其使命是将 HPC 技术与工具应用于金融数据分析。&lt;/p&gt;
&lt;p&gt;金融大数据的一个关键特征是它主要由时间序列构成。多年来，CIFT 团队与众多合作者一起开发了分析多种不同形式的数据流和时间序列的技术。本章简要介绍 HPC 系统，包括硬件（22.4 节）和软件（22.5 节），并回顾几个成功的用例（22.6 节）。最后我们总结迄今为止的愿景与工作，并提供给有兴趣的读者联系方式。&lt;/p&gt;
&lt;h2 id="223-背景"&gt;22.3 背景&lt;a class="anchor" href="#223-%e8%83%8c%e6%99%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;计算技术的进步使得寻找复杂模式变得容易得多。这种模式发现能力背后是一系列近期的科学突破，例如希格斯玻色子的发现（Aad 等 [2016]）和引力波的发现（Abbott 等 [2016]）。同样的能力也是许多互联网公司的核心，例如将用户与广告商进行匹配（Zeff 和 Aronson [1999]，Yen 等 [2009]）。然而，科学与商业中所使用的硬件和软件迥然不同。HPC 工具具有一些关键优势，在多种商业应用中应当是有用的。&lt;/p&gt;</description></item></channel></rss>