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

Huobi(现货):HTX(火币)现货,以及逐仓、全仓杠杆账户,默认连接api.huobi.pro。使用HTX的API Key(Access Key、Secret Key)接入,下单、查询余额使用该Key下的现货账户(或切换后的杠杆账户)。

Futures_HuobiDM(期货):HTX(火币)U本位(USDT)永续与交割合约、币本位永续与交割合约,默认连接api.hbdm.com(三类合约分属HTX的U本位、币本位永续、币本位交割三套接口)。使用HTX的API Key(Access Key、Secret Key)接入,经典账户、统一账户与多资产保证金模式都支持。

名称与配置
exchange.GetName()类型别名
Huobi现货火币现货
Futures_HuobiDM期货Futures_HTX、HuobiDM、HTX期货、火币期货

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

配置项HuobiFutures_HuobiDM必填说明
Access Key✓✓是—
Secret Key✓是与API Key配对的Secret Key。HTX要求附加ECDSA签名的Key可以写成Secret Key,PEM私钥(逗号后为secp256k1私钥的PEM),请求在HMAC签名之外再附带PrivateSignature。
Secret Key✓是—

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

交易对示例:BTC_USDT、ETH_BTC

交易对写作BTC_USDT,不带合约代码;带.swap等合约后缀的品种代码会报错(合约请使用Futures_HuobiDM交易所对象)。支持火币的中文交易对,例如币安人生_USDT。

Futures_HuobiDM(期货)

交易对示例:BTC_USDT、BTC_USD

计价币决定合约类型:BTC_USDT为U本位合约,BTC_USD为币本位合约;不支持其它计价币。

合约代码说明
swap永续合约(默认)。
this_week当周交割合约。
next_week次周交割合约。
quarter当季交割合约。
next_quarter次季交割合约。

交割合约按HTX合约列表中的合约类型查找,交易所没有挂牌对应档位时报错。

原生合约代码示例:BTC-USDT-260925、BTC260925

交割合约也可以直接写HTX的原生合约代码:U本位形如BTC_USDT.BTC-USDT-260925,币本位形如BTC_USD.BTC260925。

专属IO指令
Huobi(现货)
指令说明返回值
trade_margin切换为逐仓杠杆账户,之后下单使用该交易对的逐仓杠杆账户(source=margin-api)。指令名本身。
trade_super_margin切换为全仓杠杆账户,之后下单与查询余额使用全仓杠杆账户(source=super-margin-api)。指令名本身。
trade_normal切换回普通现货账户(默认)。指令名本身。

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

Futures_HuobiDM(期货)
指令参数说明返回值
crossbool全仓(true,默认)/逐仓(false),只对经典账户、统一账户的U本位合约有效。(详见表下)成功也返回空值,需要确认时调用后读取GetLastError()。
dualbool[, symbol]双向(true,dual_side)/单向(false,single_side)持仓,向交易所发送切换请求,只支持U本位合约。经典账户、统一账户按当前cross设置切换全仓或逐仓账户(逐仓按该合约的交易对)的持仓模式。成功也返回空值,需要确认时调用后读取GetLastError()。
unifiedbool向交易所发送请求,把账户切换为统一账户(true)/经典账户(false),成功后重新探测账户形态。成功也返回空值,需要确认时调用后读取GetLastError()。
signHoststring设置私有(签名)请求使用的地址,只写域名(如api.hbdm.vn)时沿用接口基地址的协议。HTX把域名算进签名:设置后签名中的域名和私有请求(账户、持仓、下单等)实际发往的地址都换成它,公开行情仍使用接口基地址;不设置时都使用接口基地址。成功也返回空值。

表中长说明的其余部分:

  • cross:只保存在本地,不向交易所发请求,也不区分合约:之后U本位合约的下单、撤单、条件单以及持仓、订单查询都使用该模式的接口(经典账户的exchange.GetAccount()、exchange.GetAssets()汇总全仓与逐仓)。多资产保证金模式固定为全仓,不受它影响。

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

常用用法
私有请求改走备用域名(行情仍使用接口基地址)(仅Futures_HuobiDM)
javascript
function main() { // 账户、持仓、下单等私有请求改发到api.hbdm.vn,签名也按这个域名计算 exchange.IO("signHost", "https://api.hbdm.vn") Log(exchange.GetAccount()) // 行情等公开请求仍发往接口基地址 Log(exchange.IO("base"), exchange.GetTicker("BTC_USDT.swap")) }

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

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

Huobi(现货)

以回退方式支持:

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

以回退方式支持:

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

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

账户:钱包模式只保存在本地,切换后下单与查询余额使用对应的杠杆账户。逐仓杠杆账户按交易对区分,exchange.GetAccount()、exchange.GetAssets()不能确定是哪个交易对的逐仓账户,在逐仓模式下调用会报错;同理,逐仓模式下exchange.GetOrders()、exchange.GetConditionOrders()必须指定交易对。

Futures_HuobiDM(期货)

保证金模式:U本位合约默认全仓,用exchange.IO("cross", false)切换为逐仓(影响之后的交易与查询,见该指令);币本位合约为逐仓,多资产保证金模式为全仓。经典账户、统一账户没有单独设置杠杆的接口:exchange.SetMarginLevel()只记在本地,随之后该合约的下单(lever_rate)生效;没有设置时取账户中该合约当前的杠杆,账户里查不到(例如从未交易过该合约)时下单报错,需要先调用exchange.SetMarginLevel()。多资产保证金模式下exchange.SetMarginLevel()直接向交易所设置杠杆。

持仓模式:U本位合约用exchange.IO("dual", bool)切换双向/单向持仓。

账户:连接器自动探测U本位账户的形态(经典、统一账户、多资产保证金),按形态使用对应的接口;用exchange.IO("unified", bool)切换账户类型后重新探测。

注意事项
Huobi(现货)
  • 市价买单的下单量是要花费的计价币金额,市价卖单是交易币数量;触发后以市价成交的条件买单同样按计价币金额(orderValue)下单。
  • 限价单支持tif的ioc、fok与只做Maker(postOnly,对应HTX的limit-maker)。
  • exchange.GetHistoryOrders()、exchange.GetHistoryConditionOrders()必须有交易对(不传时使用当前交易对),传空串报错。
  • 条件单使用HTX的策略委托(/v2/algo-orders),只支持普通现货账户,只支持止盈、止损单,不支持OCO。条件单的订单ID是下单时的clientOrderId(不传时自动生成UUID),不是数字订单号。
Futures_HuobiDM(期货)
  • 下单量、持仓量是合约张数(整数),每张对应的数量见exchange.GetMarkets()的CtVal:U本位为若干交易币,币本位为若干美元。
  • 市价单在经典账户、统一账户下以对手价(opponent)下单,多资产保证金模式下为市价单;限价单支持tif的ioc、fok与只做Maker(postOnly)。
  • 条件单只支持止盈、止损单,不支持OCO;多资产保证金模式下同样可以使用条件单。不给委托价时触发后以最优20档(optimal_20)成交。
  • exchange.GetConditionOrders()按范围查询只支持USDT(如USDT.swap),币本位合约需要指定具体合约;经典账户、统一账户下exchange.GetHistoryConditionOrders()不支持since参数(传入时报错),只能查到最近90天。