Pine 脚本 - 内部相乘时出现问题 "show_last"

Pine Script - Problem when multipliying inside "show_last"

我正在尝试使用 pine 脚本在 Tradingview 中创建重播模式。 但是在处理不同的时间范围并将它们同步在一起时有点麻烦。

我正在尝试使用 show_last 的 plotcandle 函数隐藏蜡烛图,但是在切换时间范围时,我还需要自动更改 show_last 数字。因此尝试将用户输入与当前时间范围分开。

例如, 如果是 1 分钟,那么我将用户输入除以 1 如果是 15 分钟,那么我将用户输入除以 15

然后我将得到所有时间范围内应该隐藏的蜡烛的确切数量

但是当我尝试使用“show_last”中的乘数时出现错误

请尽快帮忙

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © FAHEEMSAM

//@version=4
study("Replay Pro")

body = if close > open
    color.green
else if close < open
    color.red
else if close == open
    color.black

timeframe = if timeframe.period == "1"
    1
else if timeframe.period == "3"
    3
else if timeframe.period == "5"
    5
else if timeframe.period == "15"
    15
else if timeframe.period == "30"
    30
    


display = input(title="Display", type=input.integer, defval=1, minval=1) * timeframe

plotcandle(open, high, low, close, color= body, wickcolor = color.black, bordercolor = color.black)

plotcandle(open, high, low, close, color= color.white, wickcolor = color.white, bordercolor = color.white, show_last=display)

正如 plotcandle() 的 refman 条目提到的,show_last 的参数必须是“输入整数”类型,这意味着它可以使用输入值,但不能使用随后使用的值在您正在进行的计算中,因为它会变成一个“简单整数”,这对于该特定参数是不允许的。

一种解决方法,如果您可以计算出在哪些柱上开始打印,则可以为您的 ``plotcandle()` 调用使用条件值:

cond = ...
plotcandle(cond ? open : na, cond ? high : na, ...)