跳至内容

TWAP 执行器

TWAPExecutor 是在 Hummingbot 交易框架内实现时间加权平均价格(TWAP)执行策略的一个类。该策略通过将大额订单拆分为多个小额订单,并在指定时间段内以固定间隔执行,从而最小化市场冲击。以下是 TWAPExecutor 类的主要组件和功能概述:

关键组件:

类继承与初始化TWAPExecutor 类继承自 ExecutorBase,表明它是一种具有额外 TWAP 策略执行逻辑的专用执行器。其初始化参数包括策略、配置、更新间隔和最大重试次数。

日志记录:使用 Hummingbot 的日志机制来记录信息、警告和错误。

配置与验证:接收一个 TWAPExecutorConfig 对象作为配置,该对象定义了 TWAP 策略的参数,例如使用的连接器、交易对、订单数量、订单间隔和订单金额。同时还会验证订单金额是否满足交易对的最低要求。

订单计划创建:根据配置生成订单应何时下达的计划(create_order_plan),初始时将时间戳映射为 None,之后会被实际的 TrackedOrder 对象替换。

  • 订单执行与管理

  • 在下单前验证余额是否充足。

  • 根据订单计划动态创建订单,并在订单执行或需要刷新时更新计划。
  • 处理订单创建、完成和失败事件,以按照 TWAP 策略管理每个订单的生命周期。
  • 在提前停止或关闭时可取消未成交的订单。

控制任务:一个异步控制任务(control_task),用于评估创建、刷新和完成订单的条件,并重试失败的订单。

性能指标:计算诸如已成交数量、交易盈亏(PnL)、平均成交价、累计手续费以及净盈亏等性能指标。

关键功能:

  • create_order_plan:生成订单执行的时间表。

  • validate_sufficient_balance:确保有足够的余额来执行计划中的订单。

  • control_task:异步评估各种条件,以管理订单执行的生命周期。

  • create_order:根据订单计划的当前状态和执行参数创建新订单。

  • process_order_created_eventprocess_order_failed_eventprocess_order_completed_event:处理订单生命周期事件的事件处理器。

  • 性能指标方法:包含用于计算和获取与 TWAP 策略执行相关的性能指标的方法。

示例脚本

示例脚本 v2_twap_multiple_pairs.py 定义了 TWAPMultiplePairs 策略类,展示了如何在更广泛的 Hummingbot 策略环境中使用 TWAPExecutor,特别是用于同时在多个交易对上执行 TWAP(时间加权平均价格)交易。该脚本说明了在可部署于 Hummingbot 的策略中使用 TWAPExecutor 功能所需的设置与协调流程。

class TWAPMultiplePairsConfig(StrategyV2ConfigBase):
    script_file_name: str = Field(default_factory=lambda: os.path.basename(__file__))
    candles_config: List[CandlesConfig] = []
    controllers_config: List[str] = []
    markets: Dict[str, Set[str]] = {}
    position_mode: PositionMode = Field(
        default="HEDGE",
        client_data=ClientFieldData(
            prompt=lambda mi: "Enter the position mode (HEDGE/ONEWAY): ",
            prompt_on_new=True
        ))
    twap_configs: List[TWAPExecutorConfig] = Field(
        default="binance,WLD-USDT,BUY,1,100,60,15,TAKER",
        client_data=ClientFieldData(
            prompt=lambda mi: "Enter the TWAP configurations (e.g. connector,trading_pair,side,leverage,total_amount_quote,total_duration,order_interval,mode:same_for_other_config): ",
            prompt_on_new=True))
  • 继承自 StrategyV2ConfigBase,表明它是一个能够处理多个交易对和执行器的复杂策略。

  • 通过一个包含连接器的字典和特定于策略的配置(TWAPMultiplePairsConfig)进行初始化。

  • 定义了执行 TWAP 订单的配置参数,包括多个交易对的详细信息、仓位模式以及 TWAP 执行器配置(twap_configs)。

  • 使用验证器将 TWAP 配置从字符串格式解析并验证为 TWAPExecutorConfig 对象,确保每个配置都符合预期参数,例如连接器名称、交易对、交易方向、杠杆、以报价货币计的总金额、总持续时间、订单间隔以及执行模式(如 MAKER 或 TAKER)。

结论:

TWAPExecutor 类旨在按照 TWAP 策略执行订单,通过将大额订单拆分为多个小额订单并在一段时间内分布执行,以减少市场冲击。它包含了用于调度订单、管理订单生命周期以及计算执行表现的复杂逻辑,是 Hummingbot 交易机器人框架中用于算法交易策略的一个高级组件。