内置函数
结构体
内置变量与常量
通用约定
交易所
能力矩阵
中心化交易所
去中心化交易所
Hyperliquid
Lighter
edgeX
Aster
Aevo
Pendle
WOOFi Pro
Uniswap / PancakeSwap
Aerodrome / Velodrome
KyberSwap
1inch
EVM DEX通用指令
exchange.IO("route", ...)
exchange.IO("simulate", ...)
exchange.IO("token", ...)
exchange.IO("transfer", ...)
exchange.IO("receipt", ...)
exchange.IO("wrap", ...)
exchange.IO("unwrap", ...)
exchange.IO("approve", ...)
exchange.IO("slippage", ...)
exchange.IO("deadline", ...)
exchange.IO("cancelWait", ...)
exchange.IO("gasMultiplier", ...)
exchange.IO("lp.pools", ...)
exchange.IO("lp.select", ...)
exchange.IO("lp.pool", ...)
exchange.IO("lp.ticks", ...)
exchange.IO("lp.plan", ...)
exchange.IO("lp.simulate", ...)
exchange.IO("lp.add", ...)
exchange.IO("lp.increase", ...)
exchange.IO("lp.decrease", ...)
exchange.IO("lp.collect", ...)
exchange.IO("lp.remove", ...)
exchange.IO("lp.positions", ...)
exchange.IO("lp.history", ...)
exchange.IO("lp.track", ...)
exchange.IO("bridge.*", ...)
Jupiter
OKX DEX
DEX策略示例
预测市场
证券与期货
链上与自定义接入
exchange.IO("lp.track", ...)
登记仓位ID,让lp.positions在节点查不到完整历史日志时也能找到这些仓位(重启后找回以前建的仓位)。
exchange.IO(k, positionIds)示例
重启后登记以前保存的仓位ID,再查询仓位。
javascript
function main() {
var ids = _G("lpIds") // 建仓时用 _G("lpIds", ids) 保存的仓位ID
if (ids && ids.length > 0) {
Log("已登记:", exchange.IO("lp.track", ids))
}
Log(exchange.IO("lp.positions"))
}返回值
| 类型 | 描述 |
array / 空值 | 本进程记住的全部仓位ID(不含V3仓位)。前缀与交易所对象不符(如在Uniswap上登记 |
参数
| 名称 | 类型 | 必填 | 描述 |
k | string | 是 | 固定为 |
positionIds | string / array | 是 | 要登记的仓位ID:单个ID或ID数组,如 |
参考
Uniswap / PancakeSwap Aerodrome / Velodrome exchange.IO exchange.IO("lp.positions") exchange.IO("lp.add")
备注
需要登记的是V4/Infinity CL仓位(v4:、inf:)、Slipstream仓位(aero:、aero2:、velo:、velo2:)和基础池子地址;V3仓位由PositionManager按钱包列出,不用登记,传入时忽略。登记时会到链上核对仓位存在,之后lp.positions每次按链上核对归属(质押在gauge里的按质押人),已转走的不列出。
登记只保存在本进程内,重启后要再登记一次:策略可以把lp.add返回的ID存起来(如用_G()),启动时登记。本进程lp.add建的仓位会自动记住。