我们在2013年推出了Pine Script®,为我们的交易员提供一种编程语言,让他们可以用来构建自己的交易模型。从最重要的事情是计算和绘制RSI线的细微开始,您的建议帮助我们稳步增加您喜欢的语言。您的脚本现在可以做更多的事情:更好的回测、交易机器人的警报、改进的视觉效果、更灵活的输入、卓越的编辑体验、脚本库以及更复杂的数据结构,如阵列和矩阵。两年前我们告诉您Pine正在流行时,我们并不是在开玩笑。
Pine对象是使用type关键字声明的新用户定义复合类型(UDT)的实例。 有经验的程序员可以将UDT视为无方法类。
现在,您可以定义一个具有两个字段的pivotPoint类型来保存这些值,而不是使用像 pivotTime 和 pivotLevel 这样的独立变量来跟踪数据:
type pivotPoint
int openTime
float level
然后,您可以使用 new() 构造函数创建该类型的新对象:
newPivot = pivotPoint.new(time, high)
并使用点表示法引用对象的字段:
label.new(newPivot.openTime, newPivot.level, str.tostring(newPivot.level), xloc.bar_time)
对象的阵列或矩阵也可以使用由 UDT 构建的类型模板来定义:
pivotArray = array.new<pivotPoint>()
对象可以与所有其它Pine功能一起使用:您可以从脚本库中导出用户定义的类型,从request.security()函数请求对象,等等。例如,以前返回十个值的元组的函数现在可以返回包含十个字段的单个对象。
您可以在我们用户手册的对象页面中找到新功能的详细概述。
查看以下脚本中使用的对象:
Electrocardiogram Chart 由HeWhoMustNotBeNamed提供

ZigZag脚本库由TradingView提供,以及为使用它而重写的内置ZigZag指标:

要随时了解新的Pine Script®功能,请留意用户手册的发行说明。PineCoders帐户还通过其Telegram上的Squawk Box、其Twitter帐户,以及TradingView上的Pine Script® Q&A公共聊天广播更新。
我们希望大家发现这个高需求功能很有用。请继续向我们发送您的反馈和改进建议。我们为您打造TradingView,始终渴望收到您的来信。
还没有关注我们的中文微信公众号?快来扫二维码吧!
