You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在追踪止损(trailing stop)触发时添加警报(alert)?

追踪止损触发时添加警报的实现方法

你当前的代码里,alert() 是在开仓时触发的,并非追踪止损触发时的警报。下面给你两种实现追踪止损触发警报的实用方法:

方法一:直接在 strategy.exit 中配置警报

这是最简洁的方式,利用 strategy.exit 自带的参数直接指定追踪止损触发时的警报:

strategy.entry("Long", strategy.long, comment="Long")
// 保留开仓时的警报(如果不需要可以删除)
alert("TRL Long", alert.freq_once_per_bar_close)

// 修改strategy.exit,添加追踪止损专属警报
strategy.exit("Exit", "Long", 
    trail_price = close[1], 
    trail_offset = 0,
    alert_message = "追踪止损触发:多单平仓",
    alert_condition = strategy.exit_condition.trail, // 仅追踪止损触发时发警报
    alert_freq = alert.freq_once_per_bar_close
)

关键说明:

  • alert_condition = strategy.exit_condition.trail 确保只有追踪止损触发平仓时才发送警报
  • alert_message 可自定义警报内容,方便快速识别触发原因
  • alert_freq 控制警报发送频率,避免同一信号重复推送

方法二:通过检查平仓原因触发警报

如果需要更灵活的逻辑(比如根据不同平仓原因发送不同警报),可以用交易平仓记录判断触发原因:

// 原有开仓与止损逻辑
strategy.entry("Long", strategy.long, comment="Long")
alert("TRL Long", alert.freq_once_per_bar_close)
strategy.exit("Exit", "Long", trail_price = close[1], trail_offset = 0)

// 检查最新平仓是否由追踪止损触发
if strategy.closedtrades > 0
    last_exit_reason = strategy.closedtrades.exit_reason(strategy.closedtrades - 1)
    if last_exit_reason == strategy.exit_reason.trail
        alert("追踪止损触发:多单已平仓", alert.freq_once_per_bar_close)

关键说明:

  • strategy.closedtrades 获取已完成平仓的交易总数
  • strategy.closedtrades.exit_reason() 提取指定平仓交易的触发原因
  • 当原因匹配 strategy.exit_reason.trail 时,触发自定义警报

内容的提问来源于stack exchange,提问作者Mel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 06:21:37