Измените значение переменной в зависимости от временных рамок

#pine-script

Вопрос:

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

 //@version=5

indicator(title="my indicator", precision=4)

obLvl1_Line = 0.02
obLvl2_Line = 0.04

if timeframe.period == "D"
    obLvl1_Line = 0.02
    obLvl2_Line = 0.04


if timeframe.period == "240"
    obLvl1_Line = 0.006
    obLvl2_Line = 0.010


if timeframe.period == "60"
    obLvl1_Line = 0.0030
    obLvl2_Line = 0.0040
 
obLvl1_fill = hline(obLvl1_Line, color=color.new(#00bcd4, 50), linestyle=hline.style_dotted, linewidth=1) 
obLvl2_fill = hline(obLvl2_Line, color=color.new(color.green, 100), linestyle=hline.style_solid, linewidth=2)

fill(obLvl1_fill, obLvl2_fill, color=color.new(#00bcd4, 94), title="OverBought BG")

plot(obLvl1_Line) 

Ответ №1:

Оператор := должен использоваться для придания переменной нового значения. Следовательно, следует использовать каждое переназначение переменной в блоке if := .

 if timeframe.period == "D"
    obLvl1_Line := 0.02
    obLvl2_Line := 0.04

if timeframe.period == "240"
    obLvl1_Line := 0.006
    obLvl2_Line := 0.010

if timeframe.period == "60"
    obLvl1_Line := 0.0030
    obLvl2_Line := 0.0040
 

Комментарии:

1. Большое спасибо.