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

如何在Pine Script中创建可拖动竖线指标?参考JaVL指标

可拖动竖线Pine Script实现思路
  • 核心逻辑:可交互输入+持久变量锁死位置
    用input.time()创建能手动调整的时间输入控件,搭配var关键字存储竖线的时间参数——var的特性是让变量值在K线刷新时保持不变,这是拖动后位置不会重置的关键。

  • 竖线绘制与动态更新
    用line.new()生成竖线对象,通过监听输入时间的变化来同步调整位置:

    1. 用var声明竖线对象,避免每次K线刷新都重复创建新竖线
    2. 在最后一根K线(barstate.islast)触发更新,调用line.set_x1()和line.set_x2()把竖线的横坐标替换成最新的输入时间,实现拖动调整效果
  • 体验优化细节

    • 给时间输入框加明确提示,比如input.time(title="拖动调整竖线位置"),让用户一眼知道操作方式
    • 可以拓展自定义选项:用input.color()让用户选择竖线颜色,input.int()调整线条宽度,提升指标灵活性
    • 如果要做多条可拖动竖线,用数组存储每个竖线对象,通过循环批量处理更新逻辑即可
  • 极简实现代码示例

    //@version=5
    indicator("可拖动竖线", overlay=true)
    
    // 创建可拖动的时间输入项
    linePos = input.time(title="竖线位置", timestamp=timestamp("2024-01-01T00:00:00Z"))
    
    // 初始化竖线(var确保只创建一次)
    var line dragLine = line.new(x1=linePos, y1=ta.highest(100), x2=linePos, y2=ta.lowest(100), color=color.red, width=2)
    
    // 每次最后一根K线时更新竖线位置
    if barstate.islast
        line.set_x1(dragLine, linePos)
        line.set_x2(dragLine, linePos)
        // 让竖线自适应当前高低点范围
        line.set_y1(dragLine, ta.highest(100))
        line.set_y2(dragLine, ta.lowest(100))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 02:01:05