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

如何在TradingView Pine Script中用三元运算符定义两日区间关系

Pine Script 两日区间关系逻辑实现方案

核心逻辑实现(嵌套三元运算符)

基于Pine Script v5版本,先获取前一日高低点,再通过嵌套三元运算符完成判断逻辑:

//@version=5
indicator("Previous Day Range Relation", overlay=true)

// 日线图场景:直接取上一根K线的高低作为前一日数据
prev_high = high[1]
prev_low = low[1]

// 嵌套三元运算符实现逻辑判断
status = close > prev_high ? "Above Previous High" : close < prev_low ? "Below Previous Low" : "Between Previous Day's Range"

// 将结果显示在K线下方
plotshape(series=true, title="Range Status", location=location.belowbar, 
          text=status, style=shape.labelup, color=color.new(color.blue, 0), 
          textcolor=color.white, size=size.small)

日内图场景适配(自然日高低点)

如果是小时/分钟等日内周期图表,需要获取自然日维度的前一日高低点,而非上一根K线数据,需改用时段函数:

//@version=5
indicator("Previous Day Range Relation (Intraday)", overlay=true)

// 获取前一个交易日常规时段的高低点
prev_day_high = ta.sessionhigh(session.regular, 1)
prev_day_low = ta.sessionlow(session.regular, 1)

// 逻辑判断逻辑保持不变
status = close > prev_day_high ? "Above Previous High" : close < prev_day_low ? "Below Previous Low" : "Between Previous Day's Range"

// 用标签动态更新显示结果
var label status_label = label.new(bar_index, low, "", yloc=yloc.abovebar)
label.set_xy(status_label, bar_index, low)
label.set_text(status_label, status)
label.set_color(status_label, color.new(color.orange, 0))
label.set_textcolor(status_label, color.white)

常见语法错误排查

  1. 三元运算符嵌套顺序错误:必须遵循条件A ? 结果A : 条件B ? 结果B : 默认结果的层级结构,不可颠倒逻辑顺序
  2. 版本语法混用:v5版本推荐使用ta.命名空间,若混用v4及更早版本的无命名空间写法会触发报错
  3. 字符串引号不统一:Pine Script支持单/双引号,但需确保同一字符串首尾引号一致
  4. 未过滤非交易日数据:日内图中需指定session.regular过滤盘前/盘后数据,避免高低点计算偏差

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:30:04