头寸执行器
PositionExecutor: 管理相等数量的开仓和平仓,确保投资组合保持平衡 ± 头寸的盈利或亏损。它适用于永续合约和现货市场,在现货市场中需要预先拥有资产。
PositionExecutor 使用一个配置对象 PositionExecutorConfig 来管理订单下单后的情况,遵循 三重屏障方法。此配置设置预定义的止损、止盈、时间限制和移动止损参数。
class TripleBarrierConf(BaseModel):
# Configure the parameters for the position
stop_loss: Optional[Decimal]
take_profit: Optional[Decimal]
time_limit: Optional[int]
trailing_stop_activation_price_delta: Optional[Decimal]
trailing_stop_trailing_delta: Optional[Decimal]
# Configure the parameters for the order
open_order_type: OrderType = OrderType.LIMIT
take_profit_order_type: OrderType = OrderType.MARKET
stop_loss_order_type: OrderType = OrderType.MARKET
time_limit_order_type: OrderType = OrderType.MARKET
关键配置:
stop_loss
:确定止损百分比take_profit
:设置止盈百分比。time_limit
:为交易建立时间限制。trailing_stop_activation_price_delta
:指定激活移动止损的差值。trailing_stop_trailing_delta
:设置移动止损的跟踪差值。
示例:
PositionExecutor 类实现了在 Martin Prado 著名书籍 Advances in Financial Machine Learning 中普及的 三重屏障方法。
三重屏障方法是一种结构化的头寸管理方法,其中三个"屏障"决定交易结果:
- 止损:限制头寸的潜在损失。
- 止盈:通过指定目标退出价格来锁定利润。
- 时间限制:限制交易可以保持开放的持续时间,为退出策略添加时间维度。
此外,PositionExecutor
还包含一个 移动止损 机制,它会在有利的价格变动发生时动态调整止损水平。
现货与永续行为¶
PositionExecutor
类设计为在现货和永续合约交易所中都可工作,允许您编写可在任一类型上使用的策略:
- 在永续合约交易所中,它们应用以下描述的止盈和止损水平来管理创建后的多头或空头头寸。
- 在现货交易所中,它们下达止盈和止损订单来管理订单成交后的头寸。这类似于 挂单 但针对单个订单级别。
配置¶
PositionExecutor
通过基于 PositionConfig
执行订单来参与市场。它按如下方式应用三重屏障方法:
triple_barrier_confs = TripleBarrierConf(
stop_loss=stop_loss,
take_profit=take_profit,
time_limit=time_limit,
trailing_stop_activation_price_delta=trailing_stop_activation_price_delta,
trailing_stop_trailing_delta=trailing_stop_trailing_delta,
)
止损¶
当价格向头寸不利方向移动超过指定阈值时触发。
止盈¶
当价格达到代表预期利润的预设水平时触发。
时间限制¶
当达到时间限制时,头寸将被平仓或执行相反的交易。
移动止损¶
移动止损在经过一定时间后评估头寸,并可能平仓以避免市场变动或衰减。
trailing_stop_activation_price_delta
:激活移动止损所需的价格变动。trailing_stop_trailing_delta
:作为移动止损维护在价格后方的距离,随价格有利变动而调整。
执行流程¶
以下是 PositionExecutor
与三重屏障方法结合操作的简化流程:
PositionExecutor
基于解释市场数据的策略信号启动头寸- 它持续监控市场价格并将它们与定义的屏障进行比较。
- 如果价格触及止盈或止损水平,
PositionExecutor
将执行交易以相应平仓。 - 追踪止损会随着价格向有利方向移动而调整,提供一种动态风险管理工具。
- 时间限制屏障确保头寸不会无限期保持开启状态,解决了市场条件随时间变化的风险。
结论¶
PositionExecutor
是 Hummingbot 内一个强大的工具,用于实施需要精确进出条件的策略。通过利用三重屏障方法,它提供了结构化和纪律性的交易管理方法,这对于做市和方向性交易策略都至关重要。