输入/搜索内容
内置函数
结构体
内置变量与常量
通用约定
交易所
能力矩阵
中心化交易所
去中心化交易所
Hyperliquid
Lighter
edgeX
Aster
Aevo
Pendle
WOOFi Pro
Uniswap / PancakeSwap
Aerodrome / Velodrome
KyberSwap
1inch
EVM DEX通用指令
Jupiter
OKX DEX
DEX策略示例
预测市场
证券与期货
链上与自定义接入

Aster(现货):Aster现货(接口地址https://sapi.asterdex.com)。私有接口使用钱包签名(EIP-712):配置主账户钱包地址和在Aster上为该账户授权的API签名钱包的私钥(签名钱包地址可不填,由私钥推出),不需要API Key。永续合约使用Futures_Aster交易所对象。

Futures_ApolloX(期货):ApolloX已并入Aster并更名。Futures_ApolloX用API Key(HMAC签名)接入同一交易所的旧版合约接口(https://fapi.apollox.finance,币安U本位同构的v1/v2接口),只有永续合约。用钱包签名接入v3接口的是Futures_Aster交易所对象。

Futures_Aster(期货):Aster永续合约(接口地址https://fapi.asterdex.com,币安U本位同构的v3接口)。私有接口使用钱包签名(EIP-712):配置主账户钱包地址和在Aster上为该账户授权的API签名钱包的私钥(签名钱包地址可不填,由私钥推出),不需要API Key。用API Key(HMAC)接入同一交易所旧版接口的是Futures_ApolloX交易所对象;现货使用Aster交易所对象。

名称与配置
exchange.GetName()类型别名
Aster现货AsterDEX
Futures_ApolloX期货ApolloX、ApolloX DEX
Futures_Aster期货Aster期货

✓ 表示该交易所对象有这个配置项。

配置项AsterFutures_ApolloXFutures_Aster必填说明
主账户地址✓✓是主账户(资产所在账户)的钱包地址。
签名钱包地址✓✓否在Aster上为主账户授权的API签名钱包(代理钱包)地址。可不填:不填时由下面的签名钱包私钥推出(该私钥对应的地址就是签名钱包地址);填写时原样使用,须与私钥对应。
签名钱包私钥✓✓是上述签名钱包的私钥,用于对私有请求签名。
Access Key✓是在交易所API管理中创建的API Key。
Secret Key✓是与API Key配对的Secret Key,用于HMAC签名。

交易对与合约代码
全部交易所对象

交易对示例:BTC_USDT、ETH_USDT

Futures_ApolloX(期货)、Futures_Aster(期货)

交易对按交易所给出的交易币、计价币拼成BASE_QUOTE;计价币主要是USDT,也有USD1等,以exchange.GetMarkets()为准。

合约代码说明
swap永续合约,完整品种代码形如BTC_USDT.swap。

只有永续合约,其它合约代码报错。

Aster(现货)

交易对按交易所给出的交易币、计价币拼成BASE_QUOTE(大写);计价币除USDT外还有USD1等,以exchange.GetMarkets()为准。现货交易对不能带合约后缀。

专属IO指令
Aster(现货)

没有专属指令,通用指令见exchange.IO。

Futures_ApolloX(期货)
指令参数说明返回值
crossbool[, symbol]全仓(true)/逐仓(false),按合约设置;不传symbol时使用当前合约。同一实盘中已成功把该合约设为相同模式时直接返回,不再请求交易所。成功也返回空值,需要确认时调用后读取GetLastError()。合约本来就处于目标模式时,首次设置交易所可能报错(币安系-4046)。
dualbool双向(true)/单向(false)持仓,账户级设置。成功返回设置的布尔值。

通用指令api、base、currency见exchange.IO。

Futures_Aster(期货)
指令参数说明返回值
crossbool[, symbol]全仓(true)/逐仓(false),按合约设置;不传symbol时使用当前合约。成功也返回空值,需要确认时调用后读取GetLastError()。账户已处于目标模式时交易所报错(-4046)。
dualbool双向(true)/单向(false)持仓,账户级设置。成功也返回空值,需要确认时调用后读取GetLastError()。

通用指令api、base、currency见exchange.IO。

函数支持差异
全部交易所对象

不支持(调用时报错并返回空值):exchange.ModifyOrder、exchange.ModifyConditionOrder。

Futures_ApolloX(期货)、Futures_Aster(期货)

以回退方式支持:

  • exchange.GetRecords:原生周期为1分钟、3分钟、5分钟、15分钟、30分钟、1小时、2小时、4小时、6小时、8小时、12小时、1天、3天、1周、1月;其它周期由托管者合成。
Aster(现货)

以回退方式支持:

  • exchange.GetRecords:原生周期为1秒、1分钟、3分钟、5分钟、15分钟、30分钟、1小时、2小时、4小时、6小时、8小时、12小时、1天、3天、1周、1月;其它周期由托管者合成。

保证金、账户与模拟盘
Futures_ApolloX(期货)、Futures_Aster(期货)

持仓模式:用exchange.IO("dual", bool)切换双向/单向持仓。首次下单前查询一次账户的持仓模式并缓存,双向持仓下单时自动带positionSide(平仓不带reduceOnly),也可以在下单附加参数中显式传positionSide;下单失败后下一单重新查询持仓模式。

Futures_ApolloX(期货)

保证金模式:用exchange.IO("cross", bool)按合约切换全仓/逐仓;exchange.SetMarginLevel()按合约设置杠杆。

Futures_Aster(期货)

保证金模式:用exchange.IO("cross", bool)按合约切换全仓/逐仓;exchange.SetMarginLevel()按合约设置杠杆。账户开启联合保证金(Multi-Assets)模式时,交易所拒绝切换为逐仓(-4168)。

账户:单资产模式下exchange.GetAccount()取当前计价币(如USDT)那一行:Balance为该币可提余额,Equity为该币保证金余额。联合保证金(Multi-Assets)模式下各保证金币种共用一个按美元计的保证金池,Balance为账户可用保证金(availableBalance),FrozenBalance为挂单占用的初始保证金,Equity为账户保证金余额(totalMarginBalance),UPnL为账户未实现盈亏,都是交易所按美元折算的整账户数值,与计价币无关;账户模式每分钟最多查询一次并缓存。exchange.GetAssets()按币种列出各自的钱包余额。

注意事项
Aster(现货)、Futures_Aster(期货)
  • 用exchange.IO("base", url)切换到地址中含testnet的测试网时,签名自动改用测试网的链ID。
Futures_ApolloX(期货)、Futures_Aster(期货)
  • 下单量是交易币数量(合约面值为1个交易币),市价买单同样按交易币数量下单。
  • 条件单只支持止盈、止损单,不支持OCO,需要时分别创建止盈单和止损单;不支持修改条件单(exchange.ModifyConditionOrder()),需要先撤销再重新创建。
  • exchange.GetHistoryOrders()、exchange.GetHistoryConditionOrders()必须指定合约。
Aster(现货)
  • 市价买单的下单量是计价币金额(按Aster的quoteOrderQty下单),市价卖单是交易币数量。条件单不论买卖,数量一律是交易币数量。
  • 按金额市价买时,交易所按数量步进向下取整买入,不足一档的余额不再使用,订单以EXPIRED结束;只要有成交,查询到的订单状态就是已成交(ORDER_STATE_CLOSED),Amount与DealAmount都是实际买到的交易币数量。按数量下的市价单因流动性不足没有全部成交时,仍是已撤销(DealAmount小于Amount)。
  • 条件单只支持止盈、止损单,不支持OCO,需要时分别创建止盈单和止损单;不支持修改条件单(exchange.ModifyConditionOrder()),需要先撤销再重新创建。exchange.GetConditionOrder()传入普通订单的编号时报错(该订单不是条件单)。
  • exchange.GetHistoryOrders()、exchange.GetHistoryConditionOrders()必须指定交易对。