在TradingView里,indicator()函数是每个指标脚本的开场白,你可以把它想象成在给你的脚本办一张身份证,它决定了脚本的名称、显示位置以及各种基础行为。
通过indicator()函数,我们不仅能设定那些在图表界面上可以手动调整的选项,还能配置一些更深层次、只能通过代码触及的高级功能。indicator()函数有一堆参数可供设置,但真正必填的只有一个,那就是title。这个参数,说白了,就是给你的指标起个全名,显示在图表上。
所以,一个最简单的indicator()写法就是这样:
indicator(title="我的布林带指标")
当然一个专业的指标光有名字是不够的,我们还需要通过其他参数,来精细地定制它的行为。
举个实战中很常见的例子:我们希望指标能直接叠加在主图的K线上,而不是显示在下方的独立窗口里,同时我们还希望指标数值只保留两位小数,让图表更清爽,那么代码就可以这样写:
indicator(title="我的布林带指标", overlay=true, precision=2)
这里多说一句,调用indicator()函数时,PineScript允许你不写参数名,直接按顺序填入参数值。比如下面这样:
indicator("我的布林带指标", "MBB指标", true)
这种写法虽然代码短了,但我个人非常不推荐。为什么?因为过段时间再回来看代码,你可能早就忘了那个true到底代表什么。养成参数名=参数值的好习惯,能让你的代码逻辑清晰,一目了然,这才是专业的风格。
indicator() 参数详解
下面是indicator()函数支持的所有参数列表,不过你不用都背下来,我会告诉你哪些是常用的,哪些是特定场景下才会动用的秘密武器。
indicator(title, shorttitle, overlay, format, precision, scale,
max_bars_back, linktoseries, max_lines_count,
max_labels_count, resolution, resolution_gaps)
这里面的设置非常多,但别被吓到。实战中我们打交道最多的就是 title, shorttitle, overlay, format 和 precision 这几个。先把它们摸透,就足够你应对90%以上的场景了。
| 参数 | 描述与实战解读 |
| title (必填) | 指标的全名,会完整显示在图表上。 |
| shorttitle | 指标的简称。当指标名字太长时,用简称能让图表界面保持整洁。 |
| overlay | 定义指标显示在哪里。true表示直接叠加在主图K线上(比如均线、布林带);false 表示在下方的独立窗口中显示(比如MACD、RSI)。 |
| format | 设定指标数值的显示格式。常用的有format.price(价格格式)、format.volume(成交量格式)和 format.percent(百分比格式)。 |
| precision | 控制数值显示的小数位数。这对于保持图表清爽非常重要。 |
| scale | 指定脚本关联到哪个价格坐标轴:右轴、左轴,或者不关联。 |
| max_bars_back | 定义指标计算时,最多能回溯多少根历史K线,通常Pine Script会自动处理,你不用管。 |
| linktoseries | 强制将指标与主图表品种锁死,共享完全相同的显示区域和价格坐标轴。 |
| max_lines_count | 限制指标能画的线条数量,默认50,最大500。 |
| max_labels_count | 限制指标能创建的标签数量,默认50,最大500。 |
| resolution | 这个能让你的指标进行多时间周期计算。举个例子,你可以在15分钟图表上,通过这个参数去计算和显示日线级别的均线。 |
| resolution_gaps | 当你使用 resolution 参数进行多周期计算时,这个参数决定了如何填补不同周期数据合并时可能出现的空白。 |
学长提示
尽可能把所有配置都写在代码里,这能省去你每次加载指标到图表时,都要手动重新设置一遍的麻烦。更重要的是有些高级功能,比如多周期计算,压根就没有手动设置的入口,只能通过代码来实现。最后你必须牢记的规则:
- 每个指标脚本,都必须调用一次
indicator()函数。 - title是唯一的必填项:其他所有参数都是可选的,按需添加即可。
- 按照约定俗成的规范,
indicator()函数通常紧跟在版本声明//@version=6的下一行。 - 指标和策略的分水岭:脚本里用了
indicator(),它就是个指标;如果用的是strategy(),那它就是一个交易策略。这是两种完全不同的脚本类型。
一个规范的脚本开头,看起来应该是这样的:
//@version=6
indicator(title="我的布林带", overlay=true)


