我们写指标,不仅要算得准,还得看得清。
input.color() 函数就是Pine Script提供的、用来在输入面板上创建颜色选择器的工具 。
你可能会问:我直接在脚本设置的样式标签页改颜色不就行了?
样式标签页只能修改 plot() 这类基础绘图的颜色。
但如果你想让用户自定义条件背景色 (bgcolor)、动态标签 (label.new) 的颜色,或者任何通过代码逻辑动态生成的颜色,样式标签页是无能为力的。
这时input.color() 就是你唯一的、也是最专业的解决方案 。它能让你做到:
- 让用户自由设置所有绘图、背景、标签的颜色 。
- 在代码中对用户选择的颜色进行再加工,比如增加透明度 。
- 通过
if语句或条件操作符,根据不同的市场状态,调用不同的颜色输入变量 。
input.color() 的参数和其他输入函数类似,我帮你按实战重要性分了组:
1. 核心参数 (必用)
defval:(必填) 默认颜色 。这里非常灵活。你不仅能用标准颜色(如color.yellow),还能用十六进制(#AAF0D1),RGB 值(color.rgb(210, 94, 35)),甚至是带透明度的颜色(color.new(color.orange, 20))。title:(强烈建议) 输入项的名称,即显示在设置面板上的标签,如"均线颜色"。
2. 布局与提示 (提升专业度)
tooltip:鼠标悬停在“i”图标上时,显示的详细帮助文本 。group:分组标题,用于组织多个相关的输入项 。inline:内联ID,用于将多个输入项显示在同一行 。
重要提醒: 所有这些参数(如 defval, title 等)的值,都必须是常量(写死的值),不能是动态的变量 。
实战代码示例
基础示例:配置 plot 颜色
我们先来看一个最基础的用法:让用户自定义一条均线的颜色。
plotColour = input.color(color.teal, title="绘图颜色")
plot(ta.wma(close, 20), color=plotColour, title="WMA")
现在用户就可以在设置面板里,通过绘图颜色这个选项,把这条WMA均线改成他们想要的任何颜色。
像
title=这样的关键字,我建议你始终明确写上。这不仅能让代码更清晰,也能避免在参数顺序上出错。
进阶示例:创建动态背景色(视觉交易系统)
这才是 input.color() 真正大放异彩的地方。我们将创建三个颜色输入,分别代表“看涨”、“看跌”和“中性”,然后根据均线和价格的关系,动态地切换图表背景。
//@version=6
indicator(title="颜色输入示例", overlay=true)
// --- 1. 创建颜色输入 ---
bullColor = input.color(color.new(color.green, 85), title="看涨背景")
sideColor = input.color(color.new(color.blue, 90), title="中性背景")
bearColor = input.color(color.new(color.red, 85), title="看跌背景")
// --- 2. 计算 ---
fastAverage = ta.sma(close, 9)
slowAverage = ta.sma(close, 21)
plot(fastAverage, color=color.orange, title="快线均线")
plot(slowAverage, color=color.blue, title="慢线均线")
// --- 3. 根据条件,选择颜色 ---
backgroundColour = if close > slowAverage and fastAverage > slowAverage
bullColor
else if close < slowAverage and fastAverage < slowAverage
bearColor
else
sideColor
// --- 4. 应用颜色 ---
bgcolor(backgroundColour, title="趋势背景")
在这个脚本中,bgcolor() 函数的颜色是由 backgroundColour 变量决定的,而这个变量的值又来自我们的三个 input.color() 输入。
这就是 input.color() 的专业用法,你为用户提供了可配置的视觉元素,而不是把颜色写死在代码里。这不仅让你的脚本更灵活,也让它看起来更“高级”。
总结
input.color() 函数是为你脚本的输入面板添加颜色选择器的工具,它不仅是方便,更是必需。因为它是唯一能让用户自定义动态颜色(如 bgcolor 和 label.new)的途径 。它的 defval(默认值)非常灵活,支持标准色、十六进制、RGB 乃至透明色 color.new() 。善用 group 和 tooltip,能让你的颜色设置更清晰、更易用。


