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

Pine Script中如何为max_bars_back添加可配置的input函数?

Pine Script:解决max_bars_back无法通过input配置的问题

为什么会报错?

indicator()函数的max_bars_back参数要求是常量整数,而input.int()返回的是可在设置面板修改的动态值,不属于常量类型,因此触发类型不匹配的报错。

解决方案

既然不能直接给max_bars_back传输入值,我们换个思路绕开限制:

  • 先给indicator()设置一个足够大的固定max_bars_back值(比如5000,覆盖你可能用到的最大需求);
  • 用input.int()创建可配置参数,限制脚本实际计算的K线范围,减少运算量以避免触发"limit exceeded"错误。

可运行的示例代码:

//@version=5
indicator('Zee Screener v2', overlay=true, max_bars_back=5000)

// 可在指标设置面板调整的参数
calc_bars_limit = input.int(1000, title="实际计算用K线数", minval=100, maxval=5000)

// 计算起始K线位置,仅在该范围内执行核心逻辑
start_calc_bar = bar_index - calc_bars_limit

if bar_index >= start_calc_bar
    // 替换为你的核心计算逻辑,示例为SMA指标
    my_sma = ta.sma(close, 50)
    plot(my_sma, color=color.blue)
else
    // 超出范围返回空值,节省运算资源
    na

逻辑说明

  1. 固定max_bars_back为足够大的常量,确保脚本能访问到所需的历史数据;
  2. 通过输入参数控制实际参与计算的K线数量,避免无意义的大量运算;
  3. 用bar_index判断当前K线是否在配置的有效区间内,仅在区间内执行计算,其余情况返回na减少资源占用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 20:06:01