跳至内容

twap

📁 策略信息

📝 概述

该策略是一个简单的机器人,会在交易所上放置一系列限价单,同时允许用户控制订单数量、价格和持续时间。

我们推荐此策略作为开发者构建自有策略的起点,并作为 开发者参考:策略 文章的参考范例。

🏦 支持的交易所

  • SPOT CLOB CEX

🛠️ 策略配置

参数 类型 默认值 是否提示新建? 提示
连接器 字符串 请输入现货连接器的名称
交易对 字符串 请输入您希望在 [connector] 上交易的代币对
交易方向 字符串 买入 将执行何种操作?(买入/卖出)
目标资产数量 小数 1 要交易的 [base_token] 总数量是多少?
订单步长 小数 1 每个单独订单的数量是多少?(以基础资产计,默认为 1)
订单价格 小数 限价单的价格是多少?
订单延迟时间 小数 10 每个订单之间希望等待多少秒?
取消订单等待时间 小数 60 在取消限价单之前,希望等待多长时间(以秒为单位)?
是否启用时间跨度执行 布尔值 False False 是否要指定执行的开始时间和结束时间?
开始日期时间 小数 False 请输入开始日期和时间
结束日期时间 小数 False 请输入结束日期和时间

📓 描述

交易逻辑

仅为近似值

以下描述是对该策略的一般性近似说明。请查阅上方交易逻辑中的策略代码,以准确理解其工作原理。

TWAP 策略是一种常见的算法执行策略,用于在时间维度上拆分大额订单。具体而言,TWAP 策略可帮助交易者在买卖大额订单时最小化滑点。这些特性使该策略对交易者更具实用性,并有助于构建未来更复杂的策略:

  • 在时钟滴答中递增/维持状态
  • 量化(向下取整至最近可交易值)订单数量
  • 将订单拆分为多个片段
  • 在分段订单之间引入时间延迟

概述

TWAP 策略根据以下用户配置将大额订单拆分为多个部分:

  • 订单总量
  • 单个订单数量
  • 订单间时间间隔

Figure 1: Processing orders

随后,订单将被拆分为可交易(已量化)的数量,并按指定的时间间隔依次执行。首个订单前无延迟。由于每个时钟滴答仅放置一个订单,因此需要一个状态机在多个时钟滴答中发出多个订单。要查看已执行的订单,请在命令行中输入 history。

配置

以下是 TWAP 策略的其他可配置参数(字段添加至 config_map 文件):

  • time_delay:修改提示问题,询问每个订单应延迟多少秒。(例如:每个订单之间希望等待多少秒?)
  • num_individual_orders:向配置映射中新增的一个字段,用于询问应将订单拆分为多少个独立订单。(例如:您希望将此订单拆分为多少个独立订单?)

策略

TWAP 策略逻辑旨在随着时间推移将大额订单拆分为较小订单,其通过在处理订单时维护关键状态信息实现,方法是添加状态变量。

可通过在 __init__ 函数中设置变量,向策略添加自定义状态变量。

  • self._quantity_remaining:表示尚待作为独立订单下达的订单数量。此状态变量在每个订单下达后更新,并在整个订单处理过程中持续保留。
  • self._first_order:指示当前的独立订单是否为首个订单。

Figure 2: Placing orders

当存在剩余订单数量且指定的 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 学院!