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

为何Pine Script中label.new仅显示最近约50根K线的标签?

问题描述

我希望在每根K线上方显示标签,因此使用了以下代码:

label.new(bar_index, high, style=label.style_none, text=str.tostring(bar_index))

但发现标签仅在最近约50根K线(从该位置到最新K线)上显示,更早的K线完全没有标签。请问这是为何?我是否遗漏了某些设置?

解决方案

这是因为Pine Script默认限制了标签的最大创建数量,默认值为50。每当新K线生成时,旧标签会被自动清理,只保留最新的50个,所以你只能看到近期的标签。

有两种解决方式:

  • 调整全局标签数量限制
    在Pine Script编辑器的「设置」面板中,找到「Label limit(标签数量限制)」选项,直接调高允许的标签总数即可。这个方法操作简单,适合不需要精细控制的场景。

  • 手动管理标签生命周期(更灵活)
    使用数组存储所有创建的标签,自定义保留的标签数量,超过上限时删除最早的标签,避免自动清理:

    //@version=5
    indicator("全K线标签", overlay=true)
    
    // 用数组存储所有标签
    var label[] label_list = array.new_label()
    
    // 创建新标签并加入数组
    current_label = label.new(bar_index, high, style=label.style_none, text=str.tostring(bar_index))
    array.push(label_list, current_label)
    
    // 设置最大保留标签数,超过则删除最早的
    max_keep_labels = 1000
    if array.size(label_list) > max_keep_labels
        oldest_label = array.shift(label_list)
        label.delete(oldest_label)
    

注意:不要设置过大的标签数量,否则会拖慢图表加载和运行性能,根据实际需求调整即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 17:55:46