0

I'm trying to write a simple code to get the lowest price since a given high, and the highest price since a given low. In the code below I have hard coded the "given high" and "given low" but of course that will later be dynamic as part of a larger script.

The issue is, I have gotten it to work for "highest price since given low", but the exact same code for "lowest price since given high" is not working. I get no compile error, but no labels print and all the plotchars show undefined.

Any help would be appreciated. Here is the code:

//@version=5
indicator("My script")

tmp_1 = ta.barssince(low == 19874.25)
tmp_2 = ta.highest(not na(tmp_1) and tmp_1 > 0 ? tmp_1 : 1)

l = label.new(bar_index, close, str.tostring(tmp_2), color=color.white, style=label.style_label_left)
label.delete(l[1])

plotchar(tmp_1, "tmp_1", display=display.data_window)
plotchar(tmp_2, "tmp_2", display=display.data_window)

//// Above code works perfectly fine if I comment out the code below

tmp_3 = ta.barssince(high == 20273.25)
tmp_4 = ta.lowest(not na(tmp_3) and tmp_3 > 0 ? tmp_3 : 1)

l2 = label.new(bar_index, close, str.tostring(tmp_4), color=color.white, style=label.style_label_right)
label.delete(l2[1])

plotchar(tmp_3, "tmp_3", display=display.data_window)
plotchar(tmp_4, "tmp_4", display=display.data_window)

I originally wanted simply highest_since_low = ta.highest(ta.barssince(19874.25)) but quickly realised that ta.highest needs int > 0. Hence the ternary code. Worked like a charm for the highest_since_low, so i'm completely perplexed by why its not working for lowest_since_high.

Of note, the "given high" will be fed to the script some time after it has formed, so I cannot have live calculation tracking the low since the high.

0

Browse other questions tagged or ask your own question.