Gate
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 | — | 切换回普通现货账户(默认)。 | 指令名本身。 |
unified | bool | 统一账户(true)/经典账户(false)。不调用时首次私有请求自动探测。统一账户下下单、查询都使用统一账户(account=unified),优先于杠杆账户设置。 | 成功也返回空值,需要确认时调用后读取GetLastError()。 |
通用指令api、base、currency见exchange.IO。
Futures_GateIO(期货)
| 指令 | 参数 | 说明 | 返回值 |
|---|---|---|---|
cross | bool[, symbol] | 全仓(true)/逐仓(false),向交易所发送请求。(详见表下) | 成功也返回空值,需要确认时调用后读取GetLastError()。 |
dual | bool[, symbol] | 双向(true)/单向(false)持仓,向交易所发送请求。按结算币(USDT、BTC、USD1)分别设置,只适用于永续合约。 | 成功也返回空值,需要确认时调用后读取GetLastError()。 |
unified | bool | 统一账户(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下的止盈止损单(错误码1077APIOrderNotSupportUpdateTouchOrder),这时exchange.ModifyConditionOrder()报错,需要先撤销(exchange.CancelConditionOrder())再重新创建。 exchange.GetHistoryConditionOrders()不支持since参数(交易所接口不能按时间过滤),传入时报错。