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

如何在TradingView中绘制不受品种切换影响的永久水平线?

解决TradingView品种独立永久水平线的问题

你遇到的核心问题是:用hline创建的线条属于指标的全局参数,所有品种共用同一套设置,切换品种或修改参数时,所有品种的线条都会同步变化。要实现每个品种独立保留专属水平线,可以用以下两种方案:

方案一:手动使用绘图工具(最简单)

  • 点击图表顶部工具栏的「水平线」图标,直接在图表上绘制线条
  • 设置好价格、颜色、样式后,右键点击线条选择「保存到图表布局」
  • 每个品种单独保存对应的布局,切换品种时加载对应布局即可保留专属线条

方案二:用Pine Script v4实现品种独立的自动水平线

通过persistent参数让每个品种的价格设置独立保存,结合动态线条对象实现永久保留,脚本示例如下:

//@version=4
study("品种独立永久水平线", overlay=true)

// 开启persistent,让每个品种的价格参数单独存储
price1 = input(0.4, title="水平线1价格", persistent=true)
price2 = input(0.6, title="水平线2价格", persistent=true)
price3 = input(1.0, title="水平线3价格", persistent=true)

// 用var变量保存线条对象,避免重复创建
var line line1 = na
var line line2 = na
var line line3 = na

// 在最后一根K线更新线条位置,确保显示正常
if barstate.islast
    // 初始化或更新线条1
    if na(line1)
        line1 := line.new(bar_index-100, price1, bar_index, price1, color=color.yellow, style=line.style_dashed, width=1)
    else
        line.set_xy1(line1, bar_index-100, price1)
        line.set_xy2(line1, bar_index, price1)
    
    // 初始化或更新线条2
    if na(line2)
        line2 := line.new(bar_index-100, price2, bar_index, price2, color=color.red, style=line.style_dashed, width=1)
    else
        line.set_xy1(line2, bar_index-100, price2)
        line.set_xy2(line2, bar_index, price2)
    
    // 初始化或更新线条3
    if na(line3)
        line3 := line.new(bar_index-100, price3, bar_index, price3, color=color.purple, style=line.style_dashed, width=1)
    else
        line.set_xy1(line3, bar_index-100, price3)
        line.set_xy2(line3, bar_index, price3)

plot(close)

脚本原理说明

  • persistent=true:让input参数为每个品种单独保存,切换品种时,不同品种的价格设置互不干扰
  • var关键字:确保线条对象只在第一次加载时初始化,不会随K线刷新重复创建
  • line.new和line.set_xy:动态创建并更新线条位置,保证线条始终显示在当前可视范围内

内容的提问来源于stack exchange,提问作者Alfredo Rodriguez Gomez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 15:10:37