Условия – Robo.trading

Условия

Оператор if

Оператор if определяет блок операторов, который будет выполняться, когда условное выражение if вычисляется как true, и, опционально, альтернативный блок, который будет выполняться, когда выражение false.

Общая форма записи кода:

<var_declarationX> = if <condition>
<var_decl_then0>
<var_decl_then1>
...
<var_decl_thenN>
else if [optional block]
<var_decl_else0>
<var_decl_else1>
...
<var_decl_elseN>
else
<var_decl_else0>
<var_decl_else1>
...
<var_decl_elseN>
<return_expression_else>

где:

  • var_declarationX— этой переменной присваивается значение if оператора в целом.
  • condition— если условие истинно, то логика из блока then сразу же следует за первой строкой if (var_decl_then0, var_decl_then1 и т. д.), Если условие ложно, используется логика из блока else var_decl_else0, var_decl_else1 и.т.д.).
  • return_expression_then, return_expression_else— последнее выражение из блока then или из блока else будет определять конечное значение всего оператора if.
  • Тип возвращаемого значения оператора if определяется типом return_expression_then и return_expression_else. Их типы должны совпадать. Невозможно вернуть целочисленное значение из блока then, если блок else возвращает строковое значение.

Пример:

// This code compiles
x = if close > open
close
else
open
// This code doesn't compile
x = if close > open
close
else
"open"

Можно опустить блок else. В этом случае, если условие ложно, переменной var_declarationX будет присвоено пустое значение (na, false или «»).

Пример:

x = if close > open
close
// If current close > current open, then x = close.
// Otherwise the x = na.

Можно использовать либо несколько else блоков, либо ни одного вообще.

Пример:

x = if open > close
5
else if high > low
close
else
open

then else if и другие блоки сдвигаются на четыре пробела [1]. if операторы могут быть введены путем добавления еще четырех пробелов:

x = if close > open
b = if close > close[1]
close
else
close[1]
b
else
open

Можно и довольно часто игнорировать результирующее значение оператора if (var_declarationX = может быть опущен). Эта форма используется, когда необходим побочный эффект выражения, например, в торговле стратегиями:

if (crossover(source, lower))
strategy.entry("BBandLE", strategy.long, stop=lower,
oca_name="BollingerBands",
oca_type=strategy.oca.cancel, comment="BBandLE")
else
strategy.cancel(id="BBandLE")
/

Robo.Trading

eVe Developer
Мы используем cookie-файлы для наилучшего представления нашего сайта. Продолжая использовать этот сайт, вы соглашаетесь с использованием cookie-файлов.
Принять