跳转至内容

twap

📁 策略信息

📝 摘要

这个策略是一个简单的机器人,在交易所下一系列限价订单,同时允许用户控制订单大小、价格和持续时间。

我们推荐这个策略作为希望构建自己策略的开发人员的起点,它被用作开发者参考:策略中文章的参考。

🏦 支持的交易所

  • SPOT CLOB CEX

🛠️ 策略配置

参数 类型 默认 提示新配置? 提示
connector string True 输入现货连接器的名称
trading_pair string True 请输入您想在[connector]上交易的代币交易对
trade_side string buy True 将执行什么操作?(buy/sell)
target_asset_amount decimal 1 True [base_token]的总交易量是多少?
order_step_size decimal 1 True 每个单独订单的金额是多少(以基础资产计价,默认为 1)
order_price decimal True 限价订单的价格是多少?
order_delay_time decimal 10 True 每个单独订单之间您想等待多少秒?
cancel_order_wait_time decimal 60 True 在取消您的限价订单之前您想等待多长时间(以秒为单位)。
is_time_span_execution bool False False 您想为执行指定开始时间和结束时间吗?
start_datetime decimal False 请输入开始日期和时间
end_datetime decimal 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

当剩余订单数量大于 0 且指定的 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 学院以获取与此策略及其他策略相关的更多资源!