Tradingview Pine-Script: как построить только последние x периодов - PullRequest
0 голосов
/ 24 февраля 2020

Я бы хотел построить индикатор только за последние x периодов. Как мне это сделать?

Если бы я мог выполнять операции с временем (вычесть x * period из plotStartDate), возможно, я мог бы использовать этот код:

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 Ответ

2 голосов
/ 24 февраля 2020

Версия 1

Не уверен, что это то, что вы ищете. Он использует plot() параметр show_last=, чтобы ограничить число последних баров, построенных после того, как ваше ограничение isPlotDate было выполнено:

//@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

//@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)

enter image description here

Версия 3

Упрощенно:

//@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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...