记录一次五个候选因子的验证(2026-08-14)
记录一次五个候选因子的验证(2026-08-14)一天跑完五个方向,最后只剩一条腿站着。
08-14 把手上所有候选方向一次性验证完:低动量做多、24h 动量跟随、量价因子新腿、factor_ic 最优形态、长周期反转。五个方向,五份报告。
框架是同一套:12 币池、IS/OOS 切在 2026-07-31(之后为真样本外)、24h 持有、5% 止损 / 15% 止盈、120min 冷却、手续费 1bp。 只换信号,不换尺子。
结论是:五个方向里,四个被否,只剩"做空高动量"这一条腿。
一份报告,一个拒绝理由那天先把"怎么算验证通过"定死了。评估分三条:回测配置一致性(权重 0.3)、结论数据支撑(0.4)、建议可执行性(0.3)。也就是说,一个方向的结论,光看全样本收益没用,必须有全样本 + 样本内 / 样本外多维度的支撑。
剩下的就是一份份看。
低动量做多:−29.63% 到 −54.01%四个配置(A 上涨限定 TOP1 / B 不限 regime TOP1 / D1 上涨限定 TOP2 ...
记录一次给策略立规矩(2026-08-13)
记录一次给策略立规矩(2026-08-13)找一条新腿的价值,不如记下一条"以后别再走"的死路。
08-13 跑完两组回测,屏幕上的收益几乎全是负的。那天做的不是继续找,而是把"以后不能再做什么"一条条写下来。
因为一次失败的验证,如果不落成规矩,下次还会用另一种形式再失败一遍。
两组被数据拒绝的腿先看当天跑出来的东西。两组的配置完全一致:12 币 / 5000 根 1h 主网 K 线(约 208 天)、24h 持有、120min 冷却、5% 止损 / 15% 止盈、手续费 1bp。行情门控用的是"12 币 24h 收益均值 > +2%",样本内 / 样本外切分点沿用 2026-08-01(即 07-31 之后的真样本外)。
第一组:低动量做多(LONG 低动量反转)
配置
笔数
总收益
胜率
回撤
A 上涨限定 TOP1
74
−29.63%
50.0%
39.06%
B 不限 regime TOP1
169
−36.63%
48.5%
55.79%
D1 上涨限定 ...
记录一次横截面回测框架(2026-08-01)
记录一次横截面回测框架(2026-08-01)一个以 _tmp_ 开头的脚本,最后成了所有因子验证用的一把尺子
07-31 那两条复盘里反复出现的「复用已验证的横截面回测框架」,说的就是这个脚本。到了 08-01,它的切分点从 07-31 挪到了 08-01——这意味着 07-31 之后的数据第一次成为真正的样本外。
它是干什么的_tmp_xs_pair_bt.py,一个横截面回测脚本,适用场景写得很清楚:
12 币加密货币池子的因子回测验证
支持动量、成交量、CVD 等多因子、多方向测试
「横截面」三个字是重点:它不是盯单个币的时间序列,而是在同一时刻把整个池子横向排开,比较币与币之间的相对强弱——高动量的做空、低动量的做多,都是在这个横向切片上定义的。
标准配置框架有一套固定进默认值里的配置:
项
值
K 线
5000 根 1h 主网 K 线(约 208 天)
持有期
24h
冷却期
120min
止损 / 止盈
5% / 15%
手续费
1bp
IS / OOS 切分点
2026-08-01(07-31 之后为真 ...
记录一次实盘前的复盘(2026-07-31)
记录一次实盘前的复盘(2026-07-31)在真金白银进场之前,最有价值的动作不是再加一个策略,而是把「能不能加」的标准写死
这两条复盘记的是同一种东西:面对一个「看起来成立」的策略,怎么在它变成实盘仓位之前,把它问倒。它们不是技术日志,是判断标准——所以值得单独留下来。
一条「对称」的诱惑第一条来自一个很自然的念头:既然 24 小时反转策略(做空高动量)是有效的,那它的对称腿——做多低动量——是不是也该有效?
需求写得很直白:验证这条对称多头腿的有效性,判断能不能加进现有策略组合。
「对称」两个字最诱人,也最容易让人偷懒——如果因子 IC 是对称的,做空高动量有效,做多低动量似乎就该成立。但「似乎」不是证据。
方法:不新造轮子验证没有另起炉灶,而是复用已验证的横截面回测框架,参数和已有策略完全保持一致:
12 个主流加密货币
5000 根 1h K 线
24h 持有期
120min 冷却期
5% 止损 / 15% 止盈
1bp 手续费
IS / OOS 切分点:2026-07-31
唯一改动的,只有信号方向——从做空最高动量,改成做多最低动量。
回测要输出三 ...
记录一次回测版本的公平化(2026-06-16)
记录一次回测版本的公平化(2026-06-16)一个版本跑得好,可能只是因为它被允许晚一点开始
前几天看榜单的时候,总觉得有些版本"数据特别漂亮"。但心里清楚:回测里每多一条规则,都可能是在给某一个版本开后门。
所以这天不干别的,把回测器里那些不公平的地方一件件拆掉,让所有版本回到同一条起跑线上。
拆掉三处"起跑线偏差"backtest_v12.py 里有几处逻辑在执行"区分对待",全部改掉:
去掉 v1.19 的 deploy_ts BUY 过滤(backtest_v12.py line 733-735)。原来每个 version 的候选被 deploy_ts 截断过一次,现在改成对 prefetch 的全量 hot token 独立评分,不再按时间窗口截。
去掉 v1.18 的 BacktestAccount 组合约束:cash=inf, positions=[], recent_sells=[]。也就是资金无限、不设已有仓位、不记已卖记录——只保留 eng.check_buy_risk 这一道单笔硬约束(holder ...