blackcat1402

TradingView中的时间序列

SSE:000001   SSE Composite Index
在做算法的过程中,我发现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
Clause de non-responsabilité

Les informations et les publications ne sont pas destinées à être, et ne constituent pas, des conseils ou des recommandations en matière de finance, d'investissement, de trading ou d'autres types de conseils fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.