输入/搜索内容
内置函数
结构体
内置变量与常量
通用约定
交易所
能力矩阵
中心化交易所
去中心化交易所
预测市场
证券与期货
链上与自定义接入

按规则自动选择一个LP池子:在流动性充足的池子中选择24小时成交额最大的,或选择指定费率的池子。

exchange.IO(k, token, budget)
exchange.IO(k, token, budget, options)

示例

选择一个ETH/USDC池子,再单独在V4池子中选择一个。

javascript
function main() { var p = exchange.IO("lp.select", "ETH", 1000, {quote: "USDC"}) if (!p) { Log("选池失败:", GetLastError()) return } Log("选中:", p.protocol, p.id, "费率:", p.feeRate, "理由:", p.reason) // 只在V4池子中选择(PancakeSwap填infinity,Aerodrome、Velodrome填slipstream等) var v4 = exchange.IO("lp.select", "ETH", 1000, {quote: "USDC", protocol: "v4"}) Log("V4池子:", v4 ? v4.id : GetLastError()) }

返回值

类型描述

object / 空值

选中的池子:lp.pools返回结果中的一项,另附reason(选择理由)。没有带流动性的池子、指定的费率不存在(exact为true时)等情况下,返回空值并报错。

参数

名称类型必填描述

k

string

是

固定为lp.select,用于选择池子。

token

string

是

代币名称或合约地址,例如ETH。

budget

number

是

预算,以计价币计,用于确定流动性门槛:池子的TVL至少为5000美元与预算二者中的较大值。

options

object

否

选池条件{quote, fee, exact, protocol, tickSpacing},各项均可省略,详见备注。

参考

备注

options的各项:

键说明
quote计价币,例如USDC;省略时,代币与本链包装币、USDC、USDT组成的池子都参与比较
fee优先使用的费率,以百万分之一为单位,例如500
exact为true时只使用fee指定的费率
protocol池子类型,字符串或数组:Uniswap为v3、v4,PancakeSwap为v3、infinity,Aerodrome、Velodrome为slipstream、slipstream2、volatile、stable
tickSpacing只选择该tick间距的池子(主要用于Slipstream,其池子按tick间距区分)

选池规则:先排除空池子以及不符合protocol、tickSpacing的池子;指定了fee时,若该费率的池子满足流动性门槛则选择它(reason为fee tier 500 requested),exact为true时即使不满足门槛也选择它,若不存在该费率的池子则报错;否则在TVL不低于5000美元与预算二者较大值的池子中选择24小时成交额最大的(largest 24h volume among pools with enough liquidity),没有成交数据时选择TVL最大的;所有池子都不满足门槛时选择TVL最大的,并在reason中说明。

候选池子即lp.pools列出的池子(Uniswap V4池子的来源及可能遗漏的情况,见lp.pools页面);如需使用清单之外的池子,可直接将其PoolId作为lp.plan的pool。

exchange.IO("lp.plan", ...)未指定pool时,按相同规则选池(fee、tickSpacing取自计划参数;对于Aerodrome、Velodrome,指定了range时只在Slipstream池子中选择)。Uniswap、PancakeSwap如需使用V4/Infinity CL池子建仓,应先用protocol选出池子,再将其id作为计划的pool。