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

基于Pine Script实现特定K线条件的警报与水平线绘制协助请求

Pine Script 新手需求实现:多条件触发警报+水平线绘制

需求梳理

你要触发警报或画水平线,得同时满足这三个核心条件:

  • 当前K线没突破前一根K线的高点
  • 当前K线收盘价跌破前一根K线的低点
  • 当前K线快收盘了(比如走完95%的时间)

另外你原代码里还加了个“前一根K线低点在100周期EMA上方”的条件,下面的实现会保留这个逻辑。

完整可运行代码

//@version=5
indicator("跌破前低警报工具", overlay=true)

// 计算100周期EMA
ema100 = ta.ema(close, 100)

// 定义各个触发条件
// 条件1:当前K线没突破前一根的高点(用最高价判断,确保整个K线都没碰过前高)
cond_not_break_high = high <= high[1]
// 条件2:当前收盘价跌破前一根K线的低点
cond_break_low = close < low[1]
// 条件3:当前K线已运行95%的时间(接近收盘)
bar_total_duration = time[1] - time
cond_near_close = barstate.islast and (timenow - time) / bar_total_duration >= 0.95

// 你原代码里的额外条件:前一根K线低点在100EMA之上
cond_prev_above_ema = low[1] > ema100[1]

// 所有条件同时满足才触发
trigger_all = cond_not_break_high and cond_break_low and cond_near_close and cond_prev_above_ema

// 画出100周期EMA
plot(ema100, color=color.blue, title="100周期EMA")

// 满足条件时,在前一根K线的低点画水平线
var line low_line = na
if trigger_all
    low_line := line.new(x1=bar_index[1], y1=low[1], x2=bar_index, y2=low[1], color=color.red, width=2)
else
    line.delete(low_line) // 清除旧线条,避免画面杂乱

// 设置警报触发条件
alertcondition(trigger_all, title="跌破前低警报", message="快收盘了!当前K线跌破前低且没突破前高,前低在100EMA上方")

// 保留你原代码里的背景色标记(可选,嫌乱可以删掉)
bgcolor(trigger_all ? color.new(color.green, 40) : na)

关键细节说明

  • 关于“未突破前高”:代码里用high <= high[1],是确保当前K线从开盘到现在的最高价都没超过前一根的高点,如果你只关心收盘价没突破,改成close <= high[1]就行
  • 接近收盘的判断:通过计算当前已运行时间占K线总周期的比例,95%这个数值可以自己改,比如想更早触发改成90%
  • 水平线:满足条件时会自动画在前一根的低点,非触发时会删掉旧线条,避免画面上一堆线
  • 警报:在TradingView的警报设置里选这个指标,就能收到触发通知,支持弹窗、邮件等方式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 04:45:35