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

GateIO(现货):Gate现货(Gate API v4),以及杠杆账户(逐仓、全仓)和统一账户下的现货交易。使用Gate的API Key(Access Key、Secret Key)接入;勾选「模拟盘」时连接Gate测试网。

Futures_GateIO(期货):Gate USDT本位永续与交割合约、币本位(BTC结算)永续合约、USD1结算永续合约,以及USDT期权(Gate API v4)。使用Gate的API Key(Access Key、Secret Key)接入,经典账户与统一账户都支持;勾选「模拟盘」时连接Gate测试网。

名称与配置
exchange.GetName()类型别名
GateIO现货Gate.io、Gate现货
Futures_GateIO期货Gate期货
配置项必填默认值
---
Access Key是—
Secret Key是—
模拟盘否不勾选

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

交易对示例:BTC_USDT、ETH_BTC

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

Futures_GateIO(期货)

交易对示例:BTC_USDT、BTC_USD、BTC_USD1

计价币决定合约类型:BTC_USDT为USDT本位合约,BTC_USD为币本位合约(Gate的BTC结算合约),BTC_USD1为USD1结算的永续合约(只有永续,没有交割合约,品种见exchange.GetMarkets())。交割合约为USDT本位。

合约代码说明
swap永续合约(默认)。
this_week当周交割合约(7天内到期)。
next_week次周交割合约(7至14天内到期)。
quarter季度交割合约(除上两张外最早一张季末到期的合约)。
next_quarter次季度交割合约。

交割合约只在交易所实际挂牌的合约中按到期时间选取,没有挂牌对应档位时报错。

原生合约代码示例:BTC_USDT_20260807

交割合约也可以直接写Gate的原生合约名,例如BTC_USDT.BTC_USDT_20260807。

专属IO指令
GateIO(现货)
指令参数说明返回值
trade_margin—切换为逐仓杠杆账户。只保存在本地,之后下单带account=margin。指令名本身。
trade_super_margin—切换为全仓杠杆账户。只保存在本地,之后下单与查询带account=cross_margin。指令名本身。
trade_normal—切换回普通现货账户(默认)。指令名本身。
unifiedbool统一账户(true)/经典账户(false)。不调用时首次私有请求自动探测。统一账户下下单、查询都使用统一账户(account=unified),优先于杠杆账户设置。成功也返回空值,需要确认时调用后读取GetLastError()。

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

Futures_GateIO(期货)
指令参数说明返回值
crossbool[, symbol]全仓(true)/逐仓(false),向交易所发送请求。(详见表下)成功也返回空值,需要确认时调用后读取GetLastError()。
dualbool[, symbol]双向(true)/单向(false)持仓,向交易所发送请求。按结算币(USDT、BTC、USD1)分别设置,只适用于永续合约。成功也返回空值,需要确认时调用后读取GetLastError()。
unifiedbool统一账户(true)/经典账户(false)。不调用时首次私有请求自动探测。成功也返回空值,需要确认时调用后读取GetLastError()。

表中长说明的其余部分:

  • cross:Gate用杠杆值表示保证金模式,切换时杠杆重设为10倍(逐仓杠杆10倍;永续全仓杠杆上限10倍),需要其它杠杆时之后再调用exchange.SetMarginLevel()。期权不支持。

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

函数支持差异
GateIO(现货)

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

以回退方式支持:

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

没有不支持的标准函数。

以回退方式支持:

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

保证金、账户与模拟盘
全部交易所对象

模拟盘:勾选「模拟盘」使用Gate测试网(api-testnet.gateapi.io),需要使用测试网的API KEY。

GateIO(现货)

账户:默认为普通现货账户,用exchange.IO("trade_margin")、exchange.IO("trade_super_margin")切换到逐仓、全仓杠杆账户。账户是否为统一账户在首次私有请求时自动探测,也可以用exchange.IO("unified", bool)指定。逐仓杠杆账户下exchange.GetAccount()、exchange.GetAssets()汇总全部逐仓交易对的余额(同一币种相加)。

Futures_GateIO(期货)

保证金模式:Gate用杠杆值表示保证金模式(杠杆为0即全仓)。exchange.SetMarginLevel()先查询该合约当前的模式再设置杠杆,不会改变全仓/逐仓:全仓永续调整的是全仓杠杆上限;交割合约全仓时杠杆固定为0。用exchange.IO("cross", bool)切换全仓/逐仓。

持仓模式:双向持仓按结算币设置、只适用于永续合约,用exchange.IO("dual", bool)切换。

账户:账户是否为统一账户在首次私有请求时自动探测,也可以用exchange.IO("unified", bool)指定。经典账户的永续、交割、期权分属不同钱包,USDT本位、币本位与USD1结算也分开:exchange.GetAccount()、exchange.GetAssets()只返回当前合约所在钱包的资产。统一账户下返回统一账户的全部币种。

期权
Futures_GateIO(期货)

支持Gate的USDT期权,exchange.GetMarkets()的结果包含期权合约。账户没有开通期权时,查询订单、持仓会返回交易所的错误。期权不支持条件单、改单(exchange.ModifyOrder())、exchange.SetMarginLevel(),也不能用cross切换保证金模式。

期权代码示例:BTC_USDT-20261225-65000-C

期权代码为Gate原生代码:标的-到期日(YYYYMMDD)-行权价-C/P,代码中的标的必须与交易对一致。交易对设置为BTC_USDT,完整品种代码形如BTC_USDT.BTC_USDT-20261225-65000-C。

注意事项
GateIO(现货)
  • 市价买单的下单量是要花费的计价币金额,市价卖单是交易币数量(按Gate的amount下单);触发后以市价成交的条件单同样如此。
  • 市价单默认以fok(全部成交或撤销)提交,可以在下单附加参数中传time_in_force覆盖。
  • exchange.GetHistoryOrders()必须有交易对(不传时使用当前交易对),传空串报错。
  • 条件单只支持止盈、止损单,不支持OCO;不支持修改条件单,需要先撤销再重新创建。触发后的委托:给了委托价为限价GTC单,不给为市价IOC单;触发条件有效期30天。exchange.GetHistoryConditionOrders()不支持since参数(交易所接口不能按时间过滤),传入时报错。
Futures_GateIO(期货)
  • 下单量、持仓量、成交量都是合约张数(最小下单张数见exchange.GetMarkets()的MinQty,有的合约可以下小数张),每张对应的数量见exchange.GetMarkets()的CtVal:USDT本位、USD1结算与期权为若干交易币,币本位一张为1美元。
  • 某个结算币的合约钱包从未开通(没有划转过资金,交易所报USER_NOT_FOUND)时,不指定具体合约的查询(如exchange.GetPositions()、exchange.GetOrders()按当前合约族查询)把该钱包当作没有持仓和挂单;指定具体合约查询时返回交易所的错误。
  • 市价单以价格0、ioc提交(Gate合约市价单的写法)。
  • exchange.GetHistoryOrders()必须指定具体合约(不传时使用当前合约),传空串或范围报错;交割合约不支持since参数。
  • 条件单只支持止盈、止损单,不支持OCO,触发价按最新成交价判断;触发后的委托给了委托价为限价单,不给为市价单(价格0、ioc)。exchange.ModifyConditionOrder()只支持永续合约(原地修改),交割合约需要先撤销再重新创建。Gate可能拒绝修改经API下的止盈止损单(错误码1077 APIOrderNotSupportUpdateTouchOrder),这时exchange.ModifyConditionOrder()报错,需要先撤销(exchange.CancelConditionOrder())再重新创建。
  • exchange.GetHistoryConditionOrders()不支持since参数(交易所接口不能按时间过滤),传入时报错。