首页 > 解决方案 > 试图设置标签文本,“不能用参数调用'operator +'(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 的帮助。然而,有两件事。

使用回放模式时,它会在每个柱上绘制一个新标签,这显然是相互重叠的。如果这很重要,我已选中“无重叠标签”。

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

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) 

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

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

标签: pine-script

解决方案


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) 

推荐阅读