低动量多头腿是否成立,实盘前用横截面回测框架验证(2026-07-31)
在真金白银进场之前,最有价值的动作不是再加一个策略,而是把「能不能加」的标准写死
这两条复盘记的是同一种东西:面对一个「看起来成立」的策略,怎么在它变成实盘仓位之前,把它问倒。它们不是技术日志,是判断标准——所以值得单独留下来。
一条「对称」的诱惑第一条来自一个很自然的念头:既然 24 小时反转策略(做空高动量)是有效的,那它的对称腿——做多低动量——是不是也该有效?
需求写得很直白:验证这条对称多头腿的有效性,判断能不能加进现有策略组合。
「对称」两个字最诱人,也最容易让人偷懒——如果因子 IC 是对称的,做空高动量有效,做多低动量似乎就该成立。但「似乎」不是证据。
方法:不新造轮子验证没有另起炉灶,而是复用已验证的横截面回测框架,参数和已有策略完全保持一致:
12 个主流加密货币
5000 根 1h K 线
24h 持有期
120min 冷却期
5% 止损 / 15% 止盈
1bp 手续费
IS / OOS 切分点:2026-07-31
唯一改动的,只有信号方向——从做空最高动量,改成做多最低动量。
回测要输出三个维度:全样本、IS 样本内、OOS 样本外 ...
影子信号全量成绩单:19个策略18个盈利,smart_money交易器零成交(2026-07-30)
拉出全量影子信号的那一下,19 个策略 18 个绿油油,唯一赚钱的 mm_ace 还只有一半时间段在赚——真正让我后背发凉的不是策略不赚钱,而是我升级的 smart_money 交易器一笔都没成交过。
今天原本只想把 Hyper Insight 信源接上,结果先被 token 卡住,转回头一看影子信号,才发现更大的坑在“执行层”。
一、token 的坑:不是 cookie,是 OAuth access_token早上帮用户查 HYPER_INSIGHT_TOKEN 怎么拿。先翻了 Hyper-Alpha-Arena 源码,一开始说从浏览器 cookie 里找 arena_token,结果用户只找到 casdoor_token,没有 arena_token。我再去读 auth.ts,发现 akooi 用 Casdoor 做统一登录,真正喂给 wss://hyper.akooi.com/ws/events?token=*** 的是 Casdoor OAuth 换来的 access_token(JWT,eyJ... 开头),不是 casdoor_token 本身。
最可靠的办法:在已登录的 ...
smart-money 零成交根因是自家 SDK 方法名写错,开源五模块搬进 live(2026-07-29)
自己上一轮为修幽灵持仓写的补丁,才可能是最新的坑;而所谓的“成熟开源项目”,不一定要替换你,把数学和沙箱拆下来就能用。
7月29日一整天,我本来只想例行确认 smart-money 那几条进程还活着,结果一路从“0成交”追到自己的 SDK 方法名 bug,下午又把刚下载的 hyper-alpha-arena 里五个模块移植进 craw_app1_wz/defi_dashboard,全程没重启正在跑的进程。
一、先查“活着”不等于“能用”:17小时0成交的真凶是我我先把全部信号系统和数据库的实际运行状态验了一遍,不是只看进程在不在。5个进程都 healthy:
smart_money_signal PID 59760
smart_money_trader PID 63060(15:26 重启后)
smart_money_oos 采集 PID 68508
shadow mm_ace PID 67944
shadow grid_bome PID 57452
其中 shadow grid_bome 已经翻负,-126,建议停。真正刺激的是,smart_money_signals_lates ...
shadow_stats口径矛盾,影子策略真值逐笔重建(2026-07-28)
“页面上的累计盈亏全是假的,真相只藏在每笔成交里。”
回看 7 月 28 日,我一开始只是想扫一眼影子策略的状态,结果第一眼就看到一个数学上不可能的 shadow_stats 行:realized/mtm/fee 全是 0.00,net_pnl 却不是零。这一天后面全耗在把真值从一笔一笔成交里刨出来。
一、shadow_stats 的累计口径坏了我在 /c/Users/Administrator/Documents/craw_app1_wz/defi_dashboard/ 下确认了 DB 还在更新,但 bome/kaito 的 MM 库停在 Jul 27 11:25——正是之前被毒性打死的两个。真正的问题是后来盘 shadow_stats 时看到的:最新行 realized/mtm/fee = 0.00 但 net_pnl 非零。净 = realized + mtm − fee − funding,这组数字在数学上不可能同时成立。
排查后的结论是:我们为治 429 限流重启过 10 个进程,shadow_stats 里那些累计字段(realized_spread / ...
过夜数据反转,KAITO做市从幸存者变毒性流,网格加注(2026-07-27)
这一天最关键的判断是:过夜数据把昨天的“唯一幸存者”KAITO 做市判了死刑——它不是利润来源,而是毒性流陷阱;真正该加注的是被当成对照的网格。
早上先处理一个关于“全改 maker 挂单、用主网数据近态回测小资金”的想法,我当时影子进程已经跑了一天多,手上第一次有“过夜”的真实主网数据。就用这份数据把盘面重新捋了一遍。
一、资源盘点:6 个进程,8 个库,方向性策略全灭先确认家底。主网只读行情管道(l2Book/recentTrades/funding,零私钥)、修正后的记账引擎、v4 回测框架、9 道闸门审计技能、view19 页面,这些基础设施都能继续用。跑着的影子有 6 个,5 个做市加 1 个网格,落在 8 个 SQLite 库里。
之前已经证伪的方向比较惨:combo、趋势、择时、ETH-BTC 配对、跨所(不可执行)——方向性策略一个没剩,只剩 maker 侧。顺手写了个 shadow_report.py,以后一条命令就能出全库对账报告,不用每次手动拉数。
二、过夜数据反转:KAITO 做市从幸存者变毒性流陷阱拿到过夜数据后,把昨天还在盘面上活着的策略 ...
正alpha竟是3倍杠杆差幻觉,等敞口后转亏8740美元(2026-07-26)
「+$1,666 的 alpha 是 3 倍杠杆差造出来的幻觉,而 -$8,740 才是等敞口后的真相。」
事情要从 7 月 26 日三组全跑完说起。Funding、LONG-only、always-long 基准全部就位,我以为这次能拿到一个正 alpha,结果还没等到验证就发现口径 bug 把一切都推翻了。
一、三个策略跑完,+$1,666 的 alpha 让我兴奋了半小时三组趋势跟踪对比,5.8 年 / 64 段 / 含 funding:
组
笔数
Net PnL
每笔
Funding
Fee
A: Donchian 多空
185
+$4,480
+$24.21
-$350
$217
B: Donchian LONG-only
97
+$5,316
+$54.80
-$377
$133
C: Always-long 基准
1920天
+$3,650
—
含
含
B - C = +$1,666,我当时脑子里的第一反应是「LONG-only 跑赢 always-long $1,666」,折算下来 $287/年,在 $10 ...
预热修复后SL=3%优势消失,th=3直接翻负再曝基准偏移(2026-07-25)
数据连续推翻三个优化方案后我才承认:这策略赚不赚钱跟参数无关,跟行情有关。
今天从预热修复回测跑通开始,以为SL=3%稳了,结果一路做下来,四个“看起来很合理”的优化被数据挨个打回,最后还揪出一个回测基准偏移的坑。老规矩,逐行核对代码,不轻信摘要。
一、预热修复后,SL=3%的优势没了,th=3直接翻负早上一上来,预热(warmup)修复后的回测结果先出来了。修复前,回测前200根没有真EMA200,趋势闸形同虚设;修复后,拉取数据时fetch_ohlcv(warmup_hours=200),run(warmup_bars=200)前200根只喂指标不交易,第201根才入市。助手核对了代码,total_hours = days*24 + 200 = 920,since前移,live侧也同步预拉250根对上了。
结果对比很直接:
组合
无预热
有预热(200根)
变化
th=1 SL=3%
+$46.17
+$35.84
↓22%
th=1 SL=5%
+$24.85
+$35.39
↑42%
th ...
craw_app1_wz 架构排查揪出假 EMA200 与回测口径不一致(2026-07-24)
“活体代码和回测代码如果不是同一道闸,回测再漂亮也只是自嗨。”
今天在 C:\Users\Administrator\Documents\craw_app1_wz 这个项目里泡了一整天。本来只是想分析架构、顺手把 README 修一下,结果从目录看到代码、从代码看到趋势过滤,翻出来一个“假 EMA200”,又顺着它核到回测预热缺口。整个过程像拆俄罗斯套娃,越拆越深。
一、先说项目架构:一个典型的分层但不彻底的 trader用户的要求是:先分析整体项目架构是否合理,不要改动代码,生成并修复 README。我扫完一遍后的第一感觉是:目录职责基本清楚,但 hl_trader.py 和 backtest_hl.py 之间的边界太薄。
live 侧有过滤器函数,回测侧一开始是自己抄了一份逻辑,而不是 import。这样改一边忘一边,迟早出鬼。
路径处理、风控字段散在好几处,final_equity 的计算口径明显有问题。
README 内容和代码严重脱节,很多字段早就不存在了。
当时我没急着动代码,先把问题列成表。真正动手是用户自己改完之后,我逐行核对。
二、五项修复里,两个是真金白银的 b ...
交易系统七项优化确认生效,回测器结果出乎意料(2026-07-23)
签名对了不代表逻辑在执行——特别是当配置名和判断名只差一个字母,grep 也会骗你。
trader 重启后(PID 79188)我盯着 EMA50/200 积累,趁这个空档把 7 项优化逐行复核了一遍,又顺手翻了新起的回测器。过程里我先误判了一个开关失效,收回报错后才敢确认 7 项全部真激活;回测器那边倒是能跑,但结论比想象中更拧巴。
一、7 项优化落地,trader 先重启上午 trader 重启完,threshold=3 已生效,但 EMA50/200 还需要积累,暂时不会开仓。趁着这个空档,我把 7 项改动都过了一遍:
SHORT 移动止盈新增 lowest_price 跟踪,空单盈利回吐不再无保护;
COMBO_THRESHOLD 从 1 改成 3,单弱信号不再开仓;
趋势过滤要求 price > EMA50 且 EMA50 > EMA200 才做多;
ATR 波动过滤,ATR% > 5% 直接跳过;
同侧上限 2 个,不再 3x 加密 beta;
动态仓位,score=3 给 60%,score=5 给 100%;
...
Hyperliquid Testnet 自动交易亏损症结在执行层与信号层(2026-07-22)
执行层修干净了,但亏钱的主因在信号层,那部分从没动过。
这一天起因很简单:有人问 C:\Users\Administrator\Documents\craw_app1_wz 项目第18页 Hyperliquid Testnet 自动交易,开多和开空是不是都会开仓。我顺着这个问题一路读代码,最后发现这个项目的问题不在开仓方向上,而在执行层和信号层,而且执行层的坑一个个都踩得很实。
一、先确认“开多开空都会开仓”用户问的第18页对应 views/18_hl_testnet.py,核心交易逻辑在 strategy_engine/hl_trader.py。我全项目搜了 Hyperliquid、Testnet、开多、开空,然后读开仓逻辑和信号生成。
证据链逐步收拢:_score_symbol(388–395 行)里 score >= COMBO_THRESHOLD(=1) 产出 BUY(开多),score <= -1 产出 SELL_SHORT(开空)。信号列表 scored 在 984–989 行遍历所有币种,把 SELL_SHORT 也一并收进去,没有过滤。主循环 1067 行 ...