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

如何在Pine Script中添加自定义起始日期的循环线条?

在Pine Script中实现指定起始日期的循环线条(可自定义宽度)

你可以通过line.new()函数配合循环语句批量创建线条,完全满足从指定起始日期生成多条线条、自定义宽度的需求。以下是具体实现代码和关键说明:

代码示例(循环垂直线条)

//@version=5
indicator("循环垂直线条", overlay=true)

// 可自定义的输入参数
startDate = input.time(timestamp("2024-01-01 00:00"), "起始日期")
lineInterval = input.int(7, "线条间隔(天)", minval=1)
lineCount = input.int(10, "线条数量", minval=1)
lineWidth = input.int(2, "线条宽度", minval=1)
lineColor = input.color(color.new(color.blue, 0), "线条颜色")

// 循环生成每条线条
for i = 0 to lineCount - 1
    // 计算当前线条的时间戳:起始日期累加间隔天数
    lineTimestamp = startDate + i * lineInterval * 86400000  // 1天=86400000毫秒
    // 创建垂直线,覆盖图表全垂直范围
    line.new(
        x1=lineTimestamp, 
        y1=chart.bottom, 
        x2=lineTimestamp, 
        y2=chart.top, 
        width=lineWidth, 
        color=lineColor,
        style=line.style_solid
    )

关键说明

  • 起始日期控制:通过input.time定义起始时间,支持可视化选择日期;
  • 循环逻辑:用for循环遍历线条数量,通过起始日期 + i*间隔毫秒数计算每条线的时间点;
  • 线条属性自定义:width参数直接控制线条宽度,还可通过style参数切换实线/虚线样式;
  • 自适应范围:用chart.bottom和chart.top确保线条始终覆盖整个图表的垂直区间,不会随K线缩放出现截断。

如果需要生成水平线,只需调整line.new()的参数:固定y值,x从起始日期到目标结束时间即可,示例如下:

// 循环水平线示例
basePrice = input.float(50000, "基准价格")
for i = 0 to lineCount - 1
    lineTimestamp = startDate + i * lineInterval * 86400000
    line.new(
        x1=lineTimestamp, 
        y1=basePrice + i*1000,  // 每条线价格递增1000
        x2=time,  // 线条延伸到当前时间
        y2=basePrice + i*1000, 
        width=lineWidth, 
        color=lineColor
    )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 10:25:15