Почему вышла эта ошибка? «конец строки без продолжения строки»

#pine-script

Вопрос:

Я новичок в кодировании Pinescript… Я сталкиваюсь с этим сообщением об ошибке «строка 15: Несоответствующий ввод «Чао», ожидающий «конец строки без продолжения строки».»

 study("Il mio Script")
Lenght=50
SMA50=sma(close, 50)

SMA50DIV=SMA50-close

High50=highest(SMA50DIV,Lenght)

Low50=lowest(SMA50DIV,Lenght)
 

//Ошибка в следующей строке

 if close<=(SMA50)  Ciao=-(100-(100/(Low50/SMA50DIV))) else Ciao=(100-(100/(High50/SMA50DIV)))
 

//

 plot(Ciao, color=color.yellow, title="SHIFT50", linewidth=1, style=plot.style_line
 

Ответ №1:

Попробуйте использовать троичный условный оператор

 Ciao = close<=(SMA50) ? -(100-(100/(Low50/SMA50DIV))) : (100-(100/(High50/SMA50DIV)))
 

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

1. Привет, спасибо за предложения. Это работает! Я не понимаю, что было не так в моем предыдущем сценарии..

Ответ №2:

Чао Сандрино,

Ниже приведен пример вашего оригинала, отформатированный только для работы без ошибок. Я включил в сценарий несколько заметок для вас. Как сказал Густаво, тернарный оператор-отличное решение, но использование if или else тоже приемлемо. Вот как:

 //@version=4
study("Il mio Script")
Lenght=50
SMA50=sma(close, 50)

SMA50DIV=SMA50-close

High50=highest(SMA50DIV,Lenght)

Low50=lowest(SMA50DIV,Lenght)

    // first declare variable globally. You will get an error if this is not done 

Ciao = 0.0

    // then re-assign variable locally under your conditions 
    // note that 'if' and 'else' must be in separate lines with 'Ciao' having one indentation 

if close<=(SMA50)  
    Ciao := -(100-(100/(Low50/SMA50DIV))) 
else 
    Ciao := (100-(100/(High50/SMA50DIV)))

    // ternary operator is cleaner and easier for some to understand 
//Ciao = close<=(SMA50) ? -(100-(100/(Low50/SMA50DIV))) : (100-(100/(High50/SMA50DIV)))

plot(Ciao, color=color.yellow, title="SHIFT50", linewidth=1, style=plot.style_line)
 

Ура, и удачи вам в торговле и кодировании!