持仓执行器
头寸执行器(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)在其著名著作 《金融机器学习进阶》 中推广的 三重屏障法。
三重屏障法是一种结构化的头寸管理方法,通过三个“屏障”决定交易结果:
- 止损:限制头寸可能产生的亏损。
- 止盈:通过设定目标卖出价格来锁定利润。
- 时间限制:限制交易可保持开放的时间长度,为退出策略增加时间维度。
此外,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 中实现需要精确进出条件策略的强大工具。通过利用三重屏障方法,它为交易管理提供了结构化且纪律严明的方法,对市商策略和方向性交易策略都至关重要。
