Получение постоянного значения из ряда - PullRequest
0 голосов
/ 27 мая 2020

Я хочу присвоить переменной постоянное значение. Это значение взято из ряда. Значение равно 10 барам назад и должно оставаться постоянным, если нет нового бара.

Я пробовал этот код и множество его вариантов, но он не работал.

//@version=4
study(title = "X", overlay = false)

var x = 0.0
x := valuewhen(barstate.islast, sum(cht_acum[10], 10), 1)

plot(x, title = "X")

У меня нет прямой линии, или я получаю NA. Как решить проблему?

1 Ответ

0 голосов
/ 28 мая 2020

Версия 1

Трудно понять, что вы хотите. Это может быть близко. Вы можете использовать Входы для построения графика только на последнем столбце:

//@version=4
study(title = "X", overlay = false)
cht_acum = close
plotOnLastBarOnly = input(false)
x = sum(cht_acum[10], 10)
plot(barstate.islast or not plotOnLastBarOnly ? x : na, title = "X")

Версия 2

В этой версии используется блестящая функция Sum() от alexgrover, найденная в Функции, разрешающие серию как Длина - PineCoders FAQ , который принимает длину серии. Должно быть ближе к вашим потребностям:

//@version=4
study("")
Sum(src,p) => a = cum(src), a - a[max(p,0)]
cond = rising(close, 30)
sourceSeries = 1.
var count = 0.
if cond
    count := 1.
else
    count := min(10, count + 1)
total = Sum(sourceSeries, count)
plot(total)
plotchar(cond, "cond", "•", location.top, size = size.tiny)

введите описание изображения здесь

...