免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

CloddsBot多跳套利:3-4跳图路径搜索的算法全解

CloddsBot多跳套利:3-4跳图路径搜索的算法全解 CloddsBot多跳套利3-4跳图路径搜索的算法全解【免费下载链接】CloddsBotOpen Source AI trading agent that operates autonomously across 1000 markets - Polymarket, Kalshi, Binance, Hyperliquid, Solana DEXs, 5 EVM chains. Scans for edge, executes instantly, manages risk while you sleep. Agent commerce protocol for machine-to-machine payments. Self-hosted. Built on Claude.项目地址: https://gitcode.com/GitHub_Trending/cl/CloddsBotCloddsBot 是一个开源 AI 交易代理AI Trading Agent可自主运行于 1000 市场。这篇文章聚焦它的**多跳套利Multi-Hop Arbitrage**模块完整讲解 3-4 跳图路径搜索算法是如何从一份交易所报价图中找出盈利环的——即使你没有接触过图算法也能看懂。什么是多跳套利从两地买卖到绕一圈回来普通跨场所套利是两段式A 所低价买入、B 所高价卖出。多跳套利把这个思路扩展成 3~4 段甚至更多从某个资产出发经过 3 或 4 个市场/交易所最后回到原资产如果回到手里的数量比出发时更多差额就是套利利润。举个例子来自项目单元测试的真实用例跳序平台交易汇率1BinanceUSDC → SOL0.0068 SOL/USDC2HyperliquidSOL → JUP145 JUP/SOL3BybitJUP → USDC1.03 USDC/JUP三段净汇率扣除手续费与滑点后连乘大于 1就意味着投入 1 美元能拿回 1 美元多。 也就是说多跳套利把整个市场抽象成一张有向图节点 资产USDC、SOL、JUP…边hop 某个平台市场上的一条报价fromAsset → toAsset环cycle 回到起点的闭合路径环上所有边的净汇率连乘 1该环即可盈利算法的 6 个默认参数规划器内置一组默认值源码DEFAULT_CONFIG见 src/trading/multi-hop-arbitrage.ts#L73-L83参数默认值作用maxHops4最大跳数即只搜 3-4 跳环minNetEdgeBps20 bps最低净边际阈值0.2%minTargetProfitUsd$1最低预期美元利润maxNotionalUsd$500单笔最大名义金额maxQuoteAgeMs1500 ms报价保鲜期过期直接剔除maxLatencyMs2000 ms单跳最大可接受延迟算法如何运转六步拆解核心findMultiHopArbitragePlans函数L282-L370是整个模块的心脏逐步拆解如下。第 1 步报价资格过滤先筛掉不可用的报价汇率 ≤ 0、最大输入容量 ≤ 0、报价年龄超过 1.5 秒、单跳延迟超过 2 秒的报价全部淘汰。HFT 场景对时间极度敏感这一步保证后续搜索只基于新鲜数据。第 2 步构建邻接表按fromAsset把所有合格报价分组形成邻接表。这样 DFS 走到任何资产时都能一次取出它的所有出边无需全量扫描。第 3 步DFS 回溯搜索3-4 跳搜索的核心以每个资产为起点沿着出边递归展开用当前路径path与每单位起始资产已产出currentOutputPerUnit初始为 1跟踪状态每走一跳计算净汇率rate × (1 - (手续费 滑点) / 10000)容量传播能穿过这一跳的最大起始投入 该跳容量 / 当前产出比再与已有容量取 min。这一步保证了最终算出的下单规模在路径的每一跳都真实可执行而不是只看汇率路径达到maxHops即停止展开、回溯 两个去重机制防止死循环和重复劳动visitedAssets同一资产不可二次进入起点资产除外——回到起点正是成环信号visitedHops同一条边平台市场fromto在同一路径中不重复经过第 4 步成环判定当某条边的toAsset等于起始资产、且路径已有 ≥ 2 跳时构成一个合法套利环进入盈利检查否则继续递归。只允许回到起点这一设计让算法只搜索简单环天然避开了绕圈子的无效探索也大幅压缩了搜索空间。第 5 步盈利与阈值检查buildPlan执行一连串硬门槛净乘数所有跳净汇率连乘必须 1净边际netEdgeBps (乘数 - 1) × 10000≥ 20 bps预期美元利润 ≥ $1投入规模 min(各跳容量, $500 名义上限)且必须 0全部通过才生成计划其中包含逐跳执行指令顺序、输入/预期输出规模、手续费、滑点、延迟、结算域。第 6 步轮换不变去重 结果排序这是整个算法里最巧妙的细节之一。同一个物理环可以从不同起点被搜到——USDC→SOL→JUP→USDC 与 SOL→JUP→USDC→SOL 其实是同一个环按路径去重会产生重复。解决方案canonicalCycleIdL133-L137把环上各条边拼成 token 序列生成所有循环轮换形式取字典序最小的一个作为该环的唯一 ID。同 ID 的环只保留最先发现的那个而不是去比较两个带浮点噪声的净边际值——那样会让哪个轮换胜出变成随机的。最后所有计划按净边际降序排序并列时按预期美元利润降序最赚钱的机会排在最前。三种结算策略找到环之后怎么执行determineSettlementStrategy会根据每跳的链上结算属性为环标注执行策略策略触发条件含义solana_atomic_bundle所有跳都在 Solana 且全部满足原子条件整条环打成一个原子 bundle全部成功或全部失败evm_exact_in含 EVM 腿且其余为链下每跳用确定性 exact-in 定大小进入standard其他混合情况普通市价单逐跳执行并标记混合结算警告同时会生成一组警告例如mixed_settlement_domains混合结算域、latency_budget_tight延迟预算紧张、quotes_nearing_stale_threshold报价临近过期供执行层做风险决策。调用规划器服务层与 API 入口规划器本身是纯函数由 src/opportunity/hft.ts 接入产品面planMultiHopHft(hops, config)传入有向边报价列表直接返回计划列表L505-L513POST /api/opportunities/hft/multi-hop/plan网关 API接收显式的有向图 payload执行 3-4 跳寻路你甚至可以在 WebChat 聊天界面直接触发机会扫描。执行模型与 V2 HFT 套利的完整设计背景可阅读 docs/V2_HFT_ARBITRAGE.md。算法正确性如何验证单元测试项目在 tests/unit/multi-hop-arbitrage.test.ts 中覆盖了三个关键场景3 跳盈利环Binance→Hyperliquid→Bybit 的 USDC-SOL-JUP-USDC 环断言hopCount3、净边际 0、预期利润 0Solana 原子 bundle三跳全部可打包断言策略为solana_atomic_bundle且每条指令都是atomic_bundle提示EVM exact-in三跳全部在 EVM断言策略为evm_exact_in且exactIn标志生效总结这套实现值得借鉴的 4 个点图论建模简洁报价列表 → 邻接表 → DFS 找环教科书式的有向图应用代码却不到 400 行容量传播严谨不止看汇率还逐跳传播可执行容量保证最终规模端到端可落地时效双阈值1.5 秒报价保鲜期 2 秒延迟上限是 HFT 场景务实的工程取舍轮换不变去重用最朴素的方式优雅处理了环的等价性套利执行后的整体持仓表现可以用组合看板随时核对。相关文件速查多跳规划器核心src/trading/multi-hop-arbitrage.ts机会级 HFT 规划服务src/opportunity/hft.ts单元测试tests/unit/multi-hop-arbitrage.test.tsV2 HFT 套利设计文档docs/V2_HFT_ARBITRAGE.md双场所套利规划器对比阅读src/trading/venue-arbitrage.ts【免费下载链接】CloddsBotOpen Source AI trading agent that operates autonomously across 1000 markets - Polymarket, Kalshi, Binance, Hyperliquid, Solana DEXs, 5 EVM chains. Scans for edge, executes instantly, manages risk while you sleep. Agent commerce protocol for machine-to-machine payments. Self-hosted. Built on Claude.项目地址: https://gitcode.com/GitHub_Trending/cl/CloddsBot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表