币安现货推出了针对API用户的时间加权平均价格(TWAP)交易算法。借助币安这一内部算法交易功能,用户可以将大额订单拆分成金额较小的订单并定期自动执行,从而最大限度地降低价格冲击。
什么是TWAP算法?
时间加权平均价格(TWAP)是一种算法交易执行策略,旨在让平均执行价格趋近于指定时段内的时间加权平均价格。
如何使用TWAP算法?
交易者往往通过部署TWAP策略以降低大额订单带来的市场冲击。为优化交易的平均价格,TWAP交易算法会在指定时段内将订单拆分后再予以执行。
在以下情况中,TWAP可提供更划算的执行价格,因此备受青睐:
- 订单规模大于订单簿提供的流动性。
- 预计市场剧烈波动,但上涨或下跌的趋势不明朗。
TWAP算法执行模式的示例如下:
在设置TWAP策略时我需要考虑哪些方面?
- 确定交易规模(您希望买入或卖出的加密货币总金额)。币安针对TWAP策略设置了等值1,000 USDT的交易规模下限。当TWAP策略成交所有订单后,该TWAP订单将终止。
- 选择TWAP的目标执行期限。您可以将币安现货产品的执行期限设置为5分钟或24小时。
TWAP算法API详情
新TWAP订单端点:
可自定义执行参数
参数 | 描述 |
符号 | 交易合约(例如BTCUSDT) |
方向 | 交易方向(例如买入或卖出) |
数量 | 交易数量(必须介于等值1,000 USDT至100,000 USDT之间) |
订单期限 | 以秒为单位的TWAP订单期限(300秒或86,400秒)
|
限价 | TWAP订单的限价(默认情况下,该订单将以市场价格下达) |
其他补充端点
端点 | 描述 | 链接 |
DELETE /sapi/v1/algo/spot/order | 取消进行中的订单 | https://binance-docs.github.io/apidocs/spot/en/#cancel-algo-order-trade-2 |
GET /sapi/v1/algo/spot/openOrders | 获取所有运行中的订单 | https://binance-docs.github.io/apidocs/spot/en/#query-current-algo-open-orders-user_data-2 |
GET /sapi/v1/algo/spot/historicalOrders | 获取历史订单 | https://binance-docs.github.io/apidocs/spot/en/#query-historical-algo-orders-user_data-2 |
GET /sapi/v1/algo/spot/subOrders | 获取指定算法ID的相应子订单 | https://binance-docs.github.io/apidocs/spot/en/#query-sub-orders-user_data-2 |
常见问题
1.订单限额是多少?
- 开仓订单数量限制:TWAP支持每个账户最多同时运行20笔订单。同一份合约可下达多笔TWAP订单。
- 名义限额:订单名义金额(订单数量 x 基础资产的最新价格)必须大于或等于(≥)等值1,000 USDT,且小于或等于(≤)等值100,000 USDT。
- 期限:订单期限不得短于5分钟(300秒)或长于24小时(86,400 秒)。
所有TWAP订单成交后,方可查询交易详情。仅显示部分成交订单,您可以查看交易数量、平均交易价格以及交易手续费等具体信息。
2.错误响应的含义
如果查询不恰当,您可能会收到以下错误响应信息:
外部代码 | 外部消息 |
0 | 查询成功 |
-1000 | 处理请求时出现未知错误 |
-1102 | 必填参数未发送、为空或格式不正确 |
-20121 | 合约无效 |
-20130 | 发送的参数数据无效 |
-2013 | 订单不存在 |
-5007 | 数量必须大于零 |
-20124 | 算法ID无效,或算法ID已完成 |
-20132 | 客户算法ID重复 |
-20194 | 期限过短,无法全数执行所要求的数量 |
-20195 | 订单规模过小 |
-20196 | 订单规模过大 |
-20198 | 您已达到允许的最大开仓订单限额 |
3.TWAP订单是否保证一定执行?
TWAP订单无法保证一定执行。订单会根据市场流动性和波动性尽最大可能成交。
如果订单执行期间市价大幅波动或市场流动性不足,则算法未必能完全执行所有订单。
因此,订单执行始终由市场流动性决定,且无法保证会以最佳价格执行。例如,如果市场陷入低迷,则算法可能无法在指定结束时间前成交订单。
4.如何查看TWAP订单状态?
欲查看TWAP订单状态,您可以使用查询订单端点(GET /sapi/v1/algo/spot/openOrders或GET /sapi/v1/algo/spot/historicalOrder)。
请注意:
- 您不会收到任何有关订单成交动态的WebSocket通知。
- 收到["success": true]并不意味着您的订单将予以执行。例如,如果您的现货钱包余额不足,您也会收到["success": true],但相应订单仍将无法执行。