Time Tradingview Pine脚本:如何仅绘制最后x个周期

Time Tradingview Pine脚本:如何仅绘制最后x个周期,time,pine-script,period,Time,Pine Script,Period,我只想为最后x个周期绘制一个指示器。 我该怎么做 如果我能做时间运算(从plotStartDate减去x*period),也许我可以使用以下代码: period = timeframe.ismonthly or timeframe.isweekly ? "12M" : "M" plotStartDate = timestamp(year(timenow), month(timenow), dayofmonth(timenow), 00, 00) isPlotDate = time >= p

我只想为最后x个周期绘制一个指示器。 我该怎么做

如果我能做时间运算(从plotStartDate减去x*period),也许我可以使用以下代码:

period = timeframe.ismonthly or timeframe.isweekly ? "12M" : "M"
plotStartDate = timestamp(year(timenow), month(timenow), dayofmonth(timenow), 00, 00)
isPlotDate = time >= plotStartDate
plot(isPlotDate ? mydata : na, color=mydata != mydata[1]:na, style=plot.style_line, linewidth=2)
版本1 不确定这就是你要找的。它使用
plot()

//@version=4
study("", "", true)
xPeriods = input(10)
plotStartDate = timestamp(year(timenow), month(timenow), dayofmonth(timenow), 00, 00)
isPlotDate = time >= plotStartDate
plot(isPlotDate ? close : na, show_last = xPeriods)

版本2
啊,好吧!现在只打印最后的X条(而不是最后的X周期)。所以我只需要将这个X数乘以周期内的条数。谢谢!!:-)哦,这不是我真正想要的,因为不是每个月都有相同数量的酒吧。你也知道如何在确切的时间开始时使用它吗?你的确切目的是什么?您的目标是只在对应于较高TF最后一次膨胀的图表栏上绘图吗?不确定仅从给定日期开始绘制的概念是否符合仅绘制最后n条的其他约束条件。添加了v2来回答。它从用户指定的n个月前开始绘制。结果表明,
timestamp()
能够从一个日期中减去任何月数。版本3利用了这一点,与您的第一次尝试非常相似。你很快就可以拿到小费了
//@version=4
study("Plot starting n months back", "", true)
monthsBack      = input(3, minval = 0)
monthsExtra     = monthsBack % 12
monthsExcedent  = month(timenow) - monthsExtra
yearsBack       = floor(monthsBack / 12) + (monthsExcedent <= 0 ? 1 : 0)
targetMonth     = monthsExcedent <= 0 ? 12 + monthsExcedent : monthsExcedent
targetYearMonth = year == year(timenow) - yearsBack and month == targetMonth
beginMonth      = not targetYearMonth[1] and targetYearMonth

var float valueToPlot = na
if beginMonth
    valueToPlot := high
plot(valueToPlot)
bgcolor(beginMonth ? color.green : na)
//@version=4
study("Plot starting n months back", "", true)
monthsBack = input(3, minval = 0)

targetDate = time >= timestamp(year(timenow), month(timenow) - monthsBack, 1, 0, 0, 0)
beginMonth = not targetDate[1] and targetDate

var float valueToPlot = na
if beginMonth
    valueToPlot := high
plot(valueToPlot)
bgcolor(beginMonth ? color.green : na)