Я просто хочу разрешить замену переменной на графике, но получаю сообщение об ошибке.
не может вызвать с аргументами ошибка , которую вы продолжаете получать с этим кодом, потому что один из аргументов plot()
не в принятом формате.
Если мы посмотрим на функцию plot()
, мы увидим, что она принимает следующие значения, каждое со своим собственным типом:
series
(серия)
title
(постоянная строка)
color
(цвет)
linewidth
(целое число)
style
(целое число)
transp
(целое число)
trackprice
(bool)
histbase
(с плавающей точкой)
offset
(целое число)
join
(bool)
editable
(const bool)
show_last
(const integer)
Теперь вот как ваш код вызывает plot()
:
cr20style = cr20_50up ? 1 : 2
plot(d1, title='%K SMA20', color=cr20_50_color, transp=0,style=cr20style)
Проблема в том, что здесь мы устанавливаем аргумент style
не целым числом, а серией. Это потому, что cr20style
установлен условно на 1
или 2
. И хотя это правда, что это серия целых чисел, эта серия все еще отличается от обычного целого числа в TradingView Pine.
Это также, к сожалению, означает следующее: вы не можете установить стиль функции plot()
условно.
Вероятно, лучший обходной путь для вашего кода - создать два графика, каждый со своим стилем. А затем отключить построение графиков на основе cr20style
. Например:
plot(cr20style == 1 ? d1 : na, title='%K SMA20',
color=cr20_50_color, transp=0,style=1)
plot(cr20style == 2 ? d1 : na, title='%K SMA20',
color=cr20_50_color, transp=0,style=2)