Как определить последнее значение индикатора

У меня есть индикатор, который рисует опорные максимумы и минимумы на графике:

leftBars  = input(3)
rightBars = input(3)
ph = pivothigh(high, leftBars, rightBars)
pl = pivotlow(low, leftBars, rightBars)

Как я могу определить, какое из них произошло последним (чтобы установить это как текущее значение индикатора)?


person cody    schedule 14.01.2020    source источник


Ответы (1)


Для этой цели можно использовать переменную. pivothigh() и pivotlow() возвращают NaN, если в этой точке нет опорной точки. Итак, вы можете проверить, не является ли значение Nan, что означает наличие новой точки разворота.

//@version=4
study("Find last pivot", overlay=false)
leftBars  = input(3)
rightBars = input(3)

var lastPivot = 0    // Use "var" so it will keep its latest value
ph = pivothigh(high, leftBars, rightBars)
pl = pivotlow(low, leftBars, rightBars)

if (not na(ph))      // New pivot high
    lastPivot := 1
else
    if (not na(pl))  // New pivot low
        lastPivot := -1

// Now, you can check lastPivot's value to see what type of pivot you had last
// lastPivot = 1  -> Pivot high
// lastPivot = -1 -> Pivot low

plot(series=lastPivot, color=color.red, linewidth=2)

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

Как видите, значение lastPivot колеблется между 1 и -1, и его значение остается неизменным до тех пор, пока не появится новая опорная точка.

person Baris Yakut    schedule 14.01.2020
comment
Вы также знаете, как я могу сравнить цены любого PH или PL в серии (чтобы узнать, восходящий или нисходящий тренд)? - person cody; 14.01.2020
comment
Как выглядит ваш алгоритм сравнения? Может быть, задать новый вопрос. - person Baris Yakut; 14.01.2020