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

如何让TradingView中橙色回归线自动从图表起始处开始?

如何让橙色回归线自动从图表起始位置绘制(自动计算K线数量替代手动输入)

我希望橙色回归线能自动从图表的起始位置开始绘制,目前需要手动计算图表上现有K线的数量并输入到设置里。我尝试了两段代码来计算K线数量,现在想知道能不能实现这个自动化流程。

我当前使用的代码如下:

var int total_candles = 0
if barstate.islast
    total_candles := bar_index + 1

numBars2 = math.sum(total_candles,2)
numBars = int(numBars2)
numBars // type series int

使用以下代码也能得到相同结果:

start = input.time(timestamp('1800-01-01'), title='Start calculations',group='Backtest Period')
end=input.time(timestamp('2050-01-01'), title='End calculations',group='Backtest Period')
temps = time >= start and time <= end

var numCandles = array.new_int()
array.push(numCandles, 0)

if temps
    array.push(numCandles, 1)

int result = 0
for [index, value] in numCandles
    if value == 1
        result := result+1
    result

解决方案

完全可以实现自动化,无需手动输入数值,以下是优化后的实现方案:

1. 简化K线数量计算

你当前的计算逻辑可以大幅简化,直接利用Pine Script内置的bar_index即可高效获取K线数量:

  • 全局图表总K线数(从加载的第一根K线到最新K线):
    var int total_candles = na
    if barstate.islast
        total_candles := bar_index + 1  // bar_index从0开始,总数量需+1
    
  • 指定时间范围内的K线数:
    start = input.time(timestamp("1800-01-01"), title="Start calculations", group="Backtest Period")
    end = input.time(timestamp("2050-01-01"), title="End calculations", group="Backtest Period")
    in_range = time >= start and time <= end
    
    var int total_in_range = 0
    if in_range
        total_in_range += 1
    

2. 自动绘制从起始位置出发的回归线

假设你使用ta.linreg函数计算回归线,只需将回溯周期设置为计算得到的总K线数,就能让回归线自动从图表起始位置开始绘制:

// 计算全局总K线数
var int total_candles = na
if barstate.islast
    total_candles := bar_index + 1

// 自动计算并绘制橙色回归线
orange_regression = ta.linreg(close, total_candles, 0)
plot(orange_regression, color=color.orange, title="橙色回归线", linewidth=2)

这段代码会让回归线始终从图表加载的第一根K线开始计算,无需手动输入任何数值;实时行情中,新K线生成时total_candles会自动更新,回归线范围也会同步调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 07:52:52