跳到正文
阅读设置

阅读设置

导出或导入阅读记录
保留你的阅读记录

已读、收藏、阅读位置和阅读设置保存在当前浏览器地址下。换一个地址不会自动带过去。

迁移时先在原地址导出,再到新地址选择备份文件。操作只在浏览器本地完成,不上传服务器,也不会删除原地址的记录。

导入前会检查文件并请你确认。已读和收藏合并;遇到冲突时保留当前地址已有的位置、最近阅读和设置。

G36 · 系统学习

从指标到信号:写清窗口、时点与规则

用十个月末值把趋势描述写成一致的信号,检查窗口、频率、相等条件、缺失与延迟,再区分时间序列和横截面排序。

尚未标记已读案例与模板 ↓

“高于十个月均线就持有。”小林觉得这次已经说得很精确,结果两个工具仍在同一个月给出相反信号。一个包含本月,一个从上月往前数;另一个地方还把“不大于”写成了“严格小于”。

问题没有藏在复杂算法里,而在句子没有填满的部分。把窗口、比较方向和信息时点写清楚,指标才会变成别人能够重算的信号。本篇先冻结定义,再考虑它值不值得用。

这次要留下什么

  • 为时间序列信号写清输入、窗口、频率、方向和延迟。
  • 区分有效信号、相等条件与数据不足,避免用补数改变判断。
  • 认识时间序列与横截面比较的区别,保存可复核的信号定义表。

指标只描述,信号还要给条件

指标或特征是对资料的某种描述,例如一段平均值、过去收益或盈利比例。信号则说明当描述满足什么条件时,产生怎样的研究判断。把每个指标都直接叫作买点,会漏掉方向、时点与适用范围。

例如“最近表现强”可能是同一资产超过自己的过去水平,也可能是比其他资产跌得少;“低估”也要确定相对于什么。经济机制帮助选择问题,可计算定义让这个问题能接受核查,二者不能互相替代。

趋势研究可能围绕过去变化的延续,但某篇趋势研究的方法、资产和多空安排,并不等于本书ETF与现金的规则。AQR公开趋势材料描述了一种时间序列动量思想;它不能给我们随意选择的窗口或简化信号提供自动盈利证明。[1]

所以先不要争“十个月最好还是十二个月最好”。把目前要检验的版本锁定,记录为何选择它;后来改窗口时,保留新版本和看过的结果,而不是把原定义悄悄覆盖。

十个月末值,到底数哪十个

本书C2-A按月末形成信号:在每月最后一个交易日收盘后,先确认当前总回报指数有效,再与包含当月在内的最近10个有效月末值的简单平均比较。十项足够且严格大于时目标为持有,相等或低于时目标为现金;当前无效或历史不足则不发新目标。目标只作用于策略子账户,不是家庭全部资产配置。

现在只练这个信号,给出独立合成指数点位。它们不是SPY真实价格,也不代表已经完成C2回测;假设全部为相同口径、已经核验且当时可得的有效月末观察。

月末指数点位
M1100
M2102
M3101
M4103
M5104
M6102
M7105
M8106
M9108
M10109

到M10收盘后,十个值之和1040,简单平均104;当前值109严格大于104,因此按给定条件产生持有目标。如果从M9往前数,就是另一组观察,不能把“十个”相同当作窗口相同。

这里平均的是指数水平,不是十个月收益的算术平均,也不是计算波动率。输入若改为原始收盘价或另一种分红调整序列,信号可能改变;即使列名都叫价格,也应回到数据定义确认。

当前值和平均值还必须在同一单位。总回报指数109是用于比较的点位,不是保证能以109美元成交的报价。信号之后,实际账本要使用对应证券的可交易价格和公司行动资料,不能直接拿策略现金除以109当作可买份额。

“十个观察”与“十个月”要逐字核对

窗口长度说明用了多少历史,观察频率说明这些点间隔多久。十个日收盘、十个月末或十个财报期,不因为数量都是十就变成同一种信号;缺失一个月时,也不能拿日频记录来补一格。

C2规格写的是最近10个有效月末值。补充规格要求当前值有效,再向前取九个有效月末,记录缺月造成的跨度;不能用旧值冒充缺失的当前值。当前这张表假设十项均有效;如果后来发现历史一项无效,又没有更早有效值可补,就不能把九项结果标作十项均线。无效决策先使旧挂起目标过期,保留实际账户,等下一有效月末,不在月中补数据后临时交易。

“简单平均”则表示每个值同等参与。若工具默认近期权重更高,或者先对数据平滑,就是不同的特征计算。它不一定不好,但需要另一个名字和版本,不能当原计划已经实现。

最低观察数量也要写明。预热资料是为首次计算提供足够历史,不是可以偷用未来的理由。开始日期前有多少真实可得观察,需要资料证明;没有就留下不足,不让AI编造一段平稳历史填满窗口。

等于门槛,也是一项事前决定

把另一个独立十点样例设为每项104,平均104,当前也是104。C2的严格大于条件不成立,因此目标为现金。这里不是“工具没有判断”,而是已经按照明确规则完成了判断。

若改成大于或等于,便会得到持有目标。两个版本只差一个边界符号,订单和后续成本却可能不同。不能等看到哪种结果好,才解释自己原本说的是那一种。

还要区分比较精度与显示精度。屏幕可能都显示104.00,底层数值却不同;用原始数据、统一容差还是固定小数,必须有规定。不要依视觉上的相等决定交易,也不要为得到期望信号临时四舍五入。

其他策略可以登记不同数值政策;C2本版已经规定按已核原输入严格比较,不先按显示位数舍入,也不临时添加相等容差。这样一来,屏幕展示相同并不授权实现者改写底层比较,变更政策也需要另存版本。

知道信号的时候,早盘已经过去

C2在月末收盘后才能完成当月输入,所以在下一正常交易日开盘按教学成交模型尝试调整目标。不能为了使用更低价格,把收盘后才知道的109放到当日开盘之前。

信号频率与执行延迟也不是同一件事。每月观察一次,不等于可以在当天任意时刻成交;目标要求持有,不等于订单一定成交。缺价或不可成交时按既定规则保留实际账户状态并记录,不能拿信号替代确认。

CFA回测公开概要强调,检验需要规定规则、形成组合、调整并评价结果。[2] 本篇停在信号定义与时点核对,没有把尚未发生的交易写进收益。后面建立账本时,还要连接费用、数量、现金与公司行动。

扩展:比自己的过去,还是比别人

时间序列比较沿着同一对象的历史,例如M10与自身十点平均。横截面比较则在同一观察时点,把多个对象放在一起,例如按过去同一期间收益排序。这两种信号可能给出完全不同的选择。

用独立合成例子:甲过去一个月收益负3%,乙负5%,丙负10%。按横截面从高到低排名,甲第一;按“本月收益严格为正”判断,三者都不满足。排名第一只是相对跌得少,不能把它读成自身正在上涨。

横截面还要定义候选范围、同分处理与缺失政策。若甲乙同为5%,只选第一名时按什么稳定规则处理?不能让文件行序或工具随机决定,而报告里却声称结果完全可复现。

标准化是把特征转成某种统一尺度;极值处理改变特别大的或小的输入;行业处理可能在行业内排名,或调整行业差异。它们都会改变信号,不是无关紧要的清洁步骤。不同负债结构或财务行业的指标,也不能因完成标准化就自动可比。

这些是因子路线必须继续学习的定义工作,不是本篇主线已经完成的横截面研究。选择财务因子还应补齐相应财务前置;G82—G87会把信号构造、检验、暴露与组合连起来,排名本身不是收益证据。

处理输入时,不要把未来带回来

假如为了判断某个旧月份的数值高不高,用包含后来所有月份的均值和标准差标准化,旧信号就受到了当时未知资料的影响。即使没有直接把未来收益当输入,预处理也可能泄漏信息。

scikit-learn官方文档说明,预处理的统计量若利用测试资料,会让测试信息进入模型选择或学习过程。[3] 对这里的时间研究,还要按当时信息可得性限制统计量;不是随便分成两组就消除了时间穿越。

同一时点的横截面处理不一定使用未来,但仍要核对当时可得的候选和特征。财报指向的期间结束日,不等于报告公开日;后来重述的数据,也不能不说明就替换旧判断。预处理能否使用一项资料,要沿着时间而不是沿着表格完整程度决定。

先把一句规则补完整

解释题:109高于104,为什么不能立刻写成“已经以109买入”?应用题:十个值都为104时,工具给出持有,声称因为“等于也算走强”。按本篇C2规则应该怎样改?先写理由,再看答案。

第一题要区分指数点位、收盘后信号与下一可执行时点,实际成交还需对应价格与数量证据。第二题应按严格大于处理,目标为现金;若研究者想采用包含相等的新版本,需要提前记录并重新评价,而不是修改旧记录的含义。

数据少了一项,答案不是随便选零或一

仍用主例,但M1的100后来确认并非有效值,而且没有提供更早月末资料。助手删掉它,把剩余九值求平均,再标记“十个月信号已完成”;它还计划用M10当天开盘执行。请指出两处需要处理的问题,先不要补造缺失值。

剩余九值之和940,平均约104.44,当前109仍在其上方,但这不是原先规定的十个有效月末均值。先标记这次输入不足,核对是否有符合规格的更早有效观察及完整缺失政策;不能把九项结果冒充原信号,也不能把不足直接写成经济意义上的现金信号。

执行时点仍有另一处错误:M10收盘值在当天开盘未知,不能用它安排那时的订单。补足历史观察与修正执行时点是两件事;修好一个,并不会自动修好另一个。

保存你的信号定义表

为一个时间序列想法写下对象、输入字段与版本、计量单位、观察频率、窗口起止和最低数量。再填是否包含当前点、计算方法、比较方向、相等与精度规则、缺失处理、信号形成及最早执行时点。

用本篇主例和相等例子各重算一次,保存预期结果。若走因子路线,再列候选范围、排名、同分、极值与行业处理,以及每一步统计量来自哪段当时可得资料;不要直接把另一个模型的默认配置当成自己的定义。

自检时交给另一个人:他能否选择同一组输入,在同一时点得到同一条件结果?如果他只能靠猜你的“走强”是什么意思,就先补定义。得到一致信号后,下一步才检查它能否转成一致账本,以及是否有研究价值。

小结:每个信号都要带着时间说明

先把指标输入、窗口、频率和方向写全,明确等于与资料不足分别怎样处理。数量相同不等于时间范围相同,排序靠前也不等于绝对上涨;这些区别直接决定你检验的是哪一个想法。

再检查预处理与执行是否只依赖当时可知资料。信号定义明确,只证明别人能重算这项条件,尚未证明能够成交或获得收益。把未知和版本留下,才有可能在后续实验中判断改动究竟改善了什么。

参考资料

  1. Hurst、Ooi、Pedersen:A Century of Evidence on Trend-Following Investing,2017原作者机构页面。仅用于时间序列趋势研究思想,不把其研究结果推广为本篇C2或任意窗口的效果。
  2. CFA Institute:Backtesting & Simulation,2026公开概要。规则、组合及评价流程,未读取付费全文。
  3. scikit-learn官方文档:Common Pitfalls—Data Leakage。预处理统计量与信息泄漏,仅引用概念,不要求编程或采用该库。

资料核查日期2026-10-29。本文由AI辅助编写与检查,尚待人类金融审校或目标读者试读。所有指数点位与排序例子为独立合成输入,不是已完成的真实C2回测。

本篇配套材料

C2-B · 19 份材料
C2-T05-SPECIFICATION.MD · 1 份材料
C7-82 · 3 份材料
  • forward returns CSV · 输入与说明
    SHA256 d1ef86873b
  • README MD · 输入与说明
    SHA256 0937240e03
  • signals CSV · 输入与说明
    SHA256 e0b0959c58
浏览全部案例与模板 →
来源、版本与审查说明

最后更新:2026-10-29

SHA256 66f68439ff65ab3d4b5c22058ef30a8d3ce8cec04fd103b1e860c5a5c4725586

案例:C2, C7

当前网页接入相应书稿;AI审查、双语复核及未完成项按内容发布检查登记。人工金融审校与目标读者试读未进行。

报告本篇问题或勘误
全书目录

记录只保存在当前浏览器。

本篇目录
搜索全书