使用"timeframe=D"选项时获取用户选择的时间范围



我使用的是脚本的timeframe="D"选项。这指示Pine使用每日时间框架来处理数据,无论用户从图表菜单中选择哪个时间框架。

问题是我找不到读取用户选择的的方法时间表。我尝试了三种不同的方法,都没有效果,它们都报告每天的时间框架。是的,通过使用timeframe="D"选项,我指示脚本这样做,但我仍然需要一种方法来知道用户是否从按钮菜单中选择了不同的时间框架。

如果你想尝试一下,这里是脚本。

亚历克斯

//@version=5
indicator("Timeframes", timeframe="D")
var tf = 0
// FIRST TRY
// -------------------
if (timeframe.isdaily)
tf := 1
if (timeframe.isweekly)
tf := 2
if (timeframe.ismonthly)
tf := 3
plot (tf)
// SECOND TRY
// -------------------
if (timeframe.period == "D")
tf := 1
if (timeframe.period == "W")
tf := 2
if (timeframe.period == "M")
tf := 3
plot (tf)
// THIRD TRY (the time difference between bars is the same for all timeframes: 86400000)
// -------------------
plot (time - time[1])

当您在indicator()中使用timeframe="D"时,timeframe.period将始终是D。这就是为什么你看不到变化。如果需要计算D时间范围内的所有内容,则不应该在indicator()中使用固定的时间范围,而应该使用request.security()调用来获取要在计算中使用的每日值。上面的链接包含了一个关于每日时间框架的这样一个请求的例子。当这样做时,timeframe.period将包含用户选择的图表时间框架,而您的计算将在每日时间框架上完成。

最新更新