twap¶
📁 策略信息¶
- 文件夹: /hummingbot/strategy/twap
- 配置文件: twap_config_map.py
- 维护者:无
📝 概述¶
该策略是一个简单的机器人,会在交易所上放置一系列限价单,同时允许用户控制订单数量、价格和持续时间。
我们推荐此策略作为开发者构建自有策略的起点,并作为 开发者参考:策略 文章的参考范例。
🏦 支持的交易所¶
- SPOT CLOB CEX
🛠️ 策略配置¶
| 参数 | 类型 | 默认值 | 是否提示新建? | 提示 | 
|---|---|---|---|---|
| 连接器 | 字符串 | 是 | 请输入现货连接器的名称 | |
| 交易对 | 字符串 | 是 | 请输入您希望在 [connector]上交易的代币对 | |
| 交易方向 | 字符串 | 买入 | 是 | 将执行何种操作?(买入/卖出) | 
| 目标资产数量 | 小数 | 1 | 是 | 要交易的 [base_token] 总数量是多少? | 
| 订单步长 | 小数 | 1 | 是 | 每个单独订单的数量是多少?(以基础资产计,默认为 1) | 
| 订单价格 | 小数 | 是 | 限价单的价格是多少? | |
| 订单延迟时间 | 小数 | 10 | 是 | 每个订单之间希望等待多少秒? | 
| 取消订单等待时间 | 小数 | 60 | 是 | 在取消限价单之前,希望等待多长时间(以秒为单位)? | 
| 是否启用时间跨度执行 | 布尔值 | False | False | 是否要指定执行的开始时间和结束时间? | 
| 开始日期时间 | 小数 | False | 请输入开始日期和时间 | |
| 结束日期时间 | 小数 | False | 请输入结束日期和时间 | 
📓 描述¶
仅为近似值
以下描述是对该策略的一般性近似说明。请查阅上方交易逻辑中的策略代码,以准确理解其工作原理。
TWAP 策略是一种常见的算法执行策略,用于在时间维度上拆分大额订单。具体而言,TWAP 策略可帮助交易者在买卖大额订单时最小化滑点。这些特性使该策略对交易者更具实用性,并有助于构建未来更复杂的策略:
- 在时钟滴答中递增/维持状态
- 量化(向下取整至最近可交易值)订单数量
- 将订单拆分为多个片段
- 在分段订单之间引入时间延迟
概述¶
TWAP 策略根据以下用户配置将大额订单拆分为多个部分:
- 订单总量
- 单个订单数量
- 订单间时间间隔
随后,订单将被拆分为可交易(已量化)的数量,并按指定的时间间隔依次执行。首个订单前无延迟。由于每个时钟滴答仅放置一个订单,因此需要一个状态机在多个时钟滴答中发出多个订单。要查看已执行的订单,请在命令行中输入 history。
配置¶
以下是 TWAP 策略的其他可配置参数(字段添加至 config_map 文件):
- time_delay:修改提示问题,询问每个订单应延迟多少秒。(例如:每个订单之间希望等待多少秒?)
- num_individual_orders:向配置映射中新增的一个字段,用于询问应将订单拆分为多少个独立订单。(例如:您希望将此订单拆分为多少个独立订单?)
策略¶
TWAP 策略逻辑旨在随着时间推移将大额订单拆分为较小订单,其通过在处理订单时维护关键状态信息实现,方法是添加状态变量。
可通过在 __init__ 函数中设置变量,向策略添加自定义状态变量。
- self._quantity_remaining:表示尚待作为独立订单下达的订单数量。此状态变量在每个订单下达后更新,并在整个订单处理过程中持续保留。
- self._first_order:指示当前的独立订单是否为首个订单。
当存在剩余订单数量且指定的 time_delay 已过时,TWAP 将执行订单。具体而言,利用剩余订单数量和 time_delay 的一些关键要素如下所述:
- 如果 self._quantity_remaining 大于 0,则下达订单
- 如果 self._first_order为真,我们希望在self._current_timestamp > self._previous_timestamp时立即下达订单,首个订单前无时间延迟
- 如果不是首个订单,请检查 self._current_timestamp > self._previous_timestamp + self._time_delay
- 下单后,通过减去刚下达订单的数量 curr_order_amount来更新 self._quantity_remaining:取 (总订单数量)/(订单次数) 与self._quantity_remaining中较小者
📺 演示¶
警告
本演示仅用于教学和教育目的。所使用的任何参数均仅为演示用途。我们不提供任何法律、税务、财务或投资建议。每位用户须自行负责 Hummingbot 的使用与配置。
ℹ️ 更多资源¶
给新手的策略编程指南:本文系我们的用户投稿的博客文章。虽然与 TWAP 策略无直接关联,但展示了如何为跨交易所做市策略编写自定义脚本。
了解更多与此策略及其他策略相关的资源,请访问 Hummingbot 学院!
