源文件:research/quant_digests/2026-04-07_1523_xemm-makerfirst-takerhedge-alpha.md
README.md + cross_exchange_market_making_config_map_pydantic.py + cross_exchange_market_making.py + start.py)这次主看 Hummingbot Foundation / hummingbot/hummingbot 里的成熟策略模块 cross_exchange_market_making。它不是再讲“跨所套利存在”这句空话,而是把一条能直接跑起来的完整骨架写清楚:maker 侧先挂单赚价差,taker 侧负责立刻对冲,所有报价都先经过 profitability / slippage / balance / volume 几层约束。
get_market_making_price(...) 会围绕 min_profitability、对冲侧可成交价、汇率换算与滑点缓冲来反推 maker 应该挂在哪里。order_size_taker_volume_factor、order_size_taker_balance_factor、order_size_portfolio_ratio_limit 暴露出来,说明仓位大小先受对冲深度、可用余额和组合上限约束。anti_hysteresis_duration、adjust_order_enabled、active_order_canceling 这类控制,核心目的都是减少顶档抖动带来的频繁改价、无效撤单和被 adverse selection 白打。这条线直接补的是我们最近很多 raw alpha 还缺的那一层:怎么把“价差存在”变成真实可挂、可吃、可对冲的单子。 它尤其适合服务这些已积累方向:
一句话核心结论:跨 venue alpha 真正值钱的不是看见 gap,而是只挂那些“被打到之后还能立刻在另一边锁住净利润”的价。 一句话证明方式:Hummingbot 不是论文回测,而是把 profitability、slippage、余额、深度、撤单节奏全部写进策略参数和执行逻辑里,用工程约束把这个判断落地。
min_profitability、对冲侧可成交量、余额约束、滑点缓冲、顶档抖动/改单阈值maker_ask >= taker_buy_cost * (1 + hurdle) 或 maker_bid <= taker_sell_proceeds * (1 - hurdle) 时,maker-first 挂单在 fill 后做 taker hedge,仍能留下正的净 edge。hurdle = fees + slippage_buffer + min_profitability;先用 public L1/L2 或 top-of-book 近似 taker_buy_cost / taker_sell_proceeds,再把 maker 可挂价反推出来。BTCUSDT / ETHUSDT,两家高流动性 venue,先跑 1m / 3m 事件聚合;再把结果汇总成 5m / 15m 的「可对冲机会占比 / 净 edge 分布 / fill 后一跳 adverse selection」。1m / 3m 甚至 event-time;若硬塞到 15m,更适合作为 venue-routing / execution overlay,而不是逐根主方向信号。hummingbot/hummingbot.https://github.com/hummingbot/hummingbot17,995 stars,2026-04-07 仍有更新hummingbot/strategy/cross_exchange_market_making/cross_exchange_market_making_config_map_pydantic.pyhummingbot/strategy/cross_exchange_market_making/cross_exchange_market_making.pyhummingbot/strategy/cross_exchange_market_making/start.py