blackcat1402

TradingView中的时间序列

SSE:000001   上证综合指数
在做算法的过程中,我发现TradingView本质上的方便之处就在于其推荐的数据类型是时间序列,当然,你也可以选择数组,但是数组本身就丧失了时间信息。这种方式可以说对于交易来说是最有好的数据类型。当然,你如果不熟悉TradingView的松树脚本,也可以选择Python,Python也有各种各样的时间序列处理函数库,但是大多数都是用于机器学习和人工智能的。比如说中国国内比较有名的飞桨TS:PaddleTS。但是,我主要是以交易为目的,飞桨TS对我来说过于无法高效快速地表达一些转瞬即逝的交易想法,所以,我个人还是更喜欢用TradingView的松树脚本。松树脚本的强大功能很大程度上源于它旨在高效处理时间序列(Series)的事实, 我的很多私有库函数并不是基于数组实现而是基于时间序列。当然,我也在考虑做一些高级的基于数组类型的库函数。在TradingView中,时间序列是脚本用于存储变量随时间的连续值的基本结构,其中每个值都与一个时间点相关联。由于金融图表由很多K线组成,每个K线代表一个特定的时间点,因此时间序列是处理可能随时间变化的值的理想数据结构。

另外,时间序列的概念与TradingView松树脚本的执行模型和类型系统概念密切相关。了解这三者是充分利用TradingView脚本写算法的关键。例如,采用TradingView内置的close变量,其中包含数据集中每个K线的“收盘”价格,该数据集是任何给定图表上的所有K线。如果脚本在 5 分钟图表上运行,则收盘时间序列中的每个值都是连续 5 分钟图表K线的“收盘”价格。当脚本引用close时,它指的是脚本正在执行的K线的“收盘”价格。为了引用时间序列中的过去值,可以使用“”历史引用运算符。当脚本在给定K线上执行时,指前一个收盘K线close时间序列的值。虽然时间序列可能会让人想起数组,但它们是完全不同的。TradingView脚本确实使用了数组数据结构,但它与时间序列是完全不同的概念。例如:TradingView脚本中的时间序列与其特殊类型的运行时引擎和内置函数相结合,使得无需使用for循环来计算所有K线收盘价之和的操作而只需使用ta.cum(close)。 因为虽然ta.cum(close 在脚本中看起来相当静态,但实际上它是在每一根K线上执行的,因此随着每个新K线的收盘值被添加到其中,它的值变得越来越大。当脚本到达图表最右边的K线时,ta.cum(close)返回图表上所有K线的收盘值之和。所有K线上的相同循环逻辑应用于函数调用,例如plot(close)将在每个K线上重复的函数调用,在图表上连续绘制每根K线的收盘价。

Avoid losing contact!Don't miss out! The first and most important thing to do is to join my Discord chat now! Click here to start your adventure: discord.com/invite/ZTGpQJq 防止失联,请立即行动,加入本猫聊天群: discord.com/invite/ZTGpQJq
免责声明

这些信息和出版物并不意味着也不构成TradingView提供或认可的金融、投资、交易或其它类型的建议或背书。请在使用条款阅读更多信息。