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

Pine Script downtrend结束添加alert及barssince语法使用问题求助

实现代码

方案1:状态变量实现(推荐,逻辑直观易修改)

// 5EMA计算,若你已有定义可删除此行
fiveEMA = ta.ema(close, 5)

// 保留原有趋势启动判断逻辑
startDown = (fiveEMA < fiveEMA[1] and fiveEMA[1] < fiveEMA[2] and fiveEMA[2] < fiveEMA[3])
startUp = (fiveEMA > fiveEMA[1] and fiveEMA[1] > fiveEMA[2] and fiveEMA[2] > fiveEMA[3])

// 定义全局变量记录当前是否处于下跌趋势
var bool inDowntrend = false

// 更新趋势状态
if startDown
    inDowntrend := true
if startUp
    inDowntrend := false

// 下跌趋势结束判断:前一根K线仍在下跌趋势,当前K线已脱离下跌趋势
downtrendEnd = not inDowntrend and inDowntrend[1]

// 配置警报触发条件
alertcondition(downtrendEnd, title="下跌趋势结束", message="5EMA连续3根上行,下跌趋势已结束")

// 保留原有背景着色逻辑
bgcolor(color=startUp ? color.green : startDown ? color.gray : na)

方案2:基于barssince函数实现

fiveEMA = ta.ema(close, 5)
startDown = (fiveEMA < fiveEMA[1] and fiveEMA[1] < fiveEMA[2] and fiveEMA[2] < fiveEMA[3])
startUp = (fiveEMA > fiveEMA[1] and fiveEMA[1] > fiveEMA[2] and fiveEMA[2] > fiveEMA[3])

// 当startUp触发时,若上一次下跌趋势启动晚于上一次上涨趋势启动,说明本次startUp为下跌趋势结束节点
downtrendEnd = startUp and ta.barssince(startDown) < ta.barssince(startUp)

alertcondition(downtrendEnd, title="下跌趋势结束", message="5EMA连续3根上行,下跌趋势已结束")
bgcolor(color=startUp ? color.green : startDown ? color.gray : na)

补充说明

  • 以上代码适配Pine Script v5版本,若使用v4版本只需将ta.barssince替换为barssince即可
  • 警报创建后可在TradingView警报设置中自定义通知方式,满足不同场景需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:27:04