Aster
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期货 |
✓ 表示该交易所对象有这个配置项。
| 配置项 | Aster | Futures_ApolloX | Futures_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(期货)
| 指令 | 参数 | 说明 | 返回值 |
|---|---|---|---|
cross | bool[, symbol] | 全仓(true)/逐仓(false),按合约设置;不传symbol时使用当前合约。同一实盘中已成功把该合约设为相同模式时直接返回,不再请求交易所。 | 成功也返回空值,需要确认时调用后读取GetLastError()。合约本来就处于目标模式时,首次设置交易所可能报错(币安系-4046)。 |
dual | bool | 双向(true)/单向(false)持仓,账户级设置。 | 成功返回设置的布尔值。 |
通用指令api、base、currency见exchange.IO。
Futures_Aster(期货)
| 指令 | 参数 | 说明 | 返回值 |
|---|---|---|---|
cross | bool[, symbol] | 全仓(true)/逐仓(false),按合约设置;不传symbol时使用当前合约。 | 成功也返回空值,需要确认时调用后读取GetLastError()。账户已处于目标模式时交易所报错(-4046)。 |
dual | bool | 双向(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()必须指定交易对。