修改订单
API说明
此接口允许用户修改未成交订单。请注意,某些参数,如保证金和杠杆率,无法使用此接口修改。
注意:修改订单通过RESTful API可用。
注意事项
-
如果在修改某些参数时发生错误(例如,购买交易品种数量不足,调整杠杆率,修改保证金),订单将被取消。
-
此接口不支持修改持仓模式。如果尝试修改,将返回以下错误,并且订单将被取消。
'code': 9050, 'msg': 'The margin mode cannot be changed for existing orders'
要修改持仓模式,请使用合约 > 账户和资产 > 设置持仓持仓模式中的专用接口。
- 如果现有订单为某个合约指定了杠杆率,则不允许修改同一合约后续订单的杠杆率。如果尝试修改,将返回以下错误,并且订单将被取消。
'code': 9081, 'msg': 'New opening cannot adjust leverage multiples'
- 如果请求参数positionType设置为planTrigger,响应参数openId将为null,但订单仍会成功下单,并可在网页的"未成交订单"下查看。查看未成交订单的接口,请前往合约 > 查询订单 > 获取当前订单。
'code':0, 'data': {'value': 'null'}, 'msg': ''
- 在资金费用期间,不允许进行下单或平仓等交易操作。尝试这些操作将导致错误响应。 资金费用流程通常需要 30 至 40 秒。建议至少等待 1 分钟后再尝试交易操作。 具体的资金费用表,请参阅官方网页。
- CoinW 允许交易者在同一币种上同时建立多头与空头头寸,从而实现对冲功能,助力构建更灵活复杂的交易策略。
认证
这是一个私有接口,需要认证。有关使用RESTful API的详细信息,请参考简介 > 认证和代码示例 > 合约 > RESTful私有接口。
请求方法
PUT
接口地址
频率限制
该接口的调用频率限制为:每个 IP 和用户 ID 每秒最多请求10次。
此外,该接口还受到全局频率限制的约束。
有关"全局速率限制"和"API限频策略"的详细信息,请参阅“频率限制”部分,跳转
请求参数
| 参数 | 必填 | 类型 | 描述 |
|---|---|---|---|
| id | true | Long | 要修改的订单ID |
| 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)。如果基础货币不足至少一个合约,修改此参数将导致错误,订单将被取消。注意:要修改订单大小单位,提供新的quantityUnit;否则,保持不变。 |
| quantity | true | BigDecimal | 基于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:市价单。注意:订单可以从限价单改为市价单。 |
| goldId | false | Integer | 用户体验黄金ID |
| feeType | false | Integer | 费用类型1:maker费用,0:taker费用 |
| orderPrice | false | Integer | 佣金价格 |
| orderBookId | false | Long | 订单ID |
| useAlmightyGold | false | boolean | 是否使用万能金 |
| thirdOrderId | false | String | 用户分配的自定义订单ID,用于唯一区分不同持仓。注意:1. 最大长度:50个字符;仅允许拉丁字母、数字、连字符(-)和下划线(_)。2. 此参数对于批量平仓是必需的。 |
响应参数
| 参数 | 类型 | 描述 |
|---|---|---|
| originId | Long | 原始订单ID |
| editId | Long | 修改后的订单ID |
请求示例
以下Python代码展示了如何修改订单。
注意:完整代码示例请参考简介 > 认证和代码示例 > 合约 > RESTful私有接口。
params = {
"id": "33308754803838259",
"instrument": "btc",
"direction": "long",
"leverage": 1,
"quantityUnit": 1,
"quantity": "1",
"positionModel": 0,
"positionType": "plan",
"openPrice" : 92000,
"stopProfitPrice" : 94000,
"stopLossPrice" : 90500,
"triggerPrice" : "90800",
"triggerType" : 1,
}
api_url = "/v1/perpum/order"
method = "PUT"
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': {'editId': 33308754804673617, 'originId': 33308754803838259}, 'msg': ''}