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
相关产品推荐
相关产品推荐

