如何在Pinescript中为系列字符串输入添加复选框选项



我想弄清楚如何允许以交叉样式格式绘制序列字符串,但将其作为复选框函数。不幸的是,我找不到任何资源来提供这种用例的例子,所以让我们创建一个。

首先,这里有一个工作的标准输入字符串的例子,当绘制时,它可以作为一个选项启用。

testfunction = sma(rsi, 7)
show_testfunction = input(false, "Show testfunction", type=input.bool)
plot(show_testfunction ? testfunction : na, "Test Function", color.white, transp=30, linewidth=2)

然而,当想要对一个系列字符串使用相同类型的复选框选项时,如果它允许style=plot.cross_style,我会遇到以下错误:

Syntax error at input 'series'.

我写了以下代码来获得问题:

测试函数系列=sma(rsi,3(

show_testfunctionseries = input(false, "Show series testfunction", type=input.bool)
plot(show_testfunctionseries ? series=testfunctionseries : na, "Test Function Series With Cross Style",  style=plot.style_cross, color.white, transp=30, linewidth=2)

以下是在没有复选框选项的情况下绘制同一行代码时的工作方式:

plot(series=testfunctionseries, style=plot.style_cross, color=color.purple, title="Testfunction Series Cross", transp=70, linewidth=2)

此外,我希望这个线程对那些不知道这些类型函数的pine开发人员有帮助。

参数名称series=使用错误。应该将整个表达式show_testfunctionseries ? testfunctionseries : na传递给series=,以便代码正常工作。以下是代码应该如何正确编译:

//@version=4
study("My Script")
rsi = rsi(close, 14)
testfunctionseries = sma(rsi, 3)
show_testfunctionseries = input(false, "Show series testfunction", type=input.bool)
plot(series = show_testfunctionseries ? testfunctionseries : na, title = "Test Function Series With Cross Style",  style=plot.style_cross, color=color.white, transp=30, linewidth=2)

注意,我还在其中添加了title=color=。一旦使用关键字引用参数(在本例中为series=(,就不能再在同一函数调用中使用位置参数,必须使用关键字编译代码。只有当所有位置参数都在第一个关键字参数之前时,才能同时使用位置参数和关键字参数:

plot(show_testfunctionseries ? testfunctionseries : na, "Test Function Series With Cross Style",  style=plot.style_cross, color=color.white, transp=30, linewidth=2)

最新更新