常见问题
首页
帮助中心
常见问题
交易机器人
现货算法订单
如何针对币安现货产品使用TWAP算法

如何针对币安现货产品使用TWAP算法

2023-04-20 03:34
币安现货推出了针对API用户的时间加权平均价格(TWAP)交易算法。借助币安这一内部算法交易功能,用户可以将大额订单拆分成金额较小的订单并定期自动执行,从而最大限度地降低价格冲击。

什么是TWAP算法?

时间加权平均价格(TWAP)是一种算法交易执行策略,旨在让平均执行价格趋近于指定时段内的时间加权平均价格。

如何使用TWAP算法?

交易者往往通过部署TWAP策略以降低大额订单带来的市场冲击。为优化交易的平均价格,TWAP交易算法会在指定时段内将订单拆分后再予以执行。
在以下情况中,TWAP可提供更划算的执行价格,因此备受青睐:
  • 订单规模大于订单簿提供的流动性。
  • 预计市场剧烈波动,但上涨或下跌的趋势不明朗。
TWAP算法执行模式的示例如下:

在设置TWAP策略时我需要考虑哪些方面?

  • 确定交易规模(您希望买入或卖出的加密货币总金额)。币安针对TWAP策略设置了等值1,000 USDT的交易规模下限。当TWAP策略成交所有订单后,该TWAP订单将终止。
  • 选择TWAP的目标执行期限。您可以将币安现货产品的执行期限设置为5分钟或24小时。

TWAP算法API详情

新TWAP订单端点:

POST /sapi/v1/algo/spot/newOrderTwap

可自定义执行参数

参数描述
符号交易合约(例如BTCUSDT)
方向交易方向(例如买入或卖出)
数量交易数量(必须介于等值1,000 USDT至100,000 USDT之间)
订单期限
以秒为单位的TWAP订单期限(300秒或86,400秒)
  • 如果订单期限短于5分钟,则默认设置为5分钟(300秒);
  • 如果订单期限长于24小时,则默认设置为24小时(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],但相应订单仍将无法执行。