我有这段代码,适用于 Pinescript v5,但我无法让它绘制标签。
因此,它的作用是从数据收盘时提取技术数据,然后将其与指定范围内的过去 500 天的先前技术数据进行比较,以识别具有相似技术的相似日期并给出平均值那些日子的范围。
该指标效果很好,我遇到的问题是,我希望它在每个已识别的日期上方绘制一个标签以及该天的范围。这是有问题的区域:
for i = 0 to array.size(t_input_arr) - 1
push(bar_array, barr_count + 1)
if array.get(t_prev_arr, i) >= t_input - thresh and array.get(t_prev_arr, i) <= t_input + thresh
push(r_max_arr, hitoop[i])
push(r_min_arr, optolo[i])
push(cltoop_max_arr, cltoop[i])
push(time_arr, time[i])
bullish_r += array.get(bullish_arr, i)
bearish_r += array.get(bearish_arr, i)
cltoop_r += array.get(cltoop_arr, i)
hitoop_r += array.get(hitoop_arr, i)
lotoop_r += array.get(optolo_arr, i)
piv_hi += array.get(piv_hi_arr, i)
piv_lo += array.get(piv_lo_arr, i)
r_hi_max := array.max(r_max_arr)
r_lo_max := array.max(r_min_arr)
r_hi_min := array.min(r_max_arr)
r_lo_min := array.min(r_min_arr)
time_r := array.get(time_arr, i)
co_max := array.max(cltoop_max_arr)
co_min := array.min(cltoop_max_arr)
instances += 1
t_input 代表正在评估的技术(它的范围可以是 MFI、RSI、Stoch 等,具体取决于输入类型)。您可以看到我添加了 bar_array 和 barr_count 来尝试解决该问题,但它不起作用。
所以我尝试通过“时间”函数引用,但没有运气,我尝试了时间戳,再次没有运气。 稍微起作用的是 bar_array,它会为数组中的每个值添加一个值,因此它会在每个数组存储的值上缓慢增加 1:(即 1、2、3、4、5)。
由于指标在数组的第二部分中过滤掉了数组数据,因此数组大小变小,只显示相关变量,因此在 bar_array 中,我希望将其用作该位置的索引通过执行以下操作来数组:
label.new(bar_index - array.get(bar_array, i), High, text = "test", color = color.lime)
我并不是真正的程序员,对 Pinescript 也没有太多经验,所以如果有任何帮助,我将不胜感激!
也许尝试创建一个标签数组并使用它。
var label [] LABELARRAYMULTILABELS = array.new_label()
//FIRST LABEL
if close >= close[1]
array.push(LABELARRAYMULTILABELS, label.new(bar_index, high, text = str.tostring(close), color= color.green))
//SECOND LABEL
if close < close[1]
array.push(LABELARRAYMULTILABELS, label.new(bar_index, high, text = str.tostring(close), color= color.red))
//ONLY DELETE LABELS IF THEY REACH A MAX NUMBER
if array.size(LABELARRAYMULTILABELS) > 2
label.delete(array.shift(LABELARRAYMULTILABELS))
```