级别
`hline()`级别
水平线是使用 hline() 函数绘制的线。它旨在使用单一颜色绘制水平线,即它不会在不同的条形图上发生变化。 当hline() 无法满足您的需要时,请参阅plot()页面的 “水平线”部分,了解绘制水平线的其他方法 。
该函数具有以下签名:
与plot()相比, hline() 有一些限制 :
- 由于该函数的目的是绘制水平线,其
price
参数需要“输入 int/float”参数,这意味着不能使用“系列浮点数”值(例如 接近 或动态计算的值)。 - 其
color
参数需要一个“输入整数”参数,这排除了使用动态颜色,即在每个条形图上计算的颜色 - 或“系列颜色”值。 - 通过参数支持三种不同的线条样式
linestyle
:hline.style_solid
、hline.style_dotted
和hline.style_dashed
。
让我们看看 hline() 在“真实强弱指数”指标中的具体作用:
//@version=5
indicator("TSI")
myTSI = 100 * ta.tsi(close, 25, 13)
hline( 50, "+50", color.lime)
hline( 25, "+25", color.green)
hline( 0, "Zero", color.gray, linestyle = hline.style_dotted)
hline(-25, "-25", color.maroon)
hline(-50, "-50", color.red)
plot(myTSI)
注意:
- 我们显示 5 个级别,每个级别都有不同的颜色。
- 我们对零中心线使用不同的线条样式。
- 我们选择适合明暗主题的颜色。
- 指标值的通常范围是 +100 到 -100。由于 内置函数 ta.tsi()返回值在 +1 到 -1 范围内,因此我们在代码中进行调整。
级别间填充
使用hline()绘制的两个级别之间的空间 可以使用fill() 进行着色 。请记住,两个图都必须使用hline()绘制 。
让我们在 TSI 指标中添加一些背景颜色:
//@version=5
indicator("TSI")
myTSI = 100 * ta.tsi(close, 25, 13)
plus50Hline = hline( 50, "+50", color.lime)
plus25Hline = hline( 25, "+25", color.green)
zeroHline = hline( 0, "Zero", color.gray, linestyle = hline.style_dotted)
minus25Hline = hline(-25, "-25", color.maroon)
minus50Hline = hline(-50, "-50", color.red)
// ————— Function returns a color in a light shade for use as a background.
fillColor(color col) =>
color.new(col, 90)
fill(plus50Hline, plus25Hline, fillColor(color.lime))
fill(plus25Hline, zeroHline, fillColor(color.teal))
fill(zeroHline, minus25Hline, fillColor(color.maroon))
fill(minus25Hline, minus50Hline, fillColor(color.red))
plot(myTSI)
注意:
- 现在,我们已经使用了hline()函数调用的返回值
,该返回值属于
hline特殊类型。我们使用
plus50Hline
、plus25Hline
、zeroHline
和变量minus25Hline
来minus50Hline
存储这些“hline”ID,因为稍后我们将在 fill() 调用中需要它们。 - 为了生成背景颜色的浅色调,我们声明了一个
fillColor()
函数,该函数接受颜色并返回其 90 透明度。我们color
在 fill() 调用中使用该函数作为参数。 - 我们 对四个不同的级别对之间的四种不同的填充分别进行fill()调用。
- 我们在第二次填充中使用它,因为它产生的绿色比用于 25 级的
color.teal
绿色更适合配色方案。color.green