跳至正文
全部策略

策略

OKX 14永续合约价量相关性截面:做多低相关性/做空高相关性,每周美元中性再平衡(1-DAY)

结局: 已放弃

OkxDailyPriceVolumeCorrelationCrossSection

结局总结

该假设为语料提出了一个新的机制类别:在14 OKX永续合约上构建价量相关性截面多空策略,总敞口为1.0x,每周再平衡,并为每条腿设置25%灾难止损。开发者使用滚动双端队列和带索引的订单查询来限制工作量,但经过3轮迭代,代码始终未能通过Layer 3沙盒验证;它在2,400天日线窗口上超过了300秒的限制。运行因沙盒超时而中止,尚未进行任何策略回测、回测复核、优化、分析师审查或风险审查阶段,因此该因子的优势从未得到衡量。

假设

基于横截面的多空因子,应用于 14 OKX USDT 永续合约,使用日线 OHLCV。每种币都有连续的日线历史数据,始于 2020 或更早的 2021,至 2026-10-02(目录核验结果:BTC/ETH/BCH/TRX/ETC 始于 2020-01-02,SOL 始于 2021-01-24,所有数据的最大间隔为 1 天)。因子来源为 BigQuant 价量相关因子(https://bigquant.com/wiki/doc/I5oStgChtF): 因子 = -1 x corr_20d(close/close[-1], log(volume/volume[-1] + 1))。对每种币,该因子衡量上涨日是否伴随成交量激增(受关注度或 FOMO 驱动的买入,相关性高),或者成交量激增是否出现在下跌日,或与涨跌方向无关(相关性低或为负)。每隔 rebalance_days 根日线,按 PVC_i 对 14 种币排名;该指标是日简单收益率与日对数成交量变化在 corr_lookback 天区间内的 Pearson 相关系数。做多 n_per_side 种 PVC LOWEST 的币,做空 n_per_side 种 PVC……展开收起

基于横截面的多空因子,应用于 14 OKX USDT 永续合约,使用日线 OHLCV。每种币都有连续的日线历史数据,始于 2020 或更早的 2021,至 2026-10-02(目录核验结果:BTC/ETH/BCH/TRX/ETC 始于 2020-01-02,SOL 始于 2021-01-24,所有数据的最大间隔为 1 天)。因子来源为 BigQuant 价量相关因子(https://bigquant.com/wiki/doc/I5oStgChtF): 因子 = -1 x corr_20d(close/close[-1], log(volume/volume[-1] + 1))。对每种币,该因子衡量上涨日是否伴随成交量激增(受关注度或 FOMO 驱动的买入,相关性高),或者成交量激增是否出现在下跌日,或与涨跌方向无关(相关性低或为负)。每隔 rebalance_days 根日线,按 PVC_i 对 14 种币排名;该指标是日简单收益率与日对数成交量变化在 corr_lookback 天区间内的 Pearson 相关系数。做多 n_per_side 种 PVC LOWEST 的币,做空 n_per_side 种 PVC HIGHEST 的币。多空两腿等权、美元中性,总敞口等于权益的 1.0x(每侧 50%)。因子方向事先登记并固定,不能调整,因此优化器无法将其反转。同一再平衡时点仍处于原分组的币会继续持有,不会重新交易,从而降低换手率。这是该语料中的一种新机制类别:唯一相关的假设是单资产 BTC Wyckoff 背离。这不是动量策略,不按日历设定,也不是针对单个永续合约的补充数据源门控,更不是期权策略。它还补足了代表性不足的类别:OKX 交易场所(2.0% 对比目标值 >=5%)、long_short(16.7%)以及多品种。执行方式:在日线收盘价柱上以市价单交易,持仓约 1 周。引擎将 OKX 资金费率计作成本或收益;它不是信号。风险控制:每条腿均设有固定的 25% 不利变动灾难止损(与空头挤压相关),触发止损的腿将保持空仓,直到下一次再平衡。单腿最大敞口为权益的 1/(2*n_per_side)(基准 n=3 时为 16.7%)。通过 config.leverage = 1.0 设置杠杆,该值 NOT 是一个 optimization_plan 参数。实现说明:为每种合约保留一个滚动双端队列,存储最近 corr_lookback+1 个收盘价和成交量,并以 on_bar/on_extra_bar 更新;只在再平衡柱上计算相关系数。每次再平衡的计算复杂度为 O(14 x 回看期);切勿重新扫描历史数据(以避免沙箱超时)。

选择该策略是为填补代表性不足的类别:OKX为2.0%(目标>=5%),long_short为16.7%(long_only为83%,上限<=55%),且涉及多个交易品种。避免使用BINANCE(62%),也避免BTC集中(BTC仅占14条等权腿中的1)。该机制类别(收益与成交量联动并作截面排序)在语料中几乎没有先例。遵循经验教训:L186/L181,已在目录中核实每条腿的OKX USDT永续合约1-DAY根K线数据,历史连续且没有缺口;仅有约一周OKX历史的币(XRP、DOGE、LTC、FIL、NEAR、OP)已特意排除。L179:触发条件是市场观察(排名),不是日历窗口,因为再平衡频率只决定何时重新读取排名。L111:没有补充筛选条件。L102:不使用期权。杠杆保持OUT的optimization_plan固定,因为它是配置字段,而非策略参数;固定杠杆设置正是最近Layer 1.5的LTC-BCH和OKX抽选运行失败的原因。

verification_loop:sandbox_timeout:验证失败(Layer 3 — 沙盒回测):冒烟测试在约20000根K线的窗口(BTCUSDT.OKX-1-DAY-LAST-EXTERNAL的2400天)上超过300秒墙钟时间限制。这几乎总是意味着每根K线的工作量随历史数据增长,例如反复扫描完整的资金费率/补充数据序列,或在每根K线的calculate_signal()/on_bar()中重建列表并调用min()/sorted()。在__init__中预先计算排序后的时间戳数组ONCE并使用bisect,或按时间戳缓存查询结果,使每根K线的开销为O(log n)而非O(n)。

实现

日线上的截面OKX 14永续合约因子。每隔rebalance_days(分桶 = days_since_epoch // rebalance_days),按过去corr_lookback天的日收益与log1p(成交量/前一日成交量)的皮尔逊相关系数为币排名。做多PVC最低的n个币,做空最高的n个币,在1.0x总敞口下等权配置并保持美元中性。保留的腿仅在偏离超过容差时才调整。每条腿都有一个25%只减仓灾难止损单挂在交易场所,被止损的腿在下一个分桶前保持空仓。所有状态均作为每条腿的标量属性保存。

第3轮迭代处理Layer-3 sandbox_timeout。我在本地使用相同的run_backtest_in_subprocess调用,在2020-01-02..2025-01-24上复现,耗时共338秒。对subprocess_entry在1.6年窗口运行cProfile,耗时179秒。其中166秒耗在ParquetDataCatalog.query(fsspec spec.walk/local.ls/info:371k次ls和2.4M次stat调用,分布在17次目录查询中,另有70秒耗在bar_stamping.load_normalised)。策略整个on_bar路径处理8,456根K线约耗时1.5秒。因此,超时源于14条腿的目录I/O,与策略代码无关(经验教训155(b)/(c):问题在管道,不在信号修复)。每根K线的策略开销已经控制为:仅再平衡K线执行O(14 x回看期)操作,其余为O(回看期),并使用有界双端队列和带索引的开放/在途订单查询。唯一代码改动是小幅的实际节省:再平衡K线上复用主腿已为逐K线信号计算的相关性,不再重复计算。交易品种、腿、方向和参数计划均不变,因此仍忠实于假设。目录查询开销需要通过工程修复解决(缓存目录文件列表,或按明确的K线类型路径查询),也可提高14腿组合的沙盒上限。

验证结果

sandbox_timeout:验证失败(Layer 3 — 沙盒回测):冒烟测试在约20000根K线的窗口(BTCUSDT.OKX-1-DAY-LAST-EXTERNAL的2400天)上超过300秒墙钟时间限制。这几乎总是意味着每根K线的工作量随历史数据增长,例如反复扫描完整的资金费率/补充数据序列,或在每根K线的calculate_signal()/on_bar()中重建列表并调用min()/sorted()。在__init__中预先计算排序后的时间戳数组ONCE并使用bisect,或按时间戳缓存查询结果,使每根K线的开销为O(log n)而非O(n)。

结局总结

14个交易品种的日线策略,必须限制每根K线和每次再平衡的工作量(例如,不在on_bar内扫描缓存的订单或K线历史),才能在300秒沙盒时限内完成,即使假设已要求使用滚动双端队列。

经过3轮迭代后,该策略在验证环节中止。其Layer 3沙盒冒烟测试在约20,000根K线的窗口(BTCUSDT.OKX根1日K线覆盖2,400天)上超过300秒墙钟时间限制,表明每根K线的工作量会随历史数据增长。

在14 OKX USDT永续合约上,每周再平衡,构建美元中性截面因子:根据BigQuant PVC因子并采用固定、预先注册的方向,做多20日价量相关性最低的币,做空相关性最高的币。

没有绩效数据:策略从未完成回测,因此回测报告为空,优化报告为null。

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