#function #security #pine-script #mutable
Вопрос:
Я пытаюсь изобразить ту же фигуру с 15 минут на день. Это код для построения фигуры за 15 минут, который отлично работает;
if crossover(s3K,s3D) and s3K<25 and (s4K-s4D<3 and s4K-s4D>-3) and s4K<35//or s4D-s4K>0 and s4D-s4K<1 and s4K<50 and s1K<40
rwCross:=true
plotshape(rwCross, style = shape.arrowup, location = location.belowbar, color=color.yellow, size=size.small)
Но чтобы построить его на ежедневной основе, я пытался;
rwCrossDaily = security(syminfo.tickerid,'D', rwCross)
plotshape(rwCrossDaily, style = shape.arrowup, location = location.belowbar, color=color.yellow, size=size.small)
Что дает мне ошибку изменяемой переменной. Поэтому я попытался использовать функцию, чтобы обойти это;
rwCross_func() =>
if crossover(s3K,s3D) and s3K<25 and (s4K-s4D<3 and s4K-s4D>-3) and s4K<35//or s4D-s4K>0 and s4D-s4K<1 and s4K<50 and s1K<40
rwCross:=true
rwCrossDaily = security(syminfo.tickerid,'D', rwCross_func())
Но теперь он говорит мне, что я «Не могу изменить глобальную переменную «rwCross» в функции».
Помогите, пожалуйста!
Ответ №1:
Лучшее решение и самое чистое решение здесь-просто сделать bool из вашего состояния в его простейшей форме:
rwCross = crossover(s3K,s3D) and s3K<25 and (s4K-s4D<3 and s4K-s4D>-3) and s4K<35//or s4D-s4K>0 and s4D-s4K<1 and s4K<50 and s1K<40
rwCross, естественно, станет реальностью без «если». Таким образом, нам не нужно иметь ничего изменчивого, хотя для ситуаций, в которых мы должны, существует больше решений…
Ура!