Pine Script代码报错‘Too much arguments’寻求技术解决方案
Pine Script 报错修复与需求实现
一、报错原因及修复
你写的color.new(165, 42, 42)是错误的——color.new()只接受两个参数:基础颜色和0-100之间的透明度。如果想用RGB色值,得先用color.rgb(165,42,42)生成基础颜色,再套color.new()调整透明度。
修正后的plot语句:
plot(imi, color=color.new(color.rgb(165, 42, 42), 0), linewidth=2, title="Intraday Momentum Index")
(透明度设为0是完全不透明,你可以根据需求改成0-100之间的数值)
二、实现两条水平线及区域填充
要做两条水平线并填充中间区域,用hline()创建水平线,再用fill()函数填充二者之间的区域,完整代码示例如下:
//@version=5 indicator("Intraday Momentum Index with Filled Bands", overlay=false) // 这里用RSI示例,替换成你实际的IMI计算逻辑 imi = ta.rsi(close, 14) // 定义两条水平线 upper_band = hline(70, "Upper Band", color=color.blue) lower_band = hline(30, "Lower Band", color=color.blue) // 填充两条线之间的区域,透明度设为80避免遮挡指标线 fill(upper_band, lower_band, color=color.new(color.rgb(165,42,42), 80), title="Filled Zone") // 绘制IMI指标线 plot(imi, color=color.new(color.rgb(165, 42, 42), 0), linewidth=2, title="Intraday Momentum Index")
关键说明:
hline():用来创建固定数值的水平线,参数依次是线的数值、标题、颜色fill():传入两个水平线对象,设置填充颜色和透明度,这样不会完全挡住下面的指标线- 记得把示例里的
ta.rsi(close,14)换成你自己的IMI计算代码
内容的提问来源于stack exchange,提问作者Chinmaya Parida
相关产品推荐
相关产品推荐

