Как мне рассчитать ряд для процентного изменения с момента появления самой левой видимой полосы?

#pine-script

#сценарий pine

Вопрос:

Я пытаюсь закодировать графики горизонтов в сценарии Pine. Однако, чтобы сделать это с пользой, мне нужен ряд данных, представляющий процентное изменение от значения первой (т. Е. Самой левой) видимой строки на экране.

Я знаю, что обычный способ построения процентного изменения — просто настроить ось y на процент, а не на цену — тогда самый левый видимый столбец всегда отображается как 0,00%. Но это не помогает в сценарии, где мне нужно выполнять дальнейшие вычисления на основе процентного изменения с момента появления самой левой строки.

Я знаю, что могу ссылаться на исторические данные, индексируя ряд для исходных данных, и изначально я думал, что смогу получить цену самого левого столбца с помощью этого. Но оказывается, что этот оператор работает в обратном направлении от самого правого столбца, чтобы использовать его, мне сначала нужно знать, сколько баров нужно отсчитать, чтобы перейти от правого края диаграммы к левому краю.

Я также знаю, что это bar_index дает индекс текущей строки, который max_bars_back может устанавливать длину буфера истории, и что var объявление инициализирует переменную только один раз, что полезно для вычисления и хранения значений, относящихся к первой строке в истории. Однако эти и все другие связанные с историей примитивы, которые я рассмотрел, похоже, работают с буфером истории, который часто отличается от части истории, отображаемой на видимой диаграмме. И я не могу найти какую-либо функцию или переменную, которая давала бы мне какие-либо данные о левой части оси x, например, ее индекс столбца или время.

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

Я что-то упускаю или просто невозможно сделать то, что я хочу в сценарии Pine?

Ответ №1:

В настоящее время в Pine нет способа определить, какая bar_index строка является самой левой в видимом диапазоне. Боюсь, вам придется прибегнуть к использованию фиксированного периода возврата.

Ответ №2:

 chart.left_visible_bar_time 
 

и

 chart.right_visible_bar_time
 

были освобождены в июне. Может представлять интерес, если все еще актуально.

Источник:
https://www.tradingview.com/pine-script-reference/v5/#var_chart {точка}left_visible_bar_timeслева