下单
API说明
此接口允许用户进行合约交易下单,支持各种订单类型,包括市价单、限价单和触发单。
注意:下单仅通过RESTful API可用。
注意事项
-
下单时,确保根据所选订单类型准确指定所有必需参数。
-
如果已经以特定杠杆率为某合约下单,则不支持以不同杠杆率为同一合约下新订单。
-
此接口支持市价单和限价单的 止损(SL)和止盈(TP) 订单。如需为现有订单添加SL/TP,请使用专用接口: 设置止损和/或止盈,请参考合约 > 下单 > 设置SL/TP; 批量设置止损和/或止盈,请参考合约 > 下单 > 批量设置SL/TP。
-
要下追踪止损/止盈订单,请先通过此接口下市价单或限价单。订单成交后,使用单独的接口设置追踪止损/止盈。有关设置追踪止损/止盈的接口,请参考合约 > 下单 > 设置追踪SL/TP。
-
持仓持仓模式 “positionModel” 在存在未成交订单时不能更改。一旦修改,将返回以下错误:
{'code': 9050, 'msg': 'The margin mode cannot be changed for existing orders.'}
要修改持仓持仓模式,请参考合约 > 账户和资产 > 设置持仓模式。
- 如果请求参数(positionType)设置为planTrigger,响应参数openId将为null,但订单仍会成功下单,并可在网页的"未成交订单"下查看。查看未成交订单的接口,请前往合约 > 查询订单 > 获取当前订单
'openId': 'null'
- 在资金费用期间,不允许进行下单或平仓等交易操作。尝试这些操作将导致错误响应。 资金费用流程通常需要 30 至 40 秒。建议至少等待 1 分钟后再尝试交易操作。 具体的资金费用表,请参阅官方网页。
- CoinW 允许交易者在同一币种上同时建立多头与空头头寸,从而实现对冲功能,助力构建更灵活复杂的交易策略。
- 返回订单ID不代表成交。 “返回 orderId 表示系统已受理下单请求,但订单可能在撮合时被撤销,并不代表成交。如需确认成交状态,请调用查询订单或持仓信息API。
认证
这是一个私有接口,需要认证。有关使用RESTful API的详细信息,请参考简介 > 认证和代 码示例 > 合约 > RESTful私有接口。
请求方法
POST
接口地址
频率限制
该接口的调用频率限制为每个用户 ID 每秒 30 个请求,每个 IP 每秒 100000 个请求。
此外,该接口还受到全局频率限制的约束。
有关"全局速率限制"和"API限频策略"的详细信息,请参阅“频率限制”部分,跳转
请求参数
| 参数 | 必填 | 类型 | 描述 |
|---|---|---|---|
| instrument | true | String | 交易品种基础货币(例如,BTC或btc)。此参数不区分大小写。注意:对于以数字开头的合约(例如1000PEPE),大写和小写格式都有效。 |
| direction | true | String | 交易方向:做多(long),做空(short) |
| leverage | true | Integer | 持仓杠杆率 |
| quantityUnit | true | Integer | 用于指定订单数量的计量单位: 0:以计价货币计价(例如,BTC-USDT 合约中的 USDT); 1:以合约张数计价; 2:以基础货币计价(例如,BTC-USDT 合约中的 BTC)。 |
| quantity | true | Intger/String | 基于quantityUnit 指定订单数量: 当 quantityUnit = 0 时,数量以计价货币计量(例如,BTC-USDT 中的 USDT); 当 quantityUnit = 1 时,数量以合约张数计量; 当 quantityUnit = 2 时,数量以基础货币计量(例如,BTC-USDT 中的 BTC)。 |
| positionModel | true | Integer | 持仓持仓模式:0:逐仓,1:全仓 |
| positionType | true | String | 订单类型:execute:市价单,plan:用于不同计划订单,包括限价单、触发限价单、带SL/TP的限价单、带SL/TP的触发限价单、触发市价单、带SL/TP的触发市价单,planTrigger:计划触发订单。注意:对于追踪SL/TP,先通过此接口提交市价单/限价单,然后使用专用接口设置追踪SL/TP。 |
| openPrice | false | BigDecimal | 指定订单价格。注意:计划订单必填。 |
| stopLossPrice | false | BigDecimal | 止损价格。注意:止损订单必填。 |
| stopProfitPrice | false | BigDecimal | 止盈价格。注意:止盈订单必填。 |
| triggerPrice | false | BigDecimal | 计划订单的触发价格 |
| triggerType | false | Integer | 指定触发价格满足时的订单类型:0:限价单,1:市价单。注意:限价单必须指定openPrice。 |
| goldId | false | Integer | 黄金ID |
| thirdOrderId | false | String | 用户分配的自定义订单ID,用于唯一区分不同持仓。注意:1. 最大长度:50个字符;仅允许拉丁字母、数字、连字符(-)和下划线(_)。2. 此参数对于批量平仓是必需的。 |
| useAlmightyGold | false | Boolean | 是否使用万能金,1:是,0:否 |
响应参数
| 参数 | 类型 | 描述 |
|---|---|---|
| data | Long | 订单ID |
请求示例
以下Python代码展示了如何为BTC下止损/止盈限价单。
注意:完整代码示例请参考简介 > 认证和代码示例 > 合约 > RESTful私有接口。
params = {
"instrument": "BTC",
"direction": "long",
"leverage": 2,
"quantityUnit": 0, # for USDT selection
"quantity": "100", # 100 USDT
"positionModel": 0, # isolated margin
"positionType": "plan",
"openPrice" : 83000,
"stopProfitPrice" : 95000,
"stopLossPrice" : 82000,
"thirdOrderId" : "placeSLTPorder"
}
api_url = "/v1/perpum/order"
method = "POST"
response_code, response_data = FuturesRestfulPrivate(params, api_url, method, sec_key, api_key) # function FuturesRestfulPrivate() is defined in section (Introduction > Authentication & Code Snippet > Futures > RESTful Private Interface)
注意:完整Java代码示例请参考简介 > 认证和代码示例 > 合约 > RESTful私有接口。
响应示例
以下是上述Python请求返回的示例响应:
{'code': 0, 'data': {'value': '33308751556999718'}, 'msg': ''}