策略
图表派与基本面派信号(Bouchaud等人2017,“黑色是对的”):10-ETF资产类别面板(USEQ DAILY)上逐资产执行6个月经波动率标准化趋势减去5年对数价格偏离,多头/空仓
结局: 已放弃
ChartistMinusFundamentalistEtfPanelLongFlat
结局总结
该策略旨在检验Bouchaud等人提出的“基本面派”5年均值回归项,是否能为6个月趋势信号带来增益。策略在10-ETF资产类别面板上,基于USEQ日线柱执行多头/空仓交易,并设有k=0的对照组。该假设自身的事前研究已表明可能不会带来增益(夏普比率为0.32,不含价值项时为0.33)。代码使用增量O(1)指标和每周批量决策。尽管如此,3次迭代在第3层沙盒回测中全部超时(约2400天的SPY数据超过300s),因此运行在生成任何引擎回测、优化结果或分析师结论前就已放弃。
假设
这项研究检验摘要中的唯一规则:市场会在数月内呈现趋势,并在数年间向某个价值回归,价格与该价值之比约在2倍范围内。每项资产的信号为S = T - k*V。T是图表派项:每日对数收益的EMA(跨度126个时段),除以63时段实现波动率,再乘以sqrt(126)。V是基本面派项:log(close / SMA(close, 1260 sessions)),即价格与5年均值之间的对数距离。相差2倍对应|V|约为0.69。k = 1.0预先固定,不进行优化,因为论文指出均值回归较弱。每项资产独立交易,仅做LONG/FLAT。盈亏未计入股息,也未对借券成本建模;事前研究中,漂移的股票ETF空头腿亏损。规则如下:S > +0.25时做多,S < -0.25时空仓,否则保持当前状态。仅每5个时段进行一次决策。标的范围依据ASSET CLASS选择,而非根据回测结果选择,上限为10个标的(L173):SPY(US股票),EFA(除US外的发达市场),EEM(新兴市场),EWJ(日本),TLT(长期国债),IEF(7-10年期国债),GLD(黄金),SLV(白银),DBC(广泛商品),USO(原油)。每条腿均为INDEPENDENT多头/空仓仓位,不属于市场中性组合。每条腿的目标年化波动率为10%(权重 = 0.10/(sqrt(252)*vol63)),仓位上限为其10%权益子组合的1.0x,因此总敞口不超过权益的100%,无需Reg-T 2x。空仓状态是明确设置的:样本内事前研究中,每项资产约有30-45%的时段处于空仓。对照变体设k = 0(纯趋势),必须使用相同代码运行并单独评估,以便分析师衡量基本面派项ADDS。这项增量正是论文真正的主张。HONEST PRE-STUDY(时点数据,单边成本3bp,2006-2026,子组合等权汇总):k=1多头/空仓夏普比率0.32(21年中有15年为正);k=0多头/空仓0.33;k=2 0.21;多空版本0.09-0.28。在我们的数据中,价值项没有带来增益;当k=2时,它对持续漂移的股票指数有害。只有在DBC、EEM和XLE上有帮助。因此,本研究作为对该论文主张的证伪测试提交,使用可交易的1993-2026 ETF历史数据,优先级较低,并采用适度的预注册数值。除非引擎的全样本结果与事前研究不同,否则预计无法达到0.5 OOS门槛。
第3次迭代保留此前通过验证的信号和仓位规模逻辑,同时在每周面板决策时批量查询持仓和订单缓存。这样可避免在决策循环中反复扫描各资产的缓存,并保持柱线处理为恒定时间。
verification_loop:sandbox_timeout:验证失败(第3层——沙盒回测):冒烟测试在约20000根柱线的窗口(SPY.USEQ-1-DAY-LAST-EXTERNAL的2400天)内超过了300s的墙钟时间限制。这通常意味着每根柱线的工作量会随历史数据增长——例如反复扫描完整的资金费率序列或补充数据序列,或在每根柱线调用calculate_signal()/on_bar()时重建列表并调用min()/sorted()。在__init__中预先计算已排序的时间戳数组ONCE并使用bisect,或按时间戳缓存查找结果,使每根柱线的成本为O(log n)而非O(n)。
实现
独立的多头/空仓ETF子策略,采用经六个月波动率标准化的趋势减去五年对数价格偏离信号,每周评估,并增量更新指标状态。
验证结果
sandbox_timeout:验证失败(第3层——沙盒回测):冒烟测试在约20000根柱线的窗口(SPY.USEQ-1-DAY-LAST-EXTERNAL的2400天)内超过了300s的墙钟时间限制。这通常意味着每根柱线的工作量会随历史数据增长——例如反复扫描完整的资金费率序列或补充数据序列,或在每根柱线调用calculate_signal()/on_bar()时重建列表并调用min()/sorted()。在__init__中预先计算已排序的时间戳数组ONCE并使用bisect,或按时间戳缓存查找结果,使每根柱线的成本为O(log n)而非O(n)。
结局总结
采用多标的面板策略并进行1260个时段的预热,必须在沙盒的300s冒烟测试预算内完成,才能测试研究主张。因此,在接入每个额外标的数据流时都要分析运行时间,而不只是每根柱线的指标计算。
经过3次迭代后,该策略在验证循环中被放弃。第3层沙盒回测在约20,000根柱线的窗口(SPY.USEQ日线柱的2400天)内超过了300s的墙钟时间限制,因此未进入回测审查、优化、分析师审查或风险审查。
对Bouchaud等人(2017)进行证伪测试:在USEQ日线柱上,对10只资产类别ETF(SPY、EFA、EEM、EWJ、TLT、IEF、GLD、SLV、DBC、USO)分别执行多头/空仓交易。信号为S = T - k*V,其中T是经波动率标准化的126时段EMA趋势,V是相对1260时段SMA的对数偏离,k=1预先固定,每周决策,并设置k=0的对照组。
未生成引擎回测或优化结果(回测报告为空,无优化报告)。该假设自身的事前研究显示,k=1 时合并夏普比率为 0.32,k=0 时为 0.33(2006-2026,21 年中有 15 年为正),因此价值项没有带来任何增益;事前研究预计该策略无法达到 0.5 OOS 的门槛。
分析
布莱克是对的:价格与价值之比在2倍范围内
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。