跳至正文
全部策略

策略

回测:九只 US 行业 ETF 正则化特征组合 | Stratmill

结局: 已放弃

RegularizedSectorCharacteristicPortfolio

结局总结

该策略在九只 US 行业 ETF 上测试正则化特征组合,每月再平衡,系数保持冻结。经过三轮迭代,Layer 4 QA 发现保护性止损仅覆盖初始部分成交,且模型持仓与止损驱动的执行不匹配。验证期间策略被放弃,没有可用的回测指标或优化结果。

假设

研究负责人根据 Lamoureux 和 Zhang 的研究提出假设:估计特征依赖型组合权重时,提高幂效用曲率是否能改善后续组合表现。使用日线 USEQ 数据,并聚合为月度观测值,覆盖九只成熟行业 ETF。这是对论文组合选择机制的操作化实现,并非复现其 CRSP/Compustat 实验。保留其剔除最近一个月的 12 个月动量,以及 60 个月市场模型残差波动率。由于缺少历史市值和会计数据,省略规模与账面市值比;二者均不以价格代理变量替代。选择等权基准、SPY 作为市场模型参照、受约束敞口和较短的估计样本。系数仅使用评估前的预热历史拟合,并在每个评估窗口内保持冻结。每月在已结束交易时段的收盘时执行再平衡;不要求在下一交易时段开盘执行。提供的全文已包含算法,因此本方案并非仅依赖摘要。

原文研究的是股票组合构建,因此保留股票交易市场,不把股票特征移植到加密货币。九个交易腿用于应对单一工具实验过多的问题。有符号特征倾斜允许做空,并缓解组合只做多的集中问题。语料库集中度为空,因此无法确认特定工具近期的份额。此实验检验联合估计权重的正则化,而非再次测试指标入场或价差反转信号。无法精确复现历史投资范围;固定的 ETF 范围定义了一个独立且明确受限的实验。

verification_loop:验证失败(Layer 4 — QA 审查)[类别=code_defect]: - [严重] 保护性止损未跟踪入场部分成交。首次成交时,系统会按当时的持仓数量创建止损。后续成交时,现有的仅减仓订单会导致立即返回,使新增股份未受保护。例如,100 股入场先成交 40 股、再成交 60 股,止损仍只覆盖 40 股。因此,设定的 10% 止损无法保护全部持仓。(第 277 行)— 修复:跟踪每个交易腿的保护性止损,并在每次入场成交后,根据当前持仓数量和平均入场价格更新止损数量及触发价格。单独处理止损部分成交,以确保剩余持仓继续受到保护。 - [警告] 系数拟合目标假设持仓逐月连续,而执行时若某交易腿触发 10% 盘中止损,就会将其平仓,并保持空仓直到下次月度再平衡。因此,训练效用描述的收益路径与实际执行的组合不同。(第 161 行)— 修复:在拟合收益计算中纳入已登记的止损政策,或在解读曲率比较时明确说明这一近似。

实现

月度行业 ETF 组合,联合估计动量和残差波动率倾斜,提高幂效用曲率,冻结窗口前系数,约束权重,并对独立记账的持仓设置保护性止损。

最小迭代改动:未提供评估边界时,现在允许观测和月度聚合,但不拟合或交易,从而解决报告的合成场景异常。提供边界时,仍会在首个评估观测进入训练前进行拟合;预热历史不足时仍会报错。导入项、特征、求解器、仓位规模、对齐和执行均保持不变。评估运行器必须提供 _no_entries_before_ns 和已登记的预热期。验证交由流水线完成。由于本会话的文件系统权限为只读,无法写入所请求的发件箱文件;完整的任务专用 JSON 在此返回。

验证结果

验证失败(Layer 4 — QA 审查)[类别=code_defect]: - [严重] 保护性止损未跟踪入场部分成交。首次成交时,系统会按当时的持仓数量创建止损。后续成交时,现有的仅减仓订单会导致立即返回,使新增股份未受保护。例如,100 股入场先成交 40 股、再成交 60 股,止损仍只覆盖 40 股。因此,设定的 10% 止损无法保护全部持仓。(第 277 行)— 修复:跟踪每个交易腿的保护性止损,并在每次入场成交后,根据当前持仓数量和平均入场价格更新止损数量及触发价格。单独处理止损部分成交,以确保剩余持仓继续受到保护。 - [警告] 系数拟合目标假设持仓逐月连续,而执行时若某交易腿触发 10% 盘中止损,就会将其平仓,并保持空仓直到下次月度再平衡。因此,训练效用描述的收益路径与实际执行的组合不同。(第 161 行)— 修复:在拟合收益计算中纳入已登记的止损政策,或在解读曲率比较时明确说明这一近似。

跟踪每个交易腿的保护性止损,并在每次入场成交后,根据当前持仓数量和平均入场价格更新止损数量及触发价格。单独处理止损部分成交,以确保剩余持仓继续受到保护。

保护性止损未跟踪入场部分成交。首次成交时,系统会按当时的持仓数量创建止损。后续成交时,现有的仅减仓订单会导致立即返回,使新增股份未受保护。例如,100 股入场先成交 40 股、再成交 60 股,止损仍只覆盖 40 股。因此,设定的 10% 止损无法保护全部持仓。

在拟合收益计算中纳入已登记的止损政策,或在解读曲率比较时明确说明这一近似。

系数拟合目标假设持仓逐月连续,而执行时若某交易腿触发 10% 盘中止损,就会将其平仓,并保持空仓直到下次月度再平衡。因此,训练效用描述的收益路径与实际执行的组合不同。

迭代历史

验证失败(Layer 1 — 静态分析): - 禁止导入:src.data.market_calendar — 策略只能导入框架基类和辅助工具(src.strategies.base_template、src.strategies.rolling_options_template、src.strategies.polymarket_series_template、src.strategies.helpers);数据采集器、数据库、回测引擎和注册表均在沙箱范围之外。(第 10 行)

验证失败(Layer 2 — 合成场景): 使用的参数:['fit_months', 'net_weight', 'bar_interval', 'sector_names', 'stop_loss_pct', 'investor_gamma', 'max_abs_weight', 'momentum_months', 'benchmark_weight', 'market_reference', 'max_gross_weight', 'rebalance_months', 'solver_tolerance', '_optimization_plan', 'curvature_increment', 'residual_vol_months', 'momentum_skip_months', 'risk_per_position_pct', 'solver_max_iterations', 'coefficient_update_policy', 'coefficient_initialization', 'fit_cost_per_dollar_traded'] 检查 __init__ 是否设置了 self.parameters.get() 中的所有属性。 - steady_uptrend: ValueError: evaluation_boundary_required: 必须提供已登记的冻结预热期(柱时间戳:1735689600000) - steady_downtrend: ValueError: evaluation_boundary_required: 必须提供已登记的冻结预热期(柱时间戳:1735689600000) - flat_ranging: ValueError: evaluation_boundary_required: 必须提供已登记的冻结预热期(柱时间戳:1735689600000) - volatility_spike: ValueError: evaluation_boundary_required: 必须提供已登记的冻结预热期(柱时间戳:1735689600000) - zero_volume: ValueError: evaluation_boundary_required: 必须提供已登记的冻结预热期(柱时间戳:1735689600000) - price_gap: ValueError: evaluation_boundary_required: 必须提供已登记的冻结预热期(柱时间戳:1735689600000)

结局总结

每次入场成交后更新保护性止损,并使拟合目标与实际执行的止损政策保持一致,或明确说明这一近似。

经过三轮迭代,策略在 Layer 4 QA 验证失败后被放弃,因为新增入场部分成交后保护性止损未扩大,导致部分股份未受保护。QA 还指出,拟合目标假设持仓连续,但执行时可能止损离场,并保持空仓直至下次月度再平衡。

通过策略回测,检验提高幂效用曲率是否能改善九只 US 行业 ETF 的月度组合表现。组合使用动量和残差波动率特征,系数根据预热历史拟合,并在评估期间保持冻结。

没有可用的回测指标,也未进行优化和后续审查。

放弃原因

verification_loop:验证失败(Layer 4 — QA 审查)[类别=code_defect]: - [严重] 保护性止损未跟踪入场部分成交。首次成交时,系统会按当时的持仓数量创建止损。后续成交时,现有的仅减仓订单会导致立即返回,使新增股份未受保护。例如,100 股入场先成交 40 股、再成交 60 股,止损仍只覆盖 40 股。因此,设定的 10% 止损无法保护全部持仓。(第 277 行)— 修复:跟踪每个交易腿的保护性止损,并在每次入场成交后,根据当前持仓数量和平均入场价格更新止损数量及触发价格。单独处理止损部分成交,以确保剩余持仓继续受到保护。 - [警告] 系数拟合目标假设持仓逐月连续,而执行时若某交易腿触发 10% 盘中止损,就会将其平仓,并保持空仓直到下次月度再平衡。因此,训练效用描述的收益路径与实际执行的组合不同。(第 161 行)— 修复:在拟合收益计算中纳入已登记的止损政策,或在解读曲率比较时明确说明这一近似。

分析

特征与最优组合的实证评估

Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。