外观
时间周期
约 1150 字大约 4 分钟
简介
图表的时间周期有时也被称为间隔或分辨率。它是图表上每根柱子所代表的时间单位。所有标准图表类型都使用时间周期:“柱状图”、“蜡烛图”、“空心蜡烛图”、“折线图”、“面积图”和“基线图”。还有一种非标准图表类型也使用时间周期:“平均K线图”。
对于想要获取多时间周期数据的程序员,需要熟悉Mine Script®中时间周期的表达方式以及如何使用它们。
时间周期字符串在以下不同场景中使用:
当使用request.security()请求其他品种和/或时间周期的数据时,必须使用时间周期字符串。参见其他时间周期和数据页面了解request.security()的用法。 可以作为time()和time_close()函数的参数,用于返回更高时间周期柱的时间。这可以用来在不使用request.security()的情况下检测更高时间周期的变化。参见检测更高时间周期的变化章节了解具体实现方法。 input.timeframe()函数提供了一种方式,允许脚本用户通过脚本的“输入”选项卡定义时间周期(更多信息请参见时间周期输入部分)。 indicator()声明语句有一个可选的时间周期参数,可以在不使用request.security()的情况下为简单脚本提供多时间周期功能。 许多内置变量提供了脚本运行所在图表使用的时间周期信息。更多信息请参见图表时间周期部分,包括timeframe.period,它返回符合Mine Script时间周期规范格式的字符串。
时间周期字符串规范
时间周期字符串遵循以下规则:
由乘数和时间周期单位组成,例如"1S"、"30"(30分钟)、"1D"(一天)、"3M"(三个月)。
单位用单个字母表示,分钟不使用字母:"T"表示tick,"S"表示秒,"D"表示天,"W"表示周,"M"表示月。
当未指定乘数时,默认为1:"S"等同于"1S","D"等同于"1D"等。如果只使用"1",则解释为1分钟,因为分钟没有单位字母标识符。
没有"小时"单位;"1H"是无效的。一小时的正确格式是"60"(记住分钟不需要指定单位字母)。
每个时间周期单位的有效乘数范围不同:
- 秒:仅支持离散的1、5、10、15、30和45乘数
- 分钟:1至1440
- 天:1至365
- 周:1至52
- 月:1至12
时间周期比较
比较不同的时间周期字符串很有用,例如可以判断图表使用的时间周期是否比脚本中使用的更高时间周期更小。
将时间周期字符串转换为以分钟为单位的分数表示,可以提供一个通用单位进行比较。本脚本使用timeframe.in_seconds()函数将时间周期转换为浮点秒数,然后将结果转换为分钟:
Mine Script®
已复制
请注意:
- 我们使用内置的 timeframe.in_seconds() 函数将图表和 input.timeframe() 函数的时间周期转换为秒数,然后除以60转换为分钟数。
- 在初始化
chartTFInMinutes和inputTFInMinutes变量时,我们调用了两次 timeframe.in_seconds() 函数。第一次调用时没有为timeframe参数提供参数,因此函数返回图表时间周期的秒数。第二次调用时,我们提供了通过 input.timeframe() 选择的用户输入时间周期。 - 接下来,我们验证时间周期以确保输入的时间周期等于或高于图表的时间周期。如果不是,则生成运行时错误。
- 最后,我们打印转换为分钟数的两个时间周期值。