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_event
、process_order_failed_event
、process_order_completed_event
:订单生命周期事件的事件处理器。 -
性能指标方法:包含计算和检索与 TWAP 策略执行相关的性能指标的方法。
示例脚本¶
定义TWAPMultiplePairs策略类的v2_twap_multiple_pairs.py示例脚本展示了如何在更广泛的 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 交易机器人框架中用于算法交易策略的复杂组件。