Использование выражений в построении команд



Скачать 62.04 Kb.
Дата10.05.2016
Размер62.04 Kb.

Copyright © KonKop, 2001. http://konkop.narod.ru

Глава2.
Использование выражений в построении команд.
После того, как вы научитесь составлять выражения, следующий шаг в освоении EL – научиться использовать выражения для записи команд.
Запомните: Команды всегда должны заканчиваться точкой с запятой (;)
Существует несколько способов записать команду. Первый и наиболее часто используемый, называется «IF – THEN команда». Секция IF содержит информацию о том, что должно произойти, прежде чем секция THEN будет выполнена. Логически, раздел IF всегда должен предшествовать разделу THEN.

Секция IF состоит из одного или более выражений. Например:


Close > Close[1] and Close[1] > Close[2]

Секция THEN содержит то действие, которое следует предпринять. Например:


Buy at Open

Теперь соединим вместе IF, THEN , добавим точку с запятой и получим готовую команду:



Это фрагмент системы, который открывает длинную позицию по цене открытия, когда выполнится условие двух последовательно возрастающих цен закрытия.


Типы команд.
Команды, используемые в Методике или Системе, инструктируют TradeStation, какие действия следует предпринимать. Выражение может состоять из нескольких различных слов, цифр или операторов. Одно или несколько выражений, написанных в правильном синтаксисе, в свою очередь, составляют команду. Методика или Система состоит из одной или нескольких команд.

Существуют различные команды: PLOT, PRINT, BUY, SELL, EXIT, ASSIGN, INPUT, VARIABLE, ARRAY, LOOP, SIMPLE IF-THEN, BLOCK IF, NESTED IF.

Все они имеют одну общую черту – они должны заканчиваться точкой с запятой, что означает конец команды.

Составление команд, описанное в данном разделе, применимо только в PowerEditor.


Что такое Переменные (Variables) и как они используются.
Переменная, по определению Webster, это объект, который можно изменять, символ, который может иметь бесконечное количество значений. Переменная используется для хранения результатов некоторых числовых или логических вычислений. Преимущество использования Переменной в том, что после того, как она объявлена, ей можно пользоваться, не объявляя ее заново каждый раз.

В EL существует два типа Переменных – числовые и логические. Числовые переменные хранят числа, в то время как логические переменные хранят значения Верно/Неверно.

Например, переменная Х может равняться Close бара минус 10% амплитуды бара (bar’s range). Переменная Х затем может использоваться многократно в Методике или Системе, при этом не нужно заново набирать формулу в коде.
Объявление переменной.
Перед тем, как создать и использовать Переменную, ее необходимо объявить. Имена переменных могут описывать их содержание. Например, если Переменная содержит среднее значение двух последних Close, ее можно назвать “TwoClose”. Имена Переменных не могут превышать 20 символов, не должны содержать пробелов и специфических символов. Имена Переменных могут содержать цифры, однако, цифра не может стоять в начале имени Переменной. Это значит, что все имена Переменных должны начинаться с буквы. Также, имена Переменных не могут быть словами, которые содержатся в разделе Reserved Words.

В программе PE по умолчанию объявлены 100 Числовых переменных: Value0,…Value99 и 100 Условных переменных Condition0,…Condition99. Числовые переменные, по умолчанию, имеют значение = 0, в то время как Условные переменные, по умолчанию, имеют значение False (Неверно). Если вы решите использовать эти переменные в коде, вам нет необходимости объявлять их заново. Однако, недостаток этих переменных в их недостаточной описательности.

Команда Variable Declaration (Объявление переменной) содержит имя переменной, начальное или используемое по умолчанию значение в скобках и завершающую точку с запятой. Можно объявить сразу несколько переменных, используя запятую между ними. Полное название команды объявления переменных может быть заменено в синтаксисе EL словами: Variables, Variable, Vars, или Var. Синтаксис команды выглядит следующим образом:

Variables: VariableName( Default Value );
Слово VariableName должно быть замещено соответствующим именем Переменной. Слова Default Value в скобках замещаются цифрой (например, 0) при использовании Числовой переменной, или словами False, True при использовании Условной переменной. Это делается как предупредительная мера, чтобы быть уверенным, что на первом баре переменная не будет иметь некорректное значение. Точка с запятой означает конец команды.

Команда объявления переменных должна находиться в верхней части общего свода правил.



Пример объявления Числовой переменной и присвоение ей значения.


Пример объявления Условной переменной и присвоение ей значения.



Как устанавливаются значения переменных.
Посмотрите внимательно на приведенные выше рисунки. Обратите внимание, что в обеих командах имя переменной появляется слева от знака равенства, а ее значение справа. Имя переменной никогда не может быть справа в таких командах. В настоящий момент, нас не интересует правая часть этих выражений. Данный раздел посвящен тому, чтобы убедиться в полном понимании синтаксиса команды. Синтаксис присвоения значения переменной выглядит следующим образом:

Variable Assignment Syntax: VariableName = Assignment value;
Заменим слово VariableName соответствующим именем переменной, а слово Assignment value, соответствующим выражением:

CloseCompare = Close > Close[1];

В результате, Условной переменной CloseCompare присвоено значение Close>Close[1].


Использование последних значений переменных.
В TradeStation предыдущие значения для всех переменных, Числовых и Условных, сохраняются для всех баров, не входящих в «начальный буфер MaxBarsBack». Эти значения могут использоваться в ваших Методиках и Системах.
Замечание: В начальном буфере MaxBarsBack все значения переменных равны 0. Поэтому не следует использовать значения переменных для баров, которые попадают в этот начальный буфер. Работая со значениями переменных, используйте функцию CurrentBar (Текущий бар), чтобы быть уверенным, что вы не попадаете в начальный буфер. CurrentBar присваивает значение 1 первому бару, следующему после буфера MaxBarsBack. Каждому последующему бару, функция CurrentBar присваивает возрастающее значение: 2, 3, 4, … и т.д.

Ниже представлен пример системы, которая не будет работать, потому что на первых 10 барах значения переменных еще не установлены:



Value1 = (Close + Open) /2;

If Close > Value1[10] then Buy at market;
Для того чтобы правильно записать такую систему необходим следующий код:

Value1 = (Close + Open) /2;

If CurrentBar >= 10 and Close > Value1[10] then Buy at market;
Другой вариант правильного кода:

If Close > (Close[10] + Open[10]) /2 then Buy at market;
Обратите внимание: Последний пример работает корректно, потому что не использует Переменных.

Используя Переменные, убедитесь, что CurrentBar равен или больше, чем бар, используемый для значения Переменной.


Что такое Константы (Inputs) и как они используются.
Предположим, что пользователь хочет записать Индикатор, который имеет одну линию, показывающую результат вычисления функции Average (Скользящая средняя). Функция Average требует для расчета два вида информации. Первое, необходимо знать на каком количестве баров (период) будет вестись расчет. Второе – что использовать в расчетах (обычно это цена). Предположим, пользователь не уверен, какой период вычислений лучше использовать, но он хочет работать с Индикатором и видеть его на графике с разными значениями, не возвращаясь каждый раз в PowerEditor для внесения изменений в код. Для этого существуют Константы (Inputs). Константа заменяет числовое или условное выражение (обсужденные выше). Константы повышают гибкость Методик и удобство их использования, позволяя пользователю изменять значения Констант непосредственно в TradeStation.

В EL Константы должны быть объявлены и им необходимо присвоить значения по умолчанию. Значения, присвоенные Константам в коде EL будут использоваться по умолчанию при расчетах в Методиках и Системах. Константы могут быть Числовыми (иметь числовое значение), или Условными (иметь значение Верно/Неверно). Допускается использование в Константах цен и функций. Константа не может содержать ссылок на Числовые или Условные переменные.


Объявление Констант (Inputs).
Для того чтобы объявить Константы, в зоне Input Declaration (зона объявления констант, обычно вверху свода правил), используется следующий синтаксис:

Input Declaration Syntax: Inputs: InputName( Default value );
(Слово Inputs в синтаксисе может быть заменено словом Input.) Слово InputName должно быть заменено на соответствующее имя константы. Имя константы не может превышать в длину 8 знаков, не может содержать пробелов или специальных символов. Имя константы может содержать цифры, но имя не может начинаться с цифры. Кроме того, имена констант не могут быть словами, зарезервированными в разделе Reserved Words. Слова Default Value в скобках должны быть заменены цифрой, в случае Числовой константы, или словами True или False, в случае Условной константы.

Если необходимо объявить несколько констант, они должны быть разделены запятыми. Перечень объявленных констант завершается точкой с запятой.

В зоне Inputs Declaration может быть столько строчек, сколько необходимо. Константы (Inputs) можно записывать в любом порядке.

На рисунке ниже, Константа Factor используется таким образом, что числовое значение Factor может быть заменено в программе построения графиков (TradeStation) без возврата в PowerEditor. Значение, используемое по умолчанию, показано в скобках.

Пример объявления и присвоения значения Числовой константе.

Пример объявления и присвоения значения Условной константе.



Конец 2 главы.


База данных защищена авторским правом ©bezogr.ru 2016
обратиться к администрации

    Главная страница