Операторы и выражения
Оператор – это символ или слово, которое представляет собой операцию. Существуют различные виды операторов: строковые, математические, относительные и логические операторы.
Строковые операторы. В языке TL существует единственный оператор, которые позволяет объединять строковые выражения в одно. Для этого используется знак «+». Например:
«Торговая стратегия» + «это основа успеха»
В результате мы получим одно строковое выражение, которое будет иметь значение «Торговая стратегия это основа успеха».
Математические операторы. Математические операторы (+, -, *, /) используются для выполнения четырех основных математических действий – сложения, вычитания, умножения и деления. Математические операторы являются важным инструментом при построении выражений. Например, при определении размера бара можно использовать математический оператор «–»:
High – Low;
Относительные операторы. Специальные символы, необходимые для сравнения двух элементов – это: больше, меньше, равно, больше или равно, меньше или равно и не равно.
Например: H[0] < H[2] High текущего бара меньше, чем High два бара назад. C > C[1] Close текущего бара больше чем Close три бара назад. V <= V[1] Volume текущего бара меньше или равно Volume предыдущего бара. O >= Close[2] Open текущего бара больше или равно Close два бара назад. H <> H[1] High текущего бара не равно High предыдущего бара. O crosses above H[1] Open текущего бара превысило High предыдущего бара. L[1] crosses below O Low предыдущего бара больше, чем Open текущего бара.
В примере были использованы некоторые зарезервированные слова и способы обращения к прошлым данным.
Логические операторы. Такие операторы объединяют несколько простых выражений в одно более сложное. К этим операторам относятся слова AND и OR.
Оператор AND осуществляет так называемое логическое умножение выражений, которые он объединяет. Итоговое выражение будет верным только в том случае, когда верны все выражения, которые объединяются оператором AND. Если хотя бы одно из выражений будет неверно, то итоговое выражение также будет неверно. Например: Volume > 20000 AND Volume < 50000
Здесь объем должен быть больше 20 000 и меньше 50 000 для того, чтобы итоговое выражение было верным. Если одно из двух условий не выполняется, итоговое выражение является неверным.
Оператор OR осуществляет так называемое логическое сложение выражений. Он предъявляет менее строгие требования к итоговому выражению: оно будет неверным только в том случае, когда неверны все выражения, объединяемые оператором OR. Если хотя бы одно из выражений верно – итоговое выражение будет верным. Например:
Low < Low[1] OR Close > High[1]
Здесь Low текущего бара должен быть меньше Low предыдущего или Close текущего бара должен быть больше High предыдущего бара, чтобы итоговое выражение было верным. Если оба условия не выполняются, то итоговое выражение неверно.
Для облегчения понимания сущности логических операторов воспользуйтесь таблицей:
Где True – выражение верно, False – выражение неверно.
Иерархия операторов. Использование скобок. Когда в числовом выражении используются несколько операций, они выполняются в определенном порядке. При выполнении используется следующий порядок: если две операции или более являются операциями одного уровня, они выполняются слева направо; операции разного уровня выполняются в последовательности определяемой иерархией.
Иерархия операторов (сверху вниз, по важности): ? Скобки ? Умножение и деление ? Сложение и вычитание ? <, >, =, <=,>=, <> ? AND ? OR
Порядок операций может быть изменен с помощью скобок. Операции в скобках выполняются в первую очередь. Внутри скобок действует обычный порядок. Например, в выражении 10 + (5 – 3) сначала вычисляется разность в скобках: 5 – 3 = 2, а затем происходит сложение: 10 + 2 = 12. Например, в выражении
Open + 0.5 * (Close[3] – Open[3])
сначала вычисляется разность в скобках:
Close[3] – Open[3] = X
Затем выполняется умножение:
X * 0,5 = Y
И в последнюю очередь выполняется сложение:
Open + Y
Когда в выражении несколько скобок, вычисления начинаются с внутренних скобок. В выражении 5 * (3 * (2+4)) сначала вычисляется 2 + 4 = 6 , затем 3 * 6 = 18 , и наконец 5 * 18 = 90.
В TL не могут употребляться оба слова AND и OR, если они не разделены скобками. |