Как получить доступ к последним значениям индикатора - PullRequest
0 голосов
/ 14 января 2020

У меня есть индикатор, который показывает точки разворота:

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

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

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

1 Ответ

2 голосов
/ 15 января 2020

Вы можете попробовать следующий код (включая ваш оригинальный, как вы видите):

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

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

//INIT VARIABLES
var int ph_uptrend_flag = 0
var float ph_valid = 0
var float ph_valid_old = 1e99 // use any very high non meaningful number here for initialization only

ph_non_na = nz(ph,0) // stores 0's instead of na's for non-pivot-pointed bars

// re-calculate uptrend flag every time a new pivot comes in, otherwise keep last known value for uptrend flag
if ph_non_na != 0
    ph_valid := ph_non_na
    ph_uptrend_flag := ph_valid > ph_valid_old ? 1 : 0
    ph_valid_old := ph_valid
else
    ph_valid := ph_valid
    ph_valid_old := ph_valid_old

//plot uptrend flag and mark background accordingly
plot(ph_uptrend_flag,title="ph uptrend indication",linewidth=4,color=color.white)

//plot(ph,title="ph value",color=color.lime,style=8) //plot ph values (better used with overlay=true)
...