По существу, в thinkScript есть три формы использования if
. Все три формы также требуют ветки else
. Одна форма позволяет устанавливать или отображать одно или несколько значений. Два других позволяют установить или вывести на график только одно значение.
- Оператор
if
: может установить одно или несколько значений для plot
или def
переменных в квадратных скобках.
def val1;
plot val2;
if (cond) {
val1 = <value>;
val2 = <value>;
} else {
# commonly used options:
# sets the variable to be Not a Number
val1 = Double.NaN;
# sets the variable to what it was in the previous bar
# commonly used for recursive counting or retaining a past value across bars
val2 = val2[1];
}
if
выражение: универсальное выражение для установки значения. Можно установить только одно значение на основе условия, но его можно использовать в других операторах. Эта версия обычно используется для рекурсивного подсчета элементов на полосах и для отображения разных цветов, например, в зависимости от условия.
def val1 = if <condition> then <value if true> else <value if false>;
if
функция: аналогична приведенной выше, но более компактна, это версия троичного условного оператора в thinkScript(r). Разница в том, что значения true и false должны быть двойными значениями. Следовательно, его нельзя использовать, скажем, для установки цветов или других элементов, которые не представляют двойные значения.
def var1 = if(<condition>, <value if true>, <value if false>);
Следующий пример изменен из документа thinkScript API для функции if
a> демонстрирует использование всех трех версий. Я добавил вторую переменную, чтобы продемонстрировать, как оператор if
может одновременно устанавливать несколько значений на основе одного и того же условия:
# using version 3, "if function"
plot Maximum1 = if(close > open, close, open);
# using version 2, "if expression"
plot Maximum2 = if close > open then close else open;
# using version 1, "if statement", with two variables, a `plot` and a `def`
plot Maximum3;
def MinimumThing;
if close > open {
Maximum3 = close;
MimimumThing = open;
} else {
Maximum3 = open;
MinimumThing = close;
}
В качестве примечания, хотя в примере это не показано, можно использовать ключевое слово def
, а также ключевое слово plot
для определения значений переменных с этими операторами.
person
leanne
schedule
01.04.2021