zer*_*ool 7 algorithmic-trading tradingview-api pine-script
一个console.log variables或函数结果如何pine-script?我想将pine-script脚本转换成javascript,并且要验证我要转换的脚本与原始脚本相同。如果此功能不存在,欢迎任何解决方法。谢谢!
Pin*_*ucF 53
注意:虽然这个答案的内容没有被弃用,但 Pine 用户手册现在包含一个关于调试技术的页面,解释了这个答案的大部分内容等等。
实际上有一些类似于 Pine 开发人员的控制台;它是数据窗口。我们经常使用它来调试。这个想法是这样使用的plotchar():
plotchar(bar_index, "Bar Index", "", location = location.top)
Run Code Online (Sandbox Code Playgroud)
这不会破坏指标的刻度,也不会在其中打印任何内容,但会在数据窗口中显示一个值,如PineCoders 常见问题解答关于调试的部分的第二个问题中所述。当您将鼠标移到图表栏上时,变量/表达式的相应值将显示在数据窗口中。常见问题解答解释了可用于在图表上进行调试的其他有用技术,因为这有时更有效。
我们使用AutoHotkey宏plotchar()从之前复制到剪贴板的变量或表达式创建所需的语句。这是 AHK 宏:
^+C:: SendInput plotchar(^v, "^v", "", location.top){Return}
Run Code Online (Sandbox Code Playgroud)
数据窗口也是一个很好的选择,作为需要显示许多值的脚本的显示面板,例如我们的回测和交易引擎,它广泛使用它:

Mic*_*_T. 23
pine v.4 提供了一种打印文本的新方法。您可以为此使用标签:
//@version=4
study("Print text values", overlay=true)
x = bar_index
y = close
txt = tostring(close)
label.new(x, y, txt) // print value of close
Run Code Online (Sandbox Code Playgroud)
qwe*_*guy 10
如果您只想打印单个值(不是在每个条形上),您可以执行以下操作:
if (barstate.islast)
label.new(bar_index, 0, "Your value here, ex: " + syminfo.tickerid)
Run Code Online (Sandbox Code Playgroud)
无法将pine脚本中的文本或变量打印为任何形式的“控制台”。但是您可以使用绘图在每个刻度上方或下方打印非常短的文字。但是,该文本是静态的,不能使用变量对其进行更改。
您还可以使用各种技巧在图表窗口的非常有限的指标字段(左上角)中显示值。或将线和图移出图表的可见区域,但仍会看到轴高亮显示。
请检查其Wiki,并查阅其他用户的1000脚本,以了解有关操作方法的详细信息。
小智 6
我所做的是,我使用表格来显示我想要显示的值。这在重播栏中就像魔术一样。这是一个例子:
//@version=4
study("My Script", overlay=true)
sma20 = sma(close, 20)
text = "sma 20: " + tostring(sma20)
tableColumn = 1
tableRow = 1
var table panel = table.new(position.top_right, tableColumn, tableRow)
if barstate.islast
table.cell(panel, 0, 0, text, bgcolor=color.black, text_color=color.white)
Run Code Online (Sandbox Code Playgroud)