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

TradingView Pine Script:如何让两个plotshape分两行显示?

解决方案:通过控制plotshape垂直位置实现上下排列

表格(table)无法嵌入plotshape这类绘图元素,因为二者属于不同图层:plotshape绘制在主图表层,而table是独立的单元格布局组件。正确的做法是直接通过plotshape的位置参数精确控制两个形状的垂直位置,实现正下方排列。

核心思路

  1. 用location.absolute模式配合y参数,自定义两个形状的垂直坐标。
  2. 基于同一个基准位置(比如近期最高价上方),给第二个形状设置比第一个小的y值,实现下移效果。
  3. 用ATR指标计算偏移间距,适配不同品种的价格波动,保证间距合理性。

代码示例

//@version=5
indicator("双Plotshape上下排列", overlay=true)

// ---------------------- 第一个Plotshape逻辑(替换为你的实际逻辑) ----------------------
firstCondition = close > ta.highest(close, 20)  // 示例:收盘价创20日新高
// 计算顶部基准位置:取50日最高价上方,叠加ATR避免和K线重叠
topBase = ta.highest(ta.highest(close, 50), 1) + ta.atr(10) * 0.5
// 绘制第一个形状
plotshape(firstCondition, title="顶部形状", 
          location=location.absolute, y=topBase,
          style=shape.triangleup, color=color.green, size=size.small)

// ---------------------- 第二个Plotshape逻辑(替换为你的实际逻辑) ----------------------
secondCondition = close < ta.lowest(close, 20)  // 示例:收盘价创20日新低
// 第二个形状的位置:第一个形状位置下方,用ATR的0.3倍作为间距
secondY = topBase - ta.atr(10) * 0.3
// 绘制第二个形状(正下方)
plotshape(secondCondition, title="下方形状", 
          location=location.absolute, y=secondY,
          style=shape.triangledown, color=color.red, size=size.small)

关键说明

  • 替换示例中的firstCondition和secondCondition为你自己的逻辑即可。
  • 调整ta.atr(10) * 0.5和ta.atr(10) * 0.3的乘数,可以修改形状与K线的间距、两个形状之间的间距。
  • 如果你的第一个形状原本用location.top,改成location.absolute+自定义y值后,能更精准控制位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 13:35:35