输入/搜索内容
内置函数
结构体
内置变量与常量
通用约定
交易所
能力矩阵
中心化交易所
AscendEx
Backpack
BigONE
币安
Bitfinex
bitFlyer
Bitget
Bithumb
Bitstamp
Bybit
Coincheck
Coinone
CoinW
Crypto.com
DeepCoin
Deribit
DigiFinex
Gate
Gemini
HashKey
HitBTC
火币
Korbit
Kraken
库币
LBank
MEXC
OKX
Poloniex
Upbit
WEEX
WOO X
Zaif
去中心化交易所
预测市场
证券与期货
链上与自定义接入

Binance(现货):币安现货,以及币安杠杆账户(逐仓、全仓)和统一账户(组合保证金)下的全仓杠杆交易。使用币安API Key接入,Secret Key可以是HMAC密钥或RSA私钥;勾选「模拟盘」时连接币安demo环境。

Futures_Binance(期货):币安U本位(USDT、USDC保证金)、币本位永续与交割合约,以及币安欧式期权(USDT结算)。使用币安API Key接入,Secret Key可以是HMAC密钥或RSA私钥;统一账户(组合保证金)自动识别;勾选「模拟盘」时连接币安demo环境。

名称与配置
exchange.GetName()类型
Binance现货
Futures_Binance期货
配置项必填
--
Access Key是
Secret Key是
模拟盘否

交易对与合约代码
Binance(现货)

交易对示例:BTC_USDT、ETH_BTC

交易对写作BTC_USDT,不带合约代码;带.swap等合约后缀的品种代码会报错(合约请使用Futures_Binance交易所对象)。

Futures_Binance(期货)

交易对示例:BTC_USDT、BTC_USDC、BTC_USD

计价币决定合约类型:BTC_USDT、BTC_USDC为U本位合约,BTC_USD为币本位合约。支持币安的中文交易对,例如币安人生_USDT.swap。

合约代码说明
swap永续合约(默认)。U本位、币本位都有。
quarter当季交割合约。币本位都有;U本位只有部分币种挂牌。
next_quarter次季交割合约,挂牌范围同quarter。

不可用的通用合约代码:this_week、next_week。

币安没有周合约,this_week、next_week会报错。

原生合约代码示例:BTCUSDT_260925、BTCUSD_260925

交割合约也可以直接写币安的原生合约代码(交易对去掉下划线、加_和交割日期)。

专属IO指令
Binance(现货)
指令参数说明返回值
trade_margin—切换为逐仓杠杆账户,之后账户、下单、订单查询都使用逐仓杠杆接口。模拟盘没有杠杆接口,会报错。指令名本身。
trade_super_margin—切换为全仓杠杆账户(模拟盘不支持)。账户为统一账户时使用统一账户(papi.binance.com)的全仓杠杆接口。指令名本身。
trade_normal—切换回普通现货账户(默认)。指令名本身。
unifiedbool统一账户(组合保证金),只在全仓杠杆(trade_super_margin)下生效。不调用时,切换到全仓杠杆后首次请求自动探测。成功也返回空值,需要确认时调用后读取GetLastError()。
selfTradePreventionModestring自成交预防,可选EXPIRE_TAKER、EXPIRE_MAKER、EXPIRE_BOTH、NONE,之后的订单随单带上。成功也返回空值,需要确认时调用后读取GetLastError()。

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

Futures_Binance(期货)
指令参数说明返回值
crossbool[, symbol]全仓(true)/逐仓(false),按合约设置;不传symbol时使用当前合约。期权合约不支持。成功也返回空值,需要确认时调用后读取GetLastError()。合约已处于目标模式时交易所报错(-4046)。
dualbool[, symbol]双向(true)/单向(false)持仓,U本位、币本位分别设置,按symbol(不传时为当前合约)决定设置哪一个。期权合约不支持。成功也返回空值,需要确认时调用后读取GetLastError()。已处于目标模式时交易所报错(-4059)。
unifiedbool[, symbol]统一账户(组合保证金),切换后使用papi.binance.com;不调用时首次私有请求自动探测。当前合约为期权时报错。成功也返回空值,需要确认时调用后读取GetLastError()。
selfTradePreventionModestring自成交预防,可选EXPIRE_TAKER、EXPIRE_MAKER、EXPIRE_BOTH、NONE,之后的订单随单带上。成功也返回空值,需要确认时调用后读取GetLastError()。
base[string]查询或切换接口基地址。(详见表下)修改前的U本位地址;不传参数时返回当前U本位地址。
coinmBase[string]查询或切换币本位合约接口基地址,只影响币本位。修改前的地址;不传参数时返回当前地址。
eapiBase[string]查询或切换期权接口基地址。模拟盘下默认没有期权地址,需要用它显式指定。修改前的地址;不传参数时返回当前地址。

表中长说明的其余部分:

  • base:设为币安官方主网地址(https://fapi.binance.com、https://dapi.binance.com、https://papi.binance.com、https://eapi.binance.com、https://api.binance.com)时,U本位用该地址,币本位、统一账户、期权各自回到官方主网地址;设为其它地址(代理、网关等)时,U本位、币本位、统一账户、期权的请求都发往该地址。之后可以用coinmBase、eapiBase单独修改。

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

常用用法
查询与切换各接口的基地址(经代理访问)(仅Futures_Binance)
javascript
function main() { // 不传参数时查询当前地址 Log("U本位:", exchange.IO("base"), "币本位:", exchange.IO("coinmBase")) Log("期权:", exchange.IO("eapiBase")) // 设为代理地址:U本位、币本位、统一账户、期权的请求都发往它,返回修改前的U本位地址 var old = exchange.IO("base", "https://binance-proxy.example.com") Log("修改前:", old, "币本位:", exchange.IO("coinmBase")) // 币本位也是代理地址 // 只让币本位改回官方地址 exchange.IO("coinmBase", "https://dapi.binance.com") // 设回官方地址时,币本位、统一账户、期权各自回到官方主网地址 exchange.IO("base", "https://fapi.binance.com") }

函数支持差异
Binance(现货)

没有不支持的标准函数。

以回退方式支持:

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

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

以回退方式支持:

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

保证金、账户与模拟盘
Binance(现货)

账户:默认为普通现货账户,用exchange.IO("trade_margin")、exchange.IO("trade_super_margin")切换到逐仓、全仓杠杆账户,切换后所有账户与订单调用都换到对应的杠杆接口,直到exchange.IO("trade_normal")切回。逐仓杠杆下exchange.GetAssets()把各逐仓交易对中同一币种的余额相加。

模拟盘:勾选「模拟盘」使用币安demo环境(demo-api.binance.com)。demo环境没有杠杆接口,只能交易普通现货。

Futures_Binance(期货)

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

持仓模式:用exchange.IO("dual", bool)切换双向/单向持仓,U本位与币本位各自独立。下单时按账户实际的持仓模式带仓位参数,也可以在下单附加参数中显式传positionSide。

账户:统一账户(组合保证金)在首次私有请求时自动探测,也可以用exchange.IO("unified", bool)指定。统一账户下exchange.GetAccount()的Balance是所有资产折算成USD的金额;其它资产的折算金额可用USD金额除以该资产的指数价格再除以质押率得到。

模拟盘:勾选「模拟盘」使用币安demo环境(demo-fapi、demo-dapi)。demo环境没有期权接口,模拟盘下期权相关调用报错(可以用exchange.IO("eapiBase", url)显式指定期权接口地址)。

期权
Futures_Binance(期货)

支持币安欧式期权(USDT结算),需要账户已开通期权交易;交易所可能要求单独申请期权卖方资格。限制:

  • 只支持限价单,不支持市价单、条件单和改单(exchange.ModifyOrder())。
  • 不支持exchange.SetMarginLevel()、exchange.GetFundings(),期权合约不能切换保证金模式。
  • 当前合约为期权时exchange.IO("unified", true)报错;账户本身是统一账户时,期权照常通过期权接口交易。
  • exchange.GetMarkets()不列出期权合约,期权代码需要从币安接口或网页获取。
  • 期权账户是独立账户,exchange.GetAccount()、exchange.GetAssets()不包含期权账户的资产。

期权代码示例:BTC-260925-145000-C、XRP-240112-0.5-C

期权代码为币安原生代码:标的-到期日(YYMMDD)-行权价-C/P,C为看涨、P为看跌。币安期权以USDT结算,交易对设置为BTC_USDT,完整品种代码形如BTC_USDT.BTC-260925-145000-C。

注意事项
Binance(现货)
  • 市价买单的下单量是计价币金额(按币安的quoteOrderQty下单),市价卖单是交易币数量。条件单不论买卖,数量一律是交易币数量。
  • exchange.ModifyOrder()、exchange.ModifyConditionOrder()使用币安的撤单再下单接口(cancelReplace,撤单失败则不下新单),返回新订单的ID,之后按新ID操作;只支持普通现货账户,杠杆账户下报错。
  • 条件单只支持止盈、止损单,不支持OCO,需要时分别创建止盈单和止损单。
  • exchange.GetHistoryOrders()、exchange.GetHistoryConditionOrders()必须指定交易对。
Futures_Binance(期货)
  • 下单量:U本位是交易币数量,币本位是合约张数(每张面值见exchange.GetMarkets()的CtVal,单位USD);市价买单同样按数量下单。
  • exchange.ModifyOrder()原地修改价格和数量,订单ID不变;没有传入的价格或数量沿用原订单(数量取原始下单量)。
  • 条件单只支持止盈、止损单,不支持OCO(币安合约没有OCO接口);不支持修改条件单,需要先撤销再重新创建。
  • exchange.GetHistoryOrders()、exchange.GetHistoryConditionOrders()必须指定合约。