Trader OS
Advanced

Advanced C · 系统化与量化交易

从市场问题到可复现代码,控制数据可见性、选择偏差与交易成本。

Advanced C · Systematic / Quant Trading主观判断 → 从 Market Question 出发的系统化研究
研究主题
Time SeriesFactor ResearchSignal CombinationFeature EngineeringCross-sectional StrategyAlternative DataStatistical ArbitrageML SignalRegime ModelOptimization
它继续追问的 Foundation 节点
  1. 第 22 章 · 信号怎样做 Feature Engineering,并把多个信号组合成一个?
  2. 第 23 章 · 市场状态怎样建立 Regime Model,让策略在不同状态下调整或暂停?
  3. 第 25 章 · 回测事件驱动回测和向量化回测,各自有什么陷阱?
  4. 第 26 章 · 数据偏差怎样构建没有幸存者偏差、按时间点对齐的数据集?
  5. 第 27 章 · 样本内与样本外Walk-forward 和 Purged Validation 怎样防止信息泄漏?
  6. 第 29 章 · 稳健性怎样检验 Parameter Stability?参数平原和参数孤峰有什么区别?

Market Question 先于模型

本领域研究「过去信息能否改善下一期净收益决策」,而非寻找一条最好看的曲线。研究工作簿提供只依赖 Python 标准库的完整教学实验:固定种子生成输入、历史特征、时序切分、训练期选择、成本、最终样本外、块 bootstrap 与路径回撤。它演示研究纪律,不宣称合成数据存在市场优势。

先保存原始输入和数据字典,再生成派生特征。预测、仓位和成交是不同对象;模型预测正确也可能因为成本、容量或无法成交而没有净收益。

Time Series:时钟是第一项约束

时间序列保留观察的先后关系,滚动窗口只能读取当前决策前已经发布的数据。收益标签要记录开始和结束时刻;如果标签跨越训练与测试边界,删除跨界训练样本。相同时间重叠的交易结果不应被当作独立实验。

练习将一条行情的实际发布时间延后一周期,检查信号是否相应后移。若策略仍在原时间成交,就存在未来信息泄漏。作品验收要求每行有 event_time、available_at、decision_time、label_end,满足先可见再决策;缺行情时先记录停止或跳过,不能填入未来插值。

Factor Research:先说明为什么预期存在补偿

因子是横截面或时间序列上共享的解释变量。规模、流动性、动量等指标可能代理共同风险;预测相关性不等于因果。研究一个因子时,先定义经济机制、方向、持有期和成本,再观察排序分组或回归结果。

练习把过去收益作为候选,与只持有市场的基线比较,报告分组收益、信息系数及换手;在验证前固定分组数。若只在最不流动资产有效,检查是否是无法实现的价格。验收保留退市样本、因子版本和风险控制,不能将未扣成本的相关系数直接称为 Alpha。

Signal Combination:权重也会过拟合

两个信号若来自同一历史收益窗口,平均后不一定增加独立信息。先统一时钟和量纲,再比较等权、事前固定权重与训练期拟合权重。组合权重本身也是参数,须进入尝试登记与样本外流程。

练习对动量和流量信号分别做「只保留其一」的消融实验。只有组合在同一测试期、相同风险与成本下提供稳定增量,才有保留复杂度的理由。验收交信号相关矩阵、权重版本、单信号与组合对照;缺一个输入时按冻结的缺失策略处理,不事后改权重以追随赢家。

Feature Engineering:每个变换都要有训练边界

收益、波动、滚动分位数和成交量比率是派生特征;归一化、异常值截断、缺失填补都包含参数。只在训练集拟合这些参数,再应用到验证和测试,不能用全样本均值提前知道未来分布。

练习在测试段加入一次大波动,确认训练期标准化结果完全不变;再注入缺失输入,检查输出是预定替代值或无信号。验收保存变换顺序、拟合窗口、单位和异常处理规则。对真实极端收益进行截断会改变尾部风险,原始风险序列仍须保留。

Cross-sectional Strategy:比较谁,而不是事后挑谁

横截面策略同一时刻对多个可交易资产排序,必须重建当时资产池。选择价格相同风险不同的资产,可能只是买了更高 Beta;长短两组等名义也不自动因子中性。

练习从一个含上市、退市和缺失的教学资产表逐期生成成员名单,禁止使用未来入选信息。输出每期排名、被排除的原因和组合名义。验收检查最小流动性、借券可得性、单资产上限与行业集中度,允许因不满足约束而空仓。

Alternative Data:标签和修订也是数据

链上标签、新闻、基金流量和社交文本常有迟到、修订、覆盖扩张与许可限制。发生时间不是可交易时间。只有今天的最终修订版时,不能无条件当作历史 point-in-time 数据。

练习对同一事件保存初版与修订版,分别生成信号,量化修订对结论的影响;不掌握历史版本则将结论限制为探索。验收提供来源、首次可见时间、版本、许可边界及缺失率。研究代码不得要求填入账户密钥、客户数据或真实交易权限。

Statistical Arbitrage:稳定关系必须被检验

统计套利利用价差或残差的可预测恢复,仍承担模型与融资风险。收益相关不等于价格协整;即使某训练期存在稳定关系,也可能因制度、供给和参与者变化失效。

练习先在训练段估计一对教学价格的关系,再对测试残差检查均值、方差与恢复时间是否稳定;加入一个永久水平跳变,观察停止规则。验收要有经济解释、关系破裂检测、两腿成本和持有上限。不得不断重估直到失效样本被吸收,再声称模型从未失效。

ML Signal:复杂度需要样本外增量证据

机器学习可以拟合非线性关系,也能更有效地拟合噪声。先用常数预测、线性或简单规则作为基线,再引入复杂模型。特征选择、模型类别和超参数都应只在内层训练与验证中确定。

练习在冻结标签与成本后比较一个简单基线和一个候选模型;报告预测误差、方向校准、交易换手和净收益,四者不可互相代替。没有足够样本支撑复杂模型时,作品可选择保留基线。验收包含训练随机种子、软件版本、特征清单与失败尝试,不接受只交模型文件。

Regime Model:状态标签必须在当时知道

用过去波动、价差或流动性定义状态,目的是约束策略适用条件。事后把亏损日标成「危机」再过滤,会把结果泄漏进信号。隐状态模型也只能用过去数据过滤,不能用全序列平滑概率冒充实时概率。

练习给同一策略增加仅由前期波动决定的暂停条件,比较净收益与少交易带来的机会成本。验收报告每次状态切换依据、迟滞或冷却规则与误判;数据不足时默认状态必须明确,不能总选择事后表现最好的分支。

Optimization:目标函数不能决定真实世界

最大化训练收益容易集中在噪声、薄流动性或极端杠杆。优化需同时包含成本、仓位、换手、集中度和资本约束;目标函数若省略尾部风险,最优解可能只是更有效地承担未定价风险。

练习把参数网格限制为事前登记的小集合,绘出相邻参数表现,而非仅报峰值。先选择稳定区域,再锁定最终测试。验收报告搜索次数、约束活跃情况、失败解与简单基线;测试后再调参意味着开启新研究,原测试段转为已使用数据。

Walk-forward:模拟研究在时间中推进

Walk-forward 每折用过去窗口训练、随后窗口验证、再在更晚的测试窗口评估。窗口滚动或扩张应事前决定;所有变换和参数每折重新拟合。拼接各折真正测试期收益,才能形成接近运行顺序的评估序列。

练习手画三折边界,标出每折可读到的数据和模型版本。窗口选择本身若经过试验,仍要保留独立最终测试。验收不允许测试窗口重叠后把同一天收益重复累加,也不能将验证期业绩拼入最终曲线。

Purged Validation:隔离标签重叠

Purged Validation 删除训练集中标签时间区间与验证或测试区间重叠的样本。若采用会把未来样本用于训练的交叉验证,还需在验证区间后设置 embargo,降低相邻窗口通过特征和标签传播信息的风险。embargo 长度应有数据依赖依据,不是一个万能比例。

教学工作簿严格按过去训练、未来测试,标签持有两期,删除跨界样本;不需要伪装成随机 K 折。在练习中把持有期改长,检查被删除的样本同步增加。验收交切分索引与泄漏断言;单纯出现「purged」字样不算完成。

作品:可复现研究代码

运行工作簿代码,保留输入、参数、种子、命令和完整输出。随后用有来源与可见时间的数据替换教学输入,重新执行同一管线。缺可交易输入时,结论停留在工程演练,不授予策略晋级。

完成标准:另一位读者能从空目录复制代码执行;改变成本确实影响净收益;改变测试数据不改变训练期选择;标签重叠会被删除;缺失、长度不足与非有限输入被明确拒绝。最终交 Research Memo、代码、输入与 Backtest Report,交给机构研究管线。

本页目录