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

TradingView Pine Script按满足条件数量设置告警优先级的实现方法

解决方案

核心思路是用数组批量存储所有判断条件,自动统计满足条件的总数,再映射到对应告警等级,后续新增条件仅需往数组中追加即可,无需修改后续判断逻辑。

完整实现代码(Pine Script v5)

首先定义你自己的K线判断条件,可无限新增:

//@version=5
indicator("多条件优先级告警", overlay=true)
EMA34 = ta.ema(close, 34)

// 自定义判断条件,新增条件直接在这里定义即可
aa = (close > open) and (low > low[1])
bb = (close[1] > open[1]) and (close[1] > 5)
cc = (close > ((high[1] - low[1])*23.6/100 + low[1]))
dd = (close > EMA34) and (close > ta.ema(close, 10))
// 更多条件ee、ff、gg...直接按上述格式新增

批量统计+告警逻辑:

// 1. 把所有判断条件存入布尔数组,新增条件仅需在这里加一行push即可
condition_arr = array.new_bool()
array.push(condition_arr, aa)
array.push(condition_arr, bb)
array.push(condition_arr, cc)
array.push(condition_arr, dd)

// 2. 自动统计满足的条件数量、总条件数
satisfy_count = array.sum(condition_arr)
total_count = array.size(condition_arr)

// 3. 按规则匹配告警等级
alert_level = ""
if satisfy_count == total_count
    alert_level = "A"
else if satisfy_count >= 3
    alert_level = "B"
else if satisfy_count >= 2
    alert_level = "C"
else if satisfy_count >= 1
    alert_level = "D"

// 4. 触发告警(至少满足1个条件才触发)
if alert_level != ""
    alert(alert_level + "- " + str.tostring(close, "#.######"), alert.freq_once_per_bar)

扩展说明

  • 后续新增条件仅需两步:先定义新的布尔判断变量,再往condition_arr中追加一行array.push即可,总条件数会自动识别,不需要手动修改判断阈值
  • 如果后续条件总数调整,需要修改等级对应阈值,直接改if分支的判断数值即可,不需要重构整体逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 13:06:02