Как использовать активный таймфрейм в качестве переменной в условии?

Я хочу написать индикатор для торгового представления, который должен рисовать вертикальную линию на определенном уровне в зависимости от активного таймфрейма, например. на 5-минутном графике индикатор должен рисовать линию на другом уровне, чем на 60-минутном графике.

Я уже пробовал "разрешение". Вот фрагмент кода:

x = (resolution == "5") ? 10 : (resolution == "60") ? 20 : 30

plot(x)

Таким образом, это должно провести линию на уровне 10, если график находится на 5-минутном таймфрейме, на уровне 20 на 60-минутном таймфрейме и на уровне 30 для всех остальных таймфреймов.

Но он всегда отрисовывается на уровне 30, поэтому код должен быть неверным. Я уже исследовал, что «разрешение» является константой функции «ввода», поэтому кажется, что его нельзя использовать вне этой функции.

Итак, мой вопрос: какой правильный код? Благодарю вас!


person a kind person    schedule 30.12.2018    source источник


Ответы (2)


Для Pine Script v4 искомая переменная называется timeframe.period.

Например. '60' - 60 минут, 'D' - ежедневно, 'W' - еженедельно, 'M' - ежемесячно, '5D' - 5 дней, '12M' - один год, '3M' - один квартал

Ссылка на сосну

person Diego Ferri    schedule 13.06.2020

Я сам нашел ответ: "период"

Итак, мой пример кода должен выглядеть так:

x = (period == '5') ? 10 : (period == '60') ? 20 : 30

plot(x)
person a kind person    schedule 01.01.2019
comment
Не для версии 4 - person M at; 28.06.2021