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

给已有仓位加仓:预算按仓位区间与现价的配比拆成两种代币,缺的那种先换,然后加到同一个仓位里。

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

示例

给价值最大的在区间内仓位加仓100 USDC。

javascript
function main() { var ps = exchange.IO("lp.positions", "ETH_USDC").filter(function (p) { return p.inRange && !p.closed }) if (ps.length == 0) { Log("没有在区间内的仓位") return } ps.sort(function (a, b) { return b.value - a.value }) var r = exchange.IO("lp.increase", ps[0].id, 100, {symbol: "ETH_USDC"}) Log(r ? ["加仓", r.id, r.amountBase, "ETH +", r.amountQuote, "USDC"] : GetLastError()) }

返回值

类型描述

object / 空值

{txHash, swapTxHash, id, liquidity, amountBase, amountQuote}:liquidity为新加的流动性,amountBase、amountQuote为投入的数量,swapTxHash为加仓前的换币交易(没换为null)。钱包不够预算或仓位不存在时返回空值并报错。

参数

名称类型必填描述

k

string

是

固定为lp.increase,用于加仓。

positionId

string / number

是

仓位ID,取自lp.add、lp.positions的id。

budget

number

是

加仓预算,按计价币计。

options

object

否

{symbol, slippage, stake},都可以不写:symbol指定交易对朝向(默认稳定币为计价币),slippage为价格保护(默认0.01),stake见备注。

参考

备注

加仓按仓位当前的区间(tick)重新做一个单一区间的计划再执行,资金、换币、授权与lp.add相同:缺的代币先用市价单换,交易对写原生币(如options.symbol为ETH_USDC)时原生币那一侧的付法同lp.add;钱包不够时报计划的shortfall说明。

Aerodrome、Velodrome:质押着的仓位要先用exchange.IO("lp.unstake")取回再加仓;基础池子(positionId为池子地址)加仓就是对这个池子再做一次lp.add,options.stake为true时加完质押。