Files
Chan/research/out/probe_hb_vs_raw.csv
T
UbuntuandCursor 7e339d2a54 research: 影子交易器落在 Hummingbot 上,并修掉 Bitget 连接器的换根延迟
1m 腿的滑点余量只有几个 bp,所以要测的必须是生产路径的滑点——换个运行时
测出来的数就不作数。框架因此从「滑点已知后再定」提前到测量阶段就定为
Hummingbot(Spot/Perp 连接器均 v2.0,Bitget 是 Foundation Partner)。

新增 research/live/。前置测量:

- bench_compute.py 本机算力,1m 单币 0.318s、三币串行 1.38s
- venue_parity.py Binance 与 Bitget 同根信号重合仅 14.6~42.6%
- signal_sensitivity.py 0.25bp 扰动就换掉一半信号
- aggregate_robustness.py 但总体期望不降——脆的是信号身份,不是 alpha
- bitget_baseline.py 因此改用 Bitget 原生基线定预算:余量 BTC -0.13bp、
  ETH +4.02bp、SOL +2.92bp。BTC 本就为负,只作延迟测量的参照物

运行时选型:

- parity_env.py 容器与本机信号逐一相同(下标、中枢数、checksum 全等),
  容器内 0.26s/币反而更快。故 chanlun 直接挂载进容器,不必另起信号服务。
  装进现有 .venv 那条路走不通:Hummingbot 要 numba>=0.61.2 与
  aiohttp<3.14,与本机 Python 3.14 冲突
- latency_ccxt.py / latency_hummingbot.py / latency_compare.py 初测显示
  Hummingbot 比 ccxt.pro 慢约 1030ms,90 根逐根配对里 80~97% 更慢
- probe_ws_action.py 否掉「丢弃 snapshot」的猜测:换根首条就是 update
- probe_hb_vs_raw.py 与 latency_attribute.py 四路归因——容器网络 2~18ms、
  Hummingbot 处理 -10~-30ms,1350~1480ms 全落在解析方式上
- probe_ws_payload.py 定位根因:Bitget 换根会推一条带两根的消息
  [上一根, 新一根],而上游取 data["data"][0] 拿到的是上一根,新一根要等
  下一条单元素消息

修复:

- patched_candles.py 处理消息里的全部元素。不能简单改成 [-1]——那样上一根
  的收盘价会永远停在换根前约 1 秒的那次推送上,而信号对 0.25bp 都敏感
- verify_patch.py 60 根配对验证:拿回 1060~1090ms,与原始 WS 只差 5~14ms
  已贴理论下限,19 根已收盘 K 线 OHLCV 逐根未变。折算 ETH 省 0.54bp、
  SOL 省 0.42bp。此 bug 值得向上游反馈

影子交易器:

- shadow_hb.py 不下单,读连接器真实盘口按仓位吃单深度算成交价,与次根开盘价
  (回测 entry_delay=1 的口径)相减,分解成延迟漂移、盘口价差、深度冲击。
  盘口 10Hz 滚动缓冲 30 秒,把延迟变成自变量:每个信号记 0.5/1/2/5s 与实际
  算完时刻各一个滑点值,本机算得慢也不影响能读出的曲线
- shadow_signal.py 信号计算隔离到子进程。0.26s 是纯 CPU 且 chanlun 受 GIL
  限制,放进 asyncio 循环会把行情处理一起卡住
- shadow_report.py 首日延迟门槛与滑点曲线报表

不用 paper trade 测滑点:它的成交由 Hummingbot 自己的撮合模型模拟,
测出来是模型行为而非市场行为。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-27 23:51:57 +08:00

68 lines
3.3 KiB
CSV

sym,kline_ts,raw_ms,hb_ms,delta_ms
BTC,1787840340000,1787840341754,1787840341756,2
ETH,1787840340000,1787840342288,1787840342291,3
SOL,1787840340000,1787840342325,1787840342331,6
ETH,1787840400000,1787840431414,1787840401868,-29546
SOL,1787840400000,1787840430598,1787840402172,-28426
BTC,1787840400000,1787840431414,1787840402868,-28546
SOL,1787840460000,1787840460814,1787840460825,11
ETH,1787840460000,1787840461120,1787840461127,7
BTC,1787840460000,1787840461459,1787840461460,1
SOL,1787840520000,1787840565101,1787840520468,-44633
ETH,1787840520000,1787840564798,1787840521932,-42866
BTC,1787840520000,1787840563680,1787840522276,-41404
BTC,1787840580000,1787840581715,1787840581715,0
ETH,1787840580000,1787840581827,1787840581838,11
SOL,1787840580000,1787840582309,1787840582312,3
SOL,1787840640000,1787840691434,1787840641589,-49845
BTC,1787840640000,1787840691899,1787840641610,-50289
ETH,1787840640000,1787840691434,1787840642306,-49128
BTC,1787840700000,1787840701780,1787840701750,-30
SOL,1787840700000,1787840702226,1787840702195,-31
ETH,1787840700000,1787840702714,1787840702679,-35
BTC,1787840760000,1787840762085,1787840762065,-20
ETH,1787840760000,1787840762265,1787840762237,-28
SOL,1787840760000,1787840762447,1787840762419,-28
SOL,1787840820000,1787840834553,1787840821260,-13293
ETH,1787840820000,1787840834163,1787840821362,-12801
BTC,1787840820000,1787840834004,1787840822443,-11561
SOL,1787840880000,1787840880937,1787840880935,-2
BTC,1787840880000,1787840881754,1787840881753,-1
ETH,1787840880000,1787840882233,1787840882240,7
SOL,1787840940000,1787840962907,1787840942014,-20893
ETH,1787840940000,1787840962907,1787840942176,-20731
BTC,1787840940000,1787840962936,1787840942328,-20608
ETH,1787841000000,1787841001864,1787841001867,3
SOL,1787841000000,1787841002763,1787841002764,1
BTC,1787841000000,1787841002884,1787841002885,1
BTC,1787841060000,1787841107709,1787841061698,-46011
SOL,1787841060000,1787841107709,1787841061959,-45750
ETH,1787841060000,1787841107269,1787841062325,-44944
SOL,1787841120000,1787841120928,1787841120935,7
ETH,1787841120000,1787841121335,1787841121339,4
BTC,1787841120000,1787841121683,1787841121682,-1
BTC,1787841180000,1787841181770,1787841181774,4
SOL,1787841180000,1787841240652,1787841181814,-58838
ETH,1787841180000,1787841182245,1787841182229,-16
ETH,1787841240000,1787841241494,1787841241502,8
BTC,1787841240000,1787841241507,1787841241513,6
SOL,1787841240000,1787841241662,1787841241665,3
ETH,1787841300000,1787841300834,1787841300836,2
SOL,1787841300000,1787841301166,1787841301170,4
BTC,1787841300000,1787841301298,1787841301301,3
ETH,1787841360000,1787841381586,1787841361274,-20312
BTC,1787841360000,1787841381753,1787841361800,-19953
SOL,1787841360000,1787841381419,1787841362314,-19105
SOL,1787841420000,1787841421471,1787841421473,2
BTC,1787841420000,1787841422318,1787841422319,1
ETH,1787841420000,1787841423273,1787841423278,5
BTC,1787841480000,1787841526296,1787841481733,-44563
SOL,1787841480000,1787841526311,1787841481794,-44517
ETH,1787841480000,1787841526095,1787841482320,-43775
ETH,1787841540000,1787841541006,1787841541016,10
BTC,1787841540000,1787841541224,1787841541228,4
SOL,1787841540000,1787841541664,1787841541674,10
ETH,1787841600000,1787841600978,1787841600988,10
BTC,1787841600000,1787841602626,1787841602625,-1
SOL,1787841600000,1787841602730,1787841602737,7