如何获得当前蜡烛上经过的时间比例的分数?

How to get the proportion of time that has passed on current candle as a fraction?

我正在尝试获取在当前蜡烛的当前图表分辨率下已经过去的时间比例。例如,在每小时的时间范围内,如果蜡烛上的当前剩余时间是 45 分钟,那么我想计算“0.25”,因为当前蜡烛的完整 60 分钟已经过去了 15 分钟。

我查看了文档 https://www.tradingview.com/pine-script-docs/en/v4/essential/Sessions_and_time_functions.html 中与时间相关的函数,但找不到执行此操作的方法。

有没有我遗漏的变量?感觉这应该是可能的,实际上我需要的三个变量中的两个已经存在,但最后一个不存在。下面显示了如何获取蜡烛的剩余毫秒数,但无法(我能找到)将其除以当前时间范围的总毫秒数。

timenow - time

但我想要:

(timenow - time) / "timeframe"

我找到了一种方法,它不是很漂亮,但它解决了我的特殊问题;

getTimeframeMillis() =>
    switch(timeframe.period)
        "1" => 60000
        "3" => 180000
        "5" => 300000
        "15" => 900000
        "30" => 1800000
        "60" => 3600000
        "120" => 7200000
        "240" => 14400000
        "D" => 86400000
        "W" => 604800000
        "M" => 2419200000

然后我就用那个了;

remainingPortion = (timenow - time) / getTimeframeMillis()

而且我需要确保 calc_on_every_tick = true 也包含在策略注释中,以便每秒更新一次值,而不是等到蜡烛结束。