Вы можете делать это только в реальном времени, поскольку скрипты Pine запускаются при закрытии бара на исторических барах. Такой код будет работать, чтобы вызвать предупреждение только в последних x% бара. Обратите внимание, что вам нужен отказоустойчивый barstate.isconfirmed, чтобы отловить случаи, когда скрипт не выполняется на последних x% бара, и в этом случае предупреждение будет срабатывать при закрытии бара.
//@version=4
study("")
pct = input(99.)
f_chartTimeInterval() => var _timeDelta = 10e15, _timeDelta := min(time - nz(time[1]), _timeDelta)
pctBarElapsed = 100 * (timenow - time) / f_chartTimeInterval()
cond = barstate.isconfirmed or pctBarElapsed > pct
plotchar(pctBarElapsed, "pctBarElapsed", "", location.top, size = size.tiny)