正在尝试设置标签文本,"Cannot call 'operator +' with arguments (const string, series[float])"

Trying to set label text, "Cannot call 'operator +' with arguments (const string, series[float])"

如标题所示,我正在为我试图设置的标签文本创建一个变量。我不是超级有经验,但我个人没有看到任何错误,这是什么问题?无论出于何种原因,我尝试用 'and' 替换“+”,但如果这很重要,那是行不通的。

正文如下:

labelText = 
     "8 Pair Strength by JustUncleL" + 
     "\n_____________" + "\n" +
     "\nAUD : " + AUD +
     "\nCAD : " + CAD + 
     "\nCHF : " + CHF + 
     "\nEUR : " + EUR + 
     "\nGBP : " + GBP + 
     "\nJPY : " + JPY + 
     "\nNZD : " + NZD + 
     "\nUSD : " + USD 

我不明白为什么它不起作用,但也许我是愚蠢的,错过了一些东西。

免责声明:我不是JustUncleL。

编辑:

非常感谢@e2e4 的帮助。但是,有两件事。

使用重播模式时,它会在每个条形图上绘制一个新标签,这些标签明显相互重叠。如果重要的话,我检查了 'no overlapping labels'。

经过一番尝试,这是创建标签的脚本:

if barstate.islast
label.new(bar_index, low, text = labelText, style=label.style_label_down, color=#000000, size=size.normal, textcolor=color.white, yloc=yloc.abovebar) 

另一个可能不可能的问题:

是否可以按数字从高到低自动对值进行排序?这不是严格要求的,所以如果您不知道也没关系。

AUDCAD 等是浮动变量吗?您必须使用 tostring() 函数将它们转换为字符串:

// debug
AUD = 5
CAD = 5
CHF = 5
EUR = 5
GBP = 5
JPY = 5
NZD = 5
USD = 5

labelText = 
     "8 Pair Strength by JustUncleL" + 
     "\n_____________" + "\n" +
     "\nAUD : " + tostring(AUD) +
     "\nCAD : " + tostring(CAD) + 
     "\nCHF : " + tostring(CHF) + 
     "\nEUR : " + tostring(EUR) + 
     "\nGBP : " + tostring(GBP) + 
     "\nJPY : " + tostring(JPY) + 
     "\nNZD : " + tostring(NZD) + 
     "\nUSD : " + tostring(USD) 


if barstate.islast
    label.new(bar_index, low, text = labelText, style=label.style_circle)