第 8 章 · 02 Ore Money 占位与全书回顾 本节摘要:这是全书的最后一节,既是第 8 章的收尾,也是整段量化研究者旅程的终点。本节先简短交代 Ore Money 这个未完成占位项目——它是 Oil Money 的升级版(铁矿-货币套利),但目前只有数据骨架(3 个 CSV:澳元兑欧元、雷亚尔兑澳元、格里夫纳兑美元)和一个 basemap 气泡图脚本,没有任何建模或交易逻辑,作者明示这是"upcoming project",把它留给读者当开放练习题。
本节摘要:这是全书的最后一节,既是第 8 章的收尾,也是整段量化研究者旅程的终点。本节先简短交代 Ore Money 这个未完成占位项目——它是 Oil Money 的升级版(铁矿-货币套利),但目前只有数据骨架(3 个 CSV:澳元兑欧元、雷亚尔兑澳元、格里夫纳兑美元)和一个 basemap 气泡图脚本,没有任何建模或交易逻辑,作者明示这是"upcoming project",把它留给读者当开放练习题。本节的真正重心是全书回顾:我们把 8 章串成一段完整的研究者进阶之旅——从第 1 章建立诚实回测态度,到第 2 章轻信指标、第 3 章学会形态、第 4 章学会检验、第 5 章接触衍生品,再到第 6-7 章两个 quantamental 大项目(Oil Money 的"模型失效即动量信号"、Smart Farmers 的"I have never seen a bad backtest"),最后落到第 8 章对 MC 的批判反思。我们会总结这八个项目共享的五条共同基因,并落到全书反复印证的核心理念:"identification(识别)远比 estimation(估计)重要"。结尾是全书结束语和下一步学习建议。
涉及源码:原项目
Ore Money project/README.md(约 1.2KB 占位说明)、Ore Money project/iron ore production/iron ore production bubble map.py(65 行可视化脚本);以及iron ore audeur.csv/iron ore brlaud.csv/iron ore uahusd.csv三份数据。本节还会回顾前 7 章的全部项目源码。
⚠️ 注意:Ore Money 不是"隐藏的成熟策略",而是作者公开承认未完成的项目。README 第一句就写明 "This is an upcoming project...an upgraded version of oil money trading strategy with introduction of more sophisticated models and alternative datasets."。目录里没有策略脚本,只有数据和可视化。把它当作"作者留给你的一道开放题"来读,比当作"待解读的成品策略"更准确。
Ore Money 是 Oil Money 项目的理念延伸。Oil Money 的核心命题是"原油出口国的汇率与油价存在因果关系"(第 6 章);Ore Money 把同一个范式搬到铁矿石上:铁矿石出口大国(澳大利亚、巴西、乌克兰)的汇率,是否与铁矿石现货价格存在可套利的因果关系?
| 出口国 | 主要出口大宗 | 对应货币 | 数据文件 | 计价基准(工具变量) |
|---|---|---|---|---|
| 澳大利亚 | 铁矿石(全球第一,年产 81.7 万吨) | 澳元 AUD | iron ore audeur.csv |
欧元 EUR |
| 巴西 | 铁矿石(全球第二,年产 39.7 万吨) | 雷亚尔 BRL | iron ore brlaud.csv |
澳元 AUD |
| 乌克兰 | 铁矿石(欧洲重要产地) | 格里夫纳 UAH | iron ore uahusd.csv |
美元 USD |
这套设计完全复刻了 Oil Money 的"非贸易伙伴货币当计价基准"思路(第 6 章第 01 节讲过的工具变量思想):用外生于目标国铁矿基本面的货币当 base,把铁矿石的真实驱动力相对干净地分离出来。三份 CSV 里除了铁矿石现货价(62% 品位)和目标货币汇率,还塞了一批"控制变量"——比如 iron ore audeur.csv 里同时有纽卡斯尔动力煤、黄金、亨利港天然气;iron ore brlaud.csv 里有大豆、糖、布伦特原油;iron ore uahusd.csv 里有俄罗斯卢布、土耳其里拉、波兰兹罗提。这些是给多元回归准备的解释变量池,作者连"将来要建什么模型"的数据骨架都搭好了。
README 里作者写得明明白白——Ore Money 要用 "more sophisticated models and alternative datasets"(更复杂的模型和替代数据集)。对照 Oil Money 已经用到的多元回归 / Elastic Net / 逐步回归 / K-Means / 协整,Ore Money 显然想再上一级。但替代数据(alternative datasets)在量化研究里是出了名的贵——卫星图、船舶 AIS、海关报关、产量高频估算,这些数据单个订阅费就是五位数美元起步。
作者在仓库主 README 里也坦白过:"no HFT strategy simply because ultra high frequency data are very expensive to acquire"(没有 HFT 策略,只因为超高频数据太贵)。Ore Money 的停摆,本质上是同一个原因的另一种表现:研究野心碰上了数据成本的墙。但作者没有把这一摊半成品藏起来,而是公开承认"upcoming",并把已经搭好的数据骨架和可视化留了下来——这本身就是一种诚实。
整个 Ore Money 目录里唯一能跑的代码,是 iron ore production bubble map.py(65 行)。它用 mpl_toolkits.basemap.Basemap 画一张全球铁矿石产量气泡图:
35 ax=plt.figure(figsize=(50,20)).add_subplot(111) 36 39 m = Basemap() 40 m.drawmapboundary(fill_color='white', linewidth=0) 41 m.fillcontinents(color='#c0c0c0',alpha=0.5, lake_color='white') 42 m.drawcountries(linewidth=1,color='#a79c93') 43 44 size=df['iron ore production']/max(df['iron ore production'])*40000 45 47 x,y=m(df['longitude'].tolist(),df['latitude'].tolist()) 48 49 m.scatter(x,y, s=size, linewidths=2, edgecolors="#6c6b74", 50 alpha=0.8,c=df['iron ore production'],cmap='autumn_r')
气泡大小和颜色都映射到产量(iron ore production 列),数据来自维基百科"各国铁矿石产量列表"(2015 年)。这张图纯粹是研究阶段的可视化探索——作者用它来"看出"哪些国家值得做铁矿-货币套利(气泡大的:澳大利亚、巴西、中国、印度)。没有任何建模、没有任何交易逻辑,只是一张"选题论证图"。
⚠️ 重要说明:
basemap这个库已经停止维护,在现代 Anaconda 上安装很痛苦(作者在注释里写了 "installing basemap is pretty painful")。官方推荐用cartopy替代。如果你要复现这张图,建议直接改用cartopy——API 接近,迁移成本低。这也是本项目"依赖偏老"的一个缩影(和第 1 章讲过的fix_yahoo_finance已废弃是同一类问题)。
Ore Money 的"未完成"反而是全书的最佳收尾——它把球踢回给了读者。你已经读完了 Oil Money 全套方法(多元回归/Elastic Net/协整/K-Means/动量发现),现在作者给你一份现成的数据骨架和一个明确的命题(铁矿-货币套利),让你自己把 Oil Money 的范式移植过来。这是一道极好的开放练习题:
这些问题作者没有给出答案,因为这就是研究者真正的工作状态——大部分时间你面对的不是现成答案,而是"命题 + 数据 + 方法论框架",答案要自己跑出来。
Ore Money 没有策略算法可精读。iron ore production bubble map.py 的 65 行代码,核心就是上面贴的那段 Basemap + scatter 调用,外加一个循环给每个气泡加国家名标签:
52 for i in range(len(x)): 53 plt.text(x[i],y[i], 54 '%s '%(df['region'][i]), 55 horizontalalignment='center', 56 verticalalignment='center', 57 size=25)
整个脚本唯一的"算法"成分是 44 行那个气泡大小归一化:size=df['iron ore production']/max(df['iron ore production'])*40000——把产量除以最大产量做 min-max 归一化(这里其实是 max 归一化),再乘一个 40000 的视觉系数控制气泡视觉大小。cmap='autumn_r'(autumn 色图的反转)让产量大的国家颜色更深。
这段代码的可读性其实很高,工程亮点不多。真正值得讲的是它在研究流程里的位置:这是一张"选题图",出现在任何建模之前。研究者在动手建模型前,先用可视化确认"哪些国家值得做"——澳大利亚和巴西的气泡明显比其他国家大,所以数据集里专门准备了 audeur 和 brlaud;中国的气泡虽然也大,但人民币汇率受管制,不适合做这个套利,所以没有 cnyxxx 的数据。可视化在这里驱动了研究范围的选择,而不是事后装饰。
本节的"反直觉"不在代码里,而在项目状态本身——一个公开承认未完成的项目,反而比一堆"看似完成"的策略更有教学价值。
大多数量化教程仓库会拼命掩饰"我这个策略其实没跑通实盘"——要么把回测结果修饰得漂亮,要么对前向测试失败避而不谈。je-suis-tm 反其道而行:Ore Money 的 README 第一句就是 "upcoming project"(即将到来的项目),目录里只有数据和气泡图,没有一行策略代码。这种**公开承认"我还没做完"**的姿态,在量化圈反而是稀缺品。
它和上一节的 Monte Carlo 批判、第 7 章 Smart Farmers 自曝前向测试失败,共同构成了作者最鲜明的人格特质——对失败的坦诚。这正是 MSCI 研究主管那句"I have never seen a bad backtest"(我从没见过难看的回测)的反面:作者不仅见过难看的回测,还愿意写下来给你看。
如果 Ore Money 是一个跑完的策略,读者顶多学到"又一种 Oil Money 的复刻"。但它是未完成的,读者就被迫从"被动阅读"切换到"主动研究"——你得自己决定用什么模型、怎么切训练/测试、怎么处理 2014-2015 大宗熊市这种结构断点。这是从"读教程"到"做研究"的关键一跃。整本教程里,没有任何一节比 Ore Money 更能逼读者动手。
数据骨架先行。即便策略没写,先把数据集(iron ore audeur.csv 等,含目标变量 + 解释变量池)和可视化(bubble map)准备好。这是成熟研究者的习惯——数据获取和清洗往往是项目最耗时的部分,把这部分做完,后续建模会顺畅很多。
可视化驱动研究范围。在建模前先用一张选题图(bubble map/choropleth/热力图)确认"哪些标的值得做"。Ore Money 的气泡图让作者一眼看出澳大利亚和巴西是主战场,中国因汇率管制排除——这种"先用眼睛筛一遍"的工程习惯,比盲目跑全样本回归高效得多。
占位文档要诚实。README 第一句就写 "upcoming project",不要用模糊措辞掩饰半成品状态。诚实标注项目状态,比伪装完成更有可信度。
把开放题留给读者。一份好的教程,终点不应该是"所有问题都有答案",而应该是"读者带着新问题离开"。Ore Money 就是这种设计——它给数据、给方法范式(Oil Money)、给命题(铁矿-货币套利),但不给答案。
依赖要及时迁移。basemap 已停止维护,官方推荐 cartopy。如果你的代码依赖了过时库,要么在注释里标明替代方案(作者做到了),要么主动迁移。这是项目长期可复现的关键。
我们终于走完了整段旅程。把 8 章串起来,你会看到一条清晰的成长弧线——越往后,越不依赖具体指标,越依赖对市场本质的理解。
旅程的起点不是任何策略,而是态度。作者在仓库主 README 开篇就立了规矩:所有脚本都是历史回测、假设无摩擦(无滑点、无手续费、无流动性约束)、不构成投资建议。引用文艺复兴科技 Robert Mercer 和 Elwyn Berlekamp 的名言"只要 51% 胜率就能赚大钱",定下了全书的基调——量化赚钱靠的是对假设的诚实,不是某个神奇指标。这一章我们还理顺了依赖(没有 requirements.txt,从 import 反推;fix_yahoo_finance/basemap 已废弃需迁移)。
新人最容易掉进的坑——相信"金叉死叉"能赚钱。这一章讲了三个最朴素的动量/趋势指标:MACD Oscillator(均线交叉)、Awesome Oscillator(MACD 升级版,用 (H+L)/2 替代收盘价,加 saucer 碟形信号)、Parabolic SAR(Welles Wilder 的递归止盈止损,带加速因子)。反直觉发现:实测中 MACD 的 Sharpe 反而比号称"升级版"的 AO 更高——升级不一定等于更好。
从单一指标升级到价格形态和时段结构。London Breakout 抓伦敦开盘 7:00-7:59(GMT)的区间突破——本质是跨时区信息套利(亚洲盘的波动信息被伦敦开盘吸收)。Dual Thrust 用前日 OHLC 定上下沿、带翻仓机制。Shooting Star 用 8 条件定义一根 K 线形态。Heikin-Ashi 用 (H+L)/2 的 OHLC 变换滤噪,这一节还附带了完整的统计模块(Sharpe/Omega/Sortino)——Heikin-Ashi 是全书统计指标的"大本营"。
研究者开始成熟——不再轻信信号,开始用统计检验。Pair Trading 用 Engle-Granger 两步协整检验 + 标准化残差 ±1σ 找入场点。反直觉发现:"不存在无风险的统计套利"——NVDA/AMD 这对长期协整的股票,在某个时点彻底破裂,残差永不回归。这是对"统计套利稳赚"神话的第一次祛魅。Bollinger Bands W 底(75 日窗口找 5 节点)和 RSI 头肩顶(发明人与门徒互相矛盾的趣闻)补充了形态识别的统计视角。
从线性世界进入非线性世界。Options Straddle 讲跨式期权的 payoff 图、事件驱动逻辑——只有加上 quantamental 基本面判断,组合才能真正无懈可可击(光靠期权结构本身赚不到钱)。VIX Calculator 用 Riemann sum + Taylor 展开把连续方差互换离散化为 CBOE 的 VIX 指数,这是从 Black-Scholes 理论到工程实现的关键一跃。这一章为后面两个 quantamental 大项目铺好了观念地基。
旅程的第一个高潮。Oil Money 项目拷问一个被财经媒体反复兜售的命题:"油价涨,石油货币就涨"。作者用非贸易伙伴货币当计价基准(NOK→JPY、RUB/CAD/COP→AUD)的工具变量思想,绕开构造贸易加权汇率的难题,对四种货币分别检验。重磅反直觉发现:本想找统计套利,却意外发现"模型失效的瞬间恰是动量入场点"——NOK 在 2017/11/15 模型失效后反而产生了 α≈4% 的动量收益。CAD 被全面证伪(所有烃类 R²<5%,dollar effect 是元凶)。COP 是唯一正面确认(pre-2017 R²≈80%)。这一章是 quantamental 思维的最高示范。
旅程的第二个高潮,也是学术性最强的一章。Smart Farmers 项目用凸优化(CVXOPT 二次规划)建模马来西亚农民的种植决策——预测 6 种作物(可可/椰子/卷心菜/芒果/油棕/橡胶)的产量与价格。方法栈极深:2SLS 工具变量、合成控制法、市场均衡、Markowitz 类比、Ricardian 模型(引用 Marshall 1890 和 Ricardo 1817)。棕榈油期货前向测试。反直觉发现:引用 MSCI 研究主管"I have never seen a bad backtest"——所有漂亮回测在样本外都失败,前向测试才是检验真理的唯一标准。7 篇文献含两篇 19 世纪经典。
旅程的终点,也是最尖锐的一章。Monte Carlo 项目用两个反例(GE 2018 跌 57.9%、NVDA 2008 跌 75.6%)系统性反驳"用 SDE 蒙特卡洛预测股价"——500 次模拟连尾部量级都测不准,大数定律在此失效(方向准确率与掷硬币无异)。这是全书批判性思维的最高潮:从"我的模型有效吗"升级到"这种建模方式本身有效吗"。Ore Money 占位说明作者的研究仍在延伸,但本教程到此收束。
读完全书你会发现,je-suis-tm 的八个项目共享五条鲜明特征——这正是这套策略集的"指纹":
不用 zipline/backtrader/QuantConnect,纯 pandas + matplotlib 手撸回测循环、仓位簿、统计指标。统一的 positions(持仓状态) vs signals(= positions.diff() 实际下单)双列约定,cumsum 贯穿防重复触发。这种"裸写"的好处是每一步都透明——你能看清每一笔仓位怎么来的,不像黑盒框架只给你一个最终收益曲线。代价是代码重复度高(每个策略都重写一遍回测循环),但教学价值无可替代。
拒绝纯技术分析或纯数据科学。每个策略都把数学与商品/市场基本面深度融合——Oil Money 不懂原油产业链就别做石油货币,Smart Farmers 不懂马来西亚农业结构就别做作物预测,Pair Trading 不懂 NVDA/AMD 的业务关系就别做协整。不懂底层商品就别做量化,这是全书反复强调的信条。
每个项目都在"证伪"某个流行命题:Oil Money 证伪 CAD 石油货币神话,Smart Farmers 自曝前向测试失败,Monte Carlo 整篇反驳 MC 预测股价,Pair Trading 自曝协整破裂。演示的是**"从失败/反例中学习"的研究姿态**——这比一堆"我的策略又赚钱了"的教程有价值得多。作者的反复警示是:回测好看不代表实盘能赚。
每个项目都有"反转"——预期落空后产生新洞察。Oil Money 本想做统计套利,却发现模型失效即动量信号;Smart Farmers 本想证明凸优化能预测农民行为,却发现前向测试全失败;Monte Carlo 本想验证 MC 能预测股价,却发现它连尾部都测不准。这种"先扬后抑"的叙事,是旅程式教程的最佳素材,也是最贴近真实研究状态的写法——真正的洞察往往来自预期的破裂。
假设清单(无摩擦、历史回测、不构成投资建议)、模型失效点(NOK 2017/11/15、NVDA/AMD 协整破裂)、数据局限(basemap/fix_yahoo_finance 已废弃、高频数据太贵)、项目状态(Ore Money 的 "upcoming")——这些"不光彩"的细节作者全都坦白标出。这种诚实是全书可信度的根基,也是量化研究最稀缺的品质。
如果要从全书挑一句话当墓志铭,就是这句:"identification(识别)远比 estimation(估计)重要。"
这八个字在全书反复印证:
estimation 是"把已知模型参数算准",identification 是"确认你用的模型/关系本身是对的"。前者是技术问题,后者是科学问题。绝大多数量化策略的失败,不在 estimation,而在 identification——你把一个本来就不成立的关系估计得再准也没用。这是全书最深的洞察,也是 je-suis-tm 这个仓库留给读者最珍贵的礼物。
Basemap + scatter 画全球铁矿石产量气泡(数据来自维基百科 2015),纯研究阶段可视化,驱动研究范围选择(澳大利亚/巴西气泡大→值得做;中国汇率管制→排除);basemap 已停维护,需迁移到 cartopy。恭喜你读完了整本《quant-trading 中文策略研读教程》。从一个量化研究者的入门态度(第 1 章),到对模型本身的批判反思(第 8 章),我们已经把 je-suis-tm 仓库里的 8 个项目、几十个脚本、上百张图、十几篇学术文献全部走过一遍。这段旅程的弧线,不是"教你 8 个能赚钱的策略",而是带你经历一个量化研究者真实的成长路径——从轻信指标,到学会统计检验,再到把基本面融入量化(quantamental),最后学会批判性地看待模型本身。
读完这本教程,你应该能够:
下一步深入的建议方向:
补全交易成本:全书所有回测都假设无摩擦。挑一个你最熟悉的策略(比如第 2 章 MACD 或第 4 章 Pair Trading),自己加上滑点、手续费、买卖价差,看回测结果衰减多少。你会立刻理解作者为什么反复强调"回测好看≠实盘能赚"。
做 walk-forward 测试:第 7 章 Smart Farmers 的前向测试是全书最诚实的部分。挑一个策略,自己实现滚动窗口的 walk-forward(用前 N 个月训练、第 N+1 个月测试、滚动推进),看样本外表现。这是从"回测型研究者"升级到"实盘型研究者"的必经之路。
参数寻优与过拟合诊断:第 2 章 Heikin-Ashi 已经内置了完整的统计模块,你可以基于它做参数网格搜索,然后用样本外测试诊断过拟合。注意作者在第 1 章的警告——参数寻优是过拟合的高发区,务必保留独立的样本外验证集。
从 Oil Money 模式扩展到其他商品货币:Oil Money 的范式(工具变量 + 多元回归 + 协整 + 动量发现)完全可以移植。比如黄金出口国(南非兰特 ZAR、澳大利亚 AUD)与金价;铜出口国(智利比索 CLP)与铜价;大豆出口国(巴西雷亚尔 BRL)与大豆价。每个商品-货币对都是一个 mini 版 Oil Money 项目。
实现 Ore Money:这是作者留给你最大的开放题。数据骨架(三份 CSV)已经准备好,方法范式(Oil Money 全套)已经讲过,命题(铁矿-货币套利)已经明确。你需要做的,是把 Oil Money 的多元回归/Elastic Net/协整/K-Means 流程,套到 iron ore audeur.csv 这份数据上,看 AUD 与铁矿石 62% 现货价的关系是否成立、能否复制"模型失效即动量信号"的反直觉发现。如果你能把 Ore Money 跑通,你就真正继承了这本教程的衣钵。
深入一个你感兴趣的商品/市场:quantamental 的核心是"懂底层商品"。挑一个你真正感兴趣的大宗商品(原油/黄金/铜/铁矿/大豆/棕榈油),花几个月时间把它的产业链、定价机制、主要生产国、贸易流向、替代数据来源彻底搞懂。然后基于这份理解,设计你自己的量化策略。这是从"读别人的策略"到"做自己的研究"的终极一跃。
量化交易的残酷真相是:绝大多数策略不赚钱,绝大多数回测是幻觉,绝大多数模型 identification 是错的。但正因为如此,那个能诚实面对失败、能精准识别因果关系、能在反直觉处看到洞察的研究者,才是真正稀缺的。希望这本教程帮你向前走了一小步。
记住全书反复出现的那句话:回测好看≠实盘能赚;identification 远比 estimation 重要。
祝你研究顺利,策略正收益,回撤可控。我们后会有期。