if

Syntax (if-expression)

plot <plot_name> = if <condition> then <expression1>
else <expression2>;



plot <plot_name> = if <condition1> then <expression1>
else if <condition2> then <expression2>
else <expression3>;

Syntax (if-statement)

plot <plot_name>;
if <condition1> [then] {
<plot_name> = <expression1>;
} else if <condition2> [then] {
<plot_name> = <expression2>;
} else {
<plot_name> = <expression3>;
}



plot <plot_name>;
if <condition1> [then] {
<plot_name> = <expression1>;
} else {
if <condition2> [then] {
<plot_name> = <expression2>;
} else {
<plot_name> = <expression3>;
}
}

Description

As a reserved word, if is used in if-expressions and if-statements to specify a conditional operator with then and else branches. Both branches are required for the operator to be valid. However, while the if-expression always calculates both then and else branches, the if-statement only calculates the branch defined by whether the condition is true or false. In thinkScript®, there is also If-function having syntax and usage different from those of the reserved word. The if-expression can also be used in other functions such as, for example, AssignValueColor, AssignPriceColor, etc. Note that you can also use a def variable instead of plot in the syntax provided above.

Example 1. Non-recursive usage

input price = close;
input long_average = yes;

plot SimpleAvg = Average(price, if long_average then 26 else 12);

plot ExpAvg;
if long_average {
ExpAvg = ExpAverage(price, 26);
} else {
ExpAvg = ExpAverage(price, 12);
}

In this example, if-expression and if-statement are used to control the length parameter of moving averages.

Example 2. Recursive usage

def myHigh;

if high > myHigh[1] {
myHigh = high;
} else {
myHigh = myHigh[1];
}

plot H = myHigh;

This example script plots the highest high value by comparing the high price with the variable myHigh. If the high price is greater, the value of myHigh is rewritten, otherwise the variable keeps its previous value as defined by the else branch.