Forex / Форекс Инвестиции, доверительное управление, интернет трейдинг – NEUIMEX ::Обучение MQL : MQL Support
NEUIMEX TEAM
   
FOREX FUTURES CFD's АНАЛИТИКА

EN | DE
Компания
Главная страница
О компании
Международные офисы
Клиентам
Открыть счёт
Демо счёт
Конкурс Трейдеров
Пополнить счёт
Отзыв средств
жуковский ул солнечная
мебель раменское
кредит под залог
Платформы
NEXTT Trading Terminal
NEXTT Signal Base
NEXTT PDA Terminal
Как связаться
Обратная связь
Швейцария >>
Германия >>
Россия >>

MQL II Support
Советиники Форма Заказа

Содержание | назад | далее   
 

Язык программирования MetaQuotes Language II используется при написании собственных программ-экспертов (expert advisors) для автоматизации контроля торговых процессов, а также для реализации собственных торговых стратегий. MetaQuotes Language II прост в изучении, использовании и отладке. В состав MQL II включено большое количество переменных, необходимых для контроля текущих и прошлых котировок, основные арифметические и логические операции, встроены основные индикаторы и команды по открытию позиций и контролю над ними. По синтаксису похож на язык программирования EasyLanguage от TradeStation Technologies, Inc., однако есть некоторые отличия.

Для написания кода программы используется текстовый редактор экспертов MetaEditor, умеющий выделять цветом различные конструкции языка MQL II, позволяя пользователю легче ориентироваться в тексте экспертной системы. Комментарии начинаются с символов //(двойной слеш). Также комментарии можно выделять парой 'слеш-звёздочка' - 'звёздочка-слеш' (/*[comments]*/ как в языке программирования Си). Встроенный редактор выделяет комментарии серым цветом.

Пример программы эксперта

Для отладки и контроля работающей стратегии ведется лог-файл, где сохраняется информация о сгенерированных сигналах, вывод переменных и результаты проведения сделок. Логи работы экспертов находятся в файле /logs/YYYYMMDD.log в каталоге Neurex Direct. Доступ к текущему логу возможен прямо из нижнего окна "Terminal" (вкладка Journal).

Просмотр отчетов работы системы

В качестве справочной системы по языку MQL II используется окно MetaQuotes Language Dictionary, вызываемое при нажатии на кнопку Dictionary либо из меню Tools. Краткий справочник содержит разбитые на категории функции, операции, зарезервированные слова etc и позволяет узнать описание каждого используемого элемента, входящего в язык.

Список функций

1. Основные языковые конструкции

Как любой другой язык, MQL II имеет набор основных компонентов, которые составляют его основу. Эти компоненты должны быть организованы и построены определенным образом, чтобы составлять правильные предложения и выражения.

Основным объектом языка являются данные. Данные могут быть 3 типов : числовые, логические или строковые. Все числовые значения имеют формат double. Логические данные могут принимать значения True или False. Строка - это набор символов, выделенный апострофами. Строка символов может называться также текстовой строкой. Данные могут храниться в переменных соответствующих типов, либо могут быть непосредственно представлены в исходном тексте программы.

Предложение (MetaQuotes Language statement) представляет собой законченную инструкцию. Предложения могут содержать зарезервированные слова, операторы, данные, переменные, выражения, знаки пунктуации и всегда заканчиваются знаком ';' (точка с запятой, semicolon). Зарезервированными словами будем называть предопределённые слова, имеющие специфическое значение или специальное назначение. Операторами называются символы, представляющие собой обозначение неких операций над данными, переменными и (или) выражениями. Переменные необходимы для хранения числовых, строковых или логических данных. Выражением будем называть комбинацию зарезервированных слов, переменных, данных, операторов, результатом которой является значение одного из 3 используемых в языке типов: числовое, логическое либо строка символов. Знаки пунктуации используются для представления выражений, определения параметров, разделения слов либо для переупорядочения последовательности вычислений.

2. Знаки пунктуации

ЗнакНазваниеОписание
;semicolonЗавершает инструкцию MetaQuotes Language II
( )parenthesesГруппируют значения в выражении для изменения порядка вычислений. Выделяют параметры в функциях и инициализирующие выражения в описании переменных. Выделяют инициализирующее значение для переменных и массивов в секции описания переменных.
,commaРазделяет параметры при вызове функций. Разделяет переменные в секции описания переменных. Разделяет числа в описании размерности массивов. Разделяет индексы при доступе к элементам массива.
:colonИспользуется в секции описания переменных в качестве начала списка переменных.
" "quotation marksВыделяют текстовую строку (строку символов).
[ ]square bracketsВыделяют числа при определении размерности массива. Выделяют числа (индексы) при доступе к какому-либо элементу массива. Выделяют номер периода при доступе к "историческим" данным.
{ }curly bracketsОператорные скобки. Могут использоваться вместо begin…end. Выделяют набор инструкций в блок.
/* */comment bracketsВыделяют комментарии.
//double slashОпределяет начало однострочного комментария.

3. Операторы

Операторы делятся на 6 групп: оператор присваивания, строковый оператор, математические операторы, относительные операторы, логические операторы, операторы инкремента и декремента.

3.1. Оператор присваивания

Для назначения переменным какого-либо значения (числового, строкового или логического, в зависимости от типа переменной) используется оператор присваивания '=' (знак равенства). Присваиваемое значение может быть результатом выражения. Пример:
Variable: Counter(0);

Counter = Counter + 1;

В результате переменной Counter будет присвоено значение 1. Присваивать значения можно также и элементам массива.

Примечание: знаком равенства обозначается также и оператор сравнения "равно". В логических выражениях If-Then и While знак равенства воспринимается как оператор сравнения.

3.2. Строковый оператор

Для манипулирования текстовыми строками имеется всего один оператор '+' (знак плюс). Он обеспечивает объединение двух строк. Пример:
Variable: String(" ");

String = "some_" + "text";

В результате переменная String будет содержать текстовую строку "some_text". Допускается также объединение строк с числовыми и логическими значениями. В этом случае перед объединением числовые и (или) логические значения будут приведены к строковому типу. Пример:
String = "string" + 1;

В результате переменная String будет содержать текстовую строку "string1".
В качестве операндов могут выступать не только значения, но и переменные соответствующих типов, содержащие такие значения, а также выражения, результатом выполнения которых, будут такие значения.

3.3. Математические операторы

Четыре основных математических действия: сложение - '+' (знак плюс); вычитание - '-' (знак минус); умножение - '*' (звёздочка); деление - '/' (слеш). Используются в математических выражениях для вычисления числовых значений.
Примеры математических выражений:
( Ask + Bid ) / 2 , High[1] + 20 * Point


3.4. Относительные операторы

Используются для сравнения двух значений одного и того же типа. Первое значение сравнивается со вторым, в результате чего формируется логическое значение True (истина) или False (ложь). Меньше - '<' (левая угловая скобка); больше - '>' (правая угловая скобка); равно - '=' (знак равенства); не равно - '<>'; меньше или равно - '<='; больше или равно - '>='; 'crosses over'; 'crosses under'.

Логические значения, полученные в результате сравнительного выражения, используются в управляющих структурах MetaQuotes Language II. Пример:
If FreeMargin < 1000 Then Exit;

Результат сравнительного выражения может быть присвоен логической переменной (переменная, которая может принимать значения True или False). Так как знак равенства обозначает одновременно и оператор присваивания, и относительный оператор "равно", то в данном случае, для преодоления неоднозначности, в качестве относительного оператора "равно" необходимо использовать '==' (два знака равенства подряд), как это принято в языке программирования Си. Пример:
ConditionValue = OrderValue(cnt,VAL_TYPE) == OP_SELL;

Текстовые строки сравниваются в лексикографическом порядке. То есть строка "aaa" меньше строки "zzz". При сравнении логических значений следует иметь в виду, что числовым значением логического значения True является 1, а значением False - 0.

Для сравнения данных, хранящихся в массивах можно использовать операторы 'crosses over' (синоним 'crosses above') и 'crosses under' (синоним 'crosses below'). Эти операторы используются для сравнения пары подряд идущих значений одного массива с парой значений другого массива.
'crosses over' - текущее значение больше и предыдущее значение меньше или равно;
'crosses under' - текущее значение меньше и предыдущее значение больше или равно. Пример:
If Close[0] crosses over0] Then Alert("Close price crosses overprice!");

3.5. Логические операторы

Позволяют комбинировать логические значения. Логическое ИЛИ - '|' (вертикальная черта, broken bar); логическое И - '&' (амперсант); логическое НЕТ - '!' (восклицательный знак). Логическим операторам соответствуют зарезервированные слова OR, AND, NOT. Пример:
If FreeMargin > 100 and FreeMargin < 1000 then print( "Free margin is ", FreeMargin );


Заметим, что операции OR и AND являются двухместными, то есть оперируют с двумя значениями. Операция же NOT является одноместной, то есть, применима только к одному значению. Пример:
Variable: Condition1( True );

Condition1 = FreeMargin >= 1000;
If not Condition1 then exit;

Также логическое НЕТ может быть применено к сравнительному оператору "равно". Такая конструкция будет воспринята компилятором как оператор "не равно".

Ниже приведём таблицы результатов логических операций.

Значение1Значение2Значение1 OR Значение2
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse
Значение1Значение2Значение1 AND Значение2
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse
Значение1Значение2NOT Значение1
True False
False True


3.6. Операторы инкремента и декремента

Эти операторы изменяют значение числовой переменной. В этом смысле они аналогичны оператору присваивания. В сочетании с переменной такой оператор представляет собой законченное выражение, поэтому не может быть использован внутри другого выражения.
Инкремент единицы - "++"; декремент единицы - "--"; инкремент числового выражения - "+="; декремент числового выражения - "-="
Примеры:
Counter++; // same as Counter = Counter + 1;
Counter--; // same as Counter = Counter - 1;
Counter -= 10; // same as Counter = Counter - 10;
По аналогии с инкрементом и декрементом числового выражения можно использовать операторы "*=" и "/=". Примеры:
SomeNumber *= 7; // same as SomeNumber = SomeNumber * 7;
SomeNumber /= 11; // same as SomeNumber = SomeNumber / 11;
Справа от операторов "+=", "-=", "*=", "/=" должно находиться любое числовое выражение.

4. Зарезервированные слова

В MetaQuotes Language II существует несколько групп зарезервированных слов.
1. Логические и относительные операции (logical and relational operations).
AND, NOT, OR.
crosses over, crosses above, crosses under, crosses below.


2. Команды языка MQL II (commands).
Array, Begin, Break, Case, Continue, Default, Define, Downto, Else, End, Exit, For, If, Input, Otherwise, Switch, Then, To, Variable, While.

Зарезервированные слова, определяющие состав команд языка, называются также ключевыми словами (keywords).

3. Встроенные функции (built-in functions).
Abs, AccName, AccountName, Alert, ArcCos, ArcSin, ArcTan, Ceil, CloseOrder, Comment, Cos, CurTime, Day, DayOfWeek, DelArrow, DeleteOrder, DelGlobalVariable, DelObject, Exp, FileClose, FileDelete, File FileReadNumber, FileReadString, FileSeek, FileSize, FileTell, FileWrite, Floor, GetGlobalVariable, GetIndexValue, GetIndexValue2, GetTickCount, Highest, Hour, iAC, iAD, iADX, iADXEx, iAlligator, iAO, iATR, iBands, iBandsEx, iBearsPower, iBullsPower, iBWMFI, iCCI, iCCIEx, iCustom, iDeMarker, iEnvelopes, iForce, iFractals, iGator, iIchimoku, iMA, iMAEx, iMACD, iMACDEx, iMFI, iMom, iMomEx, iOBV, iOsMA, iRSI, iRSIEx, iRVI, iSAR, iSTO, iWPR, IsDemo, IsFileEnded, IsFileLineEnded, IsGlobalVariable, IsIndirect, IsTesting, IsTradeAllowed, LastTradeTime, Log, Lowest, MarketInfo, Max, Min, Minute, Mod, ModifyOrder, Month, MoveObject, Normalize, NumberToStr, Ord, OrderValue, Period, Pow, Print, PrintTrade, Return, Rand, Round, Seconds, ServerAddress, SetArrow, SetDebugMode, SetGlobalVariable, SetIndexValue, SetIndexValue2, SetLoopCount, SetObjectText, SetOrder, SetText, Sin, Sqrt, Srand, StrToTime, Symbol, Tan, TimeDay, TimeDayOfWeek, TimeHour, TimeMinute, TimeMonth, TimeSeconds, TimeToStr, TimeToStrEx, TimeYear, UserFunction, Year.


4. Предопределённые пользовательские переменные (user defined variables).
Lots, StopLoss, TakeProfit, TrailingStop.


5. Предопределённые переменные торгового терминала (predefined variables).
AccNum, AccountNumber, Ask, Balance, Bars, Bid, Close, Credit, Equity, FreeMargin, High, Low, Margin, Point, PriceAsk, PriceBid, PriceHigh, PriceLow, PriceTime, Time, TotalProfit, TotalTrades, Volume.


6. Предопределённые параметры встроенных функций (macros).
MODE_CLOSE, MODE_DETAILS, MODE_EMA, MODE_FILE, MODE_FIRST, MODE_GATORJAW, MODE_GATORLIPS, MODE_GATORTEETH, MODE_HIGH, MODE_KIJUNSEN, MODE_LWMA, MODE_LOW, MODE_LOWER, MODE_MAIN, MODE_MINUSDI, MODE_ MODE_PLUSDI, MODE_SECOND, MODE_SENKOUSPAN, MODE_SENKOUSPANA, MODE_SENKOUSPANB, MODE_SIGNAL, MODE_SMA, MODE_SMMA, MODE_STOPLOSS, MODE_TAKEPROFIT, MODE_TENKANSEN, MODE_TIME, MODE_UPPER, MODE_VALUES, MODE_VOLUME, OBJ_FIBO, OBJ_HLINE, OBJ_SYMBOL, OBJ_TEXT, OBJ_TRENDLINE, OBJ_VLINE, OP_BUY, OP_BUYLIMIT, OP_BUYSTOP, OP_SELL, OP_SELLLIMIT, OP_SELLSTOP, PRICE_CLOSE, PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN, PRICE_ PRICE_TYPICAL, PRICE_WEIGHTED, SEEK_CUR, SEEK_END, SEEK_SET, STYLE_SOLID, STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT, SYMBOL_ARROWDOWN, SYMBOL_ARROWUP, SYMBOL_CHECKSIGN, SYMBOL_STOPSIGN, SYMBOL_THUMBSDOWN, SYMBOL_THUMBSUP, TIME_DATE, TIME_MINUTES, TIME_SECONDS, VAL_CLOSEPRICE, VAL_CLOSETIME, VAL_COMMENT, VAL_COMMISSION, VAL_LOTS, VAL_RICE, VAL_IME, VAL_PROFIT, VAL_STOPLOSS, VAL_SWAP, VAL_SYMBOL, VAL_TAKEPROFIT, VAL_TICKET, VAL_TYPE.

На самом деле, эти зарезервированные слова являются макросами, то есть, синтаксический анализатор подставляет вместо этих слов числовые значения. Макросы были введены для удобства пользователю при написании вызовов функций. И вместо числовых значений параметров некоторых функций можно использовать более удобные и мнемоничные предопределённые слова. Это же самое касается и названий цветов.

7. Цвета (colors).
AliceBlue, AntiqueWhite, Aqua, Aquamarine, Azure, Beige, Bisque, Black, BlanchedAlmond, Blue, BlueViolet, Brown, BurlyWood, CadetBlue, Chartreuse, Chocolate, Coral, CornflowerBlue, Cornsilk, Crimson, Cyan, DarkBlue, DarkCyan, DarkGoldenrod, DarkGray, DarkGreen, DarkKhaki, DarkMagenta, DarkOliveGreen, DarkOrange, DarkOrchid, DarkRed, DarkSalmon, DarkSeaGreen, DarkSlateBlue, DarkSlateGray, DarkTurquoise, DarkViolet, DeepPink, DeepSkyBlue, DimGray, DodgerBlue, FireBrick, FloralWhite, ForestGreen, Fuchsia, Gainsboro, GhostWhite, Gold, Goldenrod, Gray, Green, GreenYellow, Honeydew, HotPink, IndianRed, Indigo, Ivory, Khaki, Lavender, LavenderBlush, LawnGreen, LemonChiffon, LightBlue, LightCoral, LightCyan, LightGoldenrod, LightGreen, LightGrey, LightPink, LightSalmon, LightSeaGreen, LightSkyBlue, LightSlateGray, LightSteelBlue, LightYellow, Lime, LimeGreen, Linen, Magenta, Maroon, MediumAquamarine, MediumBlue, MediumOrchid, MediumPurple, MediumSeaGreen, MediumSlateBlue, MediumSpringGreen, MediumTurquoise, MediumVioletRed, MidnightBlue, MintCream, MistyRose, Moccasin, NavajoWhite, Navy, OldLace, Olive, OliveDrab, Orange, OrangeRed, Orchid, PaleGoldenrod, PaleGreen, PaleTurquoise, PaleVioletRed, PapayaWhip, PeachPuff, Peru, Pink, Plum, PowderBlue, Purple, Red, RosyBrown, RoyalBlue, SaddleBrown, Salmon, SandyBrown, SeaGreen, Seashell, Sienna, Silver, SkyBlue, SlateBlue, SlateGray, Snow, SpringGreen, SteelBlue, Tan, Teal, Thistle, Tomato, Turquoise, Violet, Wheat, White, WhiteSmoke, Yellow, YellowGreen.


Все зарезервированные слова являются регистронезависимыми, то есть могут быть написаны как маленькими, так и большими буквами.

4.1. Предопределённые пользовательские переменные

Часто бывает необходимо менять у написанного эксперта некоторые параметры, влияющие на его работу. Чтобы не приходилось каждый раз исправлять код эксперта, вручную редактируя важные переменные, по аналогии с системой MetaQuotes было вынесено в таблицу свойств (в редакторе MetaEditor меню Files - Properties... - закладка Processing) эксперта 4 параметра:
Lots
- количество лотов
StopLoss
- уровень стоплосса в пунктах
TakeProfit
- уровень тейкпрофита в пунктах
TrailingStop
- уровень трейлинг стопа в пунктах
Предопределённые пользовательские переменные

Начальные значения этих переменных могут быть занесены через таблицу свойств программы-эксперта. Либо эти значения могут быть изменены в специальном диалоговом окне настроек (settings tab), вызываемом по нажатии клавиши F7, либо через меню Charts - Expert Advisors - Properties. Из программы эти переменные менять нельзя.
Предопределённые пользовательские переменные

4.2. Управляющие структуры языка MetaQuotes Language II

4.2.1. Объявление и описание переменных

Для хранения промежуточных данных в процессе вычисления необходимы переменные. Переменные описываются в самом начале программы при помощи зарезервированных слов Variable, Array, Define и Input. Допускается использовать эти слова во множественном числе, то есть, Variables, Arrays, Defines и Inputs. Одним из этих слов всегда начинается инструкция объявления переменной (variable declaration statement). Разница между этими словами заключается в следующем: variable описывает простые переменные, array описывает массивы, define описывает дополнительные пользовательские переменные, которые, как и предопределённые пользовательские переменные могут меняться в диалоговом окне настроек, то есть, извне. Но в отличие от предопределённых переменных пользовательские переменные могут быть изменены в процессе расчёта в программе. Input описывает переменные, используемые в качестве входных параметров для пользовательских функций или для программ расчёта пользовательских индикаторов. Input-переменные не могут быть изменены в программе.

Синтаксис объявления переменной:
Variable : Name( InitialValue );

где Name - имя переменной; InitialValue - начальное значение переменной. От начального значения зависит тип переменной - числовой, строковый или логический.
Пример объявления числовой переменной:
Variable : Counter( 0 );

Пример объявления строковой переменной:
Variable : String1( "some string" );

Пример объявления логической переменной:
Variable : MyCondition( false );


Синтаксис объявления массива:
Array : ArrayName[размерность массива]( InitialValue );

где размерность массива выражается одним или несколькими (до четырёх) числами - число[, число[, число[, число]]].
В MetaQuotes Language II массивы могут быть одно-, двух-, трех- или четырехмерными. Вообще, массив - это совокупность переменных, расположенных подряд друг за другом, к которым можно обращаться по одному имени, имени массива, указав порядковый номер (номера) элемента в массиве. В массиве удобно хранить ряд данных, имеющих одну сущность. Хорошая аналогия массивов - исторические данные торгового терминала, такие, например, как Close, High, Low, Volume. Доступ к ним осуществляется как к одномерному массиву. Например, Close[ 5 ] - это значение Close пять периодов назад. Примером двумерного массива может служить простая таблица, первым измерением которой являются строки, вторым - столбцы. Например:
Array : MyTable[ 10, 5 ]( 0 ); // таблица из 10 строк по 5 колонок в каждой
...
print( MyTable[ 2, 4 ] ); // напечатать 4-ый элемент 2-ой строки

Массивы могут содержать значения любого типа - числового, строкового или логического. Именно того типа, начальное значение которого было указано при объявлении массива.

Синтаксис объявления дополнительной пользовательской переменной:
Define : Name( InitialNumber );
где Name - имя переменной;
InitialNumber - начальное числовое значение переменной.

Необходимо отметить, что дополнительные пользовательские переменные могут быть только числового типа. Как уже отмечалось выше, пользовательские переменные могут быть изменены в процессе расчёта в программе. Эти изменения будут действительны только в процессе текущего сеанса работы программы-эксперта, до тех пор, пока данного эксперта не удалят с графика, либо пока не будет изменен период или инструмент графика, либо пока не завершат работу с клиентским терминалом. При следующем запуске эксперта значения пользовательских переменных будут проинициализированы заново.

Примечание: инициализация всех переменных (Variables, Defines, Arrays) производится при первом запуске эксперта, а также при смене периода или инструмента на графике. Если вы хотите, чтобы при каждом запуске эксперта переменная имела определенное значение, явно присваивайте. Например:
Variable : cnt( 0 );
cnt = 0; // присвоение переменной при каждом запуске

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

4.2.2. Инструкция EXIT
Инструкция Exit (Exit statement) прерывает выполнение программы-эксперта. Это - так называемое досрочное завершение программы. Аналогом инструкции Exit является функция Return, которая используется в пользовательских функциях, вызываемых при помощи функции UserFunction.

4.2.3. Инструкция условия IF-THEN
Инструкция условия (conditional statement If-Then) позволяет управлять последовательностью выполнения инструкций программы-эксперта. Возможны несколько способов написания данной инструкции. Синтаксис:
if Condition then Statement;

или
if Condition then begin
    Statement;
    Statement;
    …
end;

где Condition - логическое выражение, имеющее значение True или False;
Statement - любая инструкция MetaQuotes Language II. Операторные скобки Begin - End могут быть заменены фигурными скобками { }. При помощи инструкции условия можно организовать разветвление программы. Для этого используется дополнительное ключевое слово Else. Синтаксис:
if Condition then Statement1 else Statement2;

или
if Condition then begin
    Statement;
    Statement;
    …
end
else begin
    Statement;
    Statement;
    …
end;

или
if Condition then begin
    Statement;
    Statement;
    …
end
    else Statement2;

или
if Condition then Statement1
else begin
    Statement;
    Statement;
    …
end;

Возможны вложенные инструкции условия. И вообще, в качестве Statement может выступать любая легальная инструкция MetaQuotes Language II, кроме объявления переменных, так как, строго говоря, объявление переменной не является выполняемой инструкцией.

4.2.4. Цикл WHILE
Цикл While (While loop) обеспечивает выполнение инструкций, заключённых в теле цикла столько раз, пока выполняется условие цикла. Цикл можно покинуть досрочно, используя инструкцию Break. Итерацию можно прервать при помощи инструкции Continue. После этой инструкции сразу начнётся следующая итерация цикла, то есть, инструкции, следующие после Continue и до конца тела цикла, не будут выполнены в этой итерации. Break и Continue имеет смысл использовать в инструкции условия. Синтаксис:
while Condition begin
    Statement;
    [break;][continue;]
    …
end;
где Condition - условие выполнения цикла, логическое выражение, вычисляемое перед каждой итерацией цикла, имеющее значение True или False;
Statement - любая инструкция MetaQuotes Language II.
Операторные скобки Begin - End определяют тело цикла и могут быть заменены фигурными скобками { }.
Инструкции Break и Continue являются необязательными.
Пример:
Counter = 1;
while Counter <= Bars begin
    print( Close[ Counter - 1 ] );
    Counter = Counter + 1;
end;

Данный пример иллюстрирует цикл, который будет выполняться Bars раз. А если Bars равно 0, то ни разу.

4.2.5. Цикл FOR
Цикл For (For loop) обеспечивает выполнение инструкций, заключённых в теле цикла определённое число раз. Синтаксис:
for NumberVariable = InitialValue to|downto LimitValue begin
    Statement;
    [break;][continue;]
    …
end;
где NumberVariable - переменная цикла, которая после каждой итерации будет либо прирастать либо убывать на единицу (в зависимости от использования ключевого слова To или Downto );
InitialValue - начальное числовое значение переменной цикла;
Statement - любая инструкция MetaQuotes Language II.
To или Downto - определяет приращение на 1 (To) или убавление на 1(Downto) переменной цикла;
LimitValue - предельное числовое значение переменной цикла;
Операторные скобки Begin - End определяют тело цикла и могут быть заменены фигурными скобками { }.
Инструкции Break и Continue являются необязательными. Пример:
for Counter = 1 to 10 begin
    if Counter > Bars then break;
    print( Close[ Counter ] );
end;

Данный пример иллюстрирует цикл, который может выполниться 10 раз. Однако если значение Bars будет меньше 10, то цикл прервётся досрочно, то есть цикл будет выполнен Bars раз.

4.2.6. Инструкция ветвления SWITCH-CASE
Инструкция ветвления (conditional statement Switch-Case) расширяет возможности инструкции If-Then-Else и так же позволяет управлять последовательностью выполнения инструкций программы-эксперта. Синтаксис:
switch SomeVariable begin
    case expression1 : Statement1;
    case expression2 : Statement2;
    …
    case expressionN : StatementN;
    [default : Statement;]
end;
где SomeVariable - переменная условия, которая может быть любого типа;
expression1-expressionN - выражения того же самого типа, что и SomeVariable, которые используются для сравнения со значением, хранящемся в этой переменной;
Statement1-StatementN,Statement - любая инструкция (либо последовательность инструкций) MetaQuotes Language II, которая будет выполняться в случае совпадения значения переменной SomeVariable со значением соответствующего выражения. Последовательность инструкций выполняется до следующего 'case', 'default' или 'end'. Также последовательность инструкций может быть досрочно прервана оператором 'break'.
Ключевое слово 'default' является необязательным. Оно определяет, если это необходимо, последовательность инструкций, выполняемую в том случае, если ни одно из значений 'case' не совпало со значением переменной SomeVariable. Синонимом слова 'default' является ключевое слово 'otherwise'.
Пример:
switch Symbol begin
    case "EURUSD" :
        MyStopLoss = 60;
        MyTrailingStop = 25;
    case "USDJPY" :
        MyStopLoss = 75;
        MyTrailingStop = 35;
    default :
        MyStopLoss = StopLoss;
        MyTrailingStop = TrailingStop;
end;

4.2.7. Инструкция BREAK
Инструкция Break (Break statement) досрочно прерывает выполнение цикла For или While. Предыдущий пример является иллюстрацией не только цикла, но и инструкции Break. Инструкция Break не может использоваться вне тела цикла. Циклы могут быть вложенными друг в друга, и инструкция Break прерывает только ближайший к ней цикл. То есть, инструкция, прерывающая внутренний цикл, внешний цикл не прервёт.

4.2.8. Инструкция CONTINUE
Инструкция Continue (Continue statement) досрочно прерывает итерацию цикла и начинает выполнение следующей итерации с начала тела цикла. Другими словами, инструкции следующие за Continue игнорируются. Пример:
for Counter = 1 to 10 begin
    …
    if Counter > Bars then continue;
    print( Close[ Counter ] );
    …
end;
Данный пример иллюстрирует цикл, который выполнится ровно 10 раз. Однако значение Close[ Counter ] будет напечатано не более Bars раз. Вместо "…" могут стоять инструкции MetaQuotes Language II.

Инструкция Continue, как и Break, не может использоваться вне тела цикла. Также инструкция Continue не может быть использована внутри конструкции Switch-Case, независимо от наличия внешнего цикла.

4.3. Предопределённые переменные торгового терминала
Для большего удобства пользователя к некоторым переменным торгового терминала имеется доступ из программы-эксперта.
AccountNumber
- номер счёта (синоним AccNum );
Ask
- цена предложения (синоним переменной PriceAsk);
Balance
- значение баланса торгового счета;
Bars
- количество баров на графике, очень важная переменная, дающая представление о степени заполнения графика данными;
Bid
- цена спроса (синоним переменной PriceBid);
Close
- цена закрытия;
Credit
- выданный кредит;
Equity
- состояние счёта с учётом нереализованной прибыли;
FreeMargin
- значение свободной маржи торгового счета, также используется для проверки наличия денег на счете;
High
- наибольшая цена за период;
Low
- наименьшая цена за период;
Margin
- средства, используемые на поддержание открытых позиций;
Open
- цена открытия;
Point
- значение одного пункта для текущего финансового инструмента (на котором в данный момент работает программа-эксперт), например, для USD/JPY - 0.01, для USD/CHF - 0.0001 etc;
PriceAsk
- текущая цена предложения из окна "Market Watch" (синоним переменной Ask);
PriceBid
- текущая цена спроса из окна "Market Watch" (синоним переменной Bid);
PriceHigh
- максимальная цена предложения за текущие сутки (значение из окна "Market Watch");
PriceLow
- минимальная цена предложения за текущие сутки (значение из окна "Market Watch");
PriceTime
- текущее время из окна "Market Watch";
Time
- время бара ценового графика;
TotalProfit
- суммарная нереализованная прибыль по всем открытым позициям;
TotalTrades
- общее количество открытых позиций и отложенных ордеров в торговом терминале;
Volume
- объём (количество ценовых тиков за период).
При этом Close, High, Low, Volume, Time являются массивами исторических данных (seriesarrays), и возможен доступ к этим данным за прошлые периоды.

4.4. Встроенные функции
В состав MetaQuotes Language II включён ряд функций самого разного назначения. Это - технические индикаторы, торговые функции, функции времени, математические, тригонометрические функции, функции преобразования и вывода информации и другие.

Abs
- возвращает абсолютное значение (модуль) указанного числового значения.
Синтаксис: Abs( nExpression )
Параметр: числовое значение.

AccountName
- возвращает текстовую строку, содержащую имя пользователя (синоним AccName ).

Alert
- выдаёт на экран диалоговое окно, содержащее определённые пользователем данные.
Синтаксис: Alert(...)
Возможно любое ненулевое число параметров.

ArcCos
- возвращает число, представляющее собой величину угла в радианах, значение косинуса которого передано в качестве параметра.
Синтаксис: ArcCos( nExpression )
Параметр: числовое значение в диапазоне от -1 до 1.

ArcSin
- возвращает число, представляющее собой величину угла в радианах, значение синуса которого передано в качестве параметра.
Синтаксис: ArcSin( nExpression )
Параметр: числовое значение в диапазоне от -1 до 1.

ArcTan
- возвращает число, представляющее собой величину угла в радианах, значение тангенса которого передано в качестве параметра.
Синтаксис: ArcTan( nExpression )
Параметр: числовое значение в диапазоне от -1 до 1.

Ceil
- возвращает число, представляющее собой наименьшее ближайшее целое большее или равное указанному числовому значению.
Синтаксис: Ceil( nExpression )
Параметр: числовое значение.

CloseOrder
- закрытие позиции.
Синтаксис: CloseOrder( order, lots, price, slippage, color )
Параметры:
order - номер ордера открытой позиции;
lots - количество лотов;
price - предпочитаемая цена закрытия;
slippage - величина максимального проскальзывания цены;
color - цвет крестика на графике.

Comment
- выдаёт в левый верхний угол графика определённые пользователем данные.
Синтаксис: Comment(...)
Возможно любое ненулевое число параметров.

Cos
- вычисляет и возвращает косинус числового значения, представляющего собой угол в радианах.
Синтаксис: Cos( nExpression )
Параметр: числовое значение.

CurTime
- возвращает количество секунд, прошедших с 0 часов 1 января 1970 года.

Day
- Возвращает порядковый номер текущего дня в месяце.

DayOfWeek
- возвращает порядковый номер текущего дня в неделе. 1 - воскресенье, 2 - понедельник, … , 7 - суббота.

DelArrow
- удаление ранее выставленного символа-пиктограммы с графика.
Синтаксис: DelArrow( time, price )
Параметры:
time - точка привязки на графике по времени;
price - точка привязки на графике по цене;
Примечание. Если в качестве параметров time и price передать нули, то будут удалены все символы-пиктограммы с графика. Если один из параметров будет нулевым, то удаляться будут те символы, у которых совпадет другой, ненулевой, параметр.

DeleteOrder
- удаление ранее выставленного отложенного ордера.
Синтаксис: DeleteOrder( order )
Параметр: order - номер ордера отложенной позиции.

DelGlobalVariable
- удаляет указанную глобальную переменную.
Синтаксис: DelGlobalVariable( name )
Параметр: name - имя глобальной переменной в виде текстовой строки;

DelObject
- удаление именованного объекта, созданного функцией MoveObject.
Синтаксис: DelObject( name, time, price, time_precision, price_precision )
Параметры :
name - имя объекта в виде текстовой строки;
time - точка привязки на графике по времени;
price - точка привязки на графике по цене;
time_precision - погрешность привязки на графике по времени;
price_precision - погрешность привязки на графике по цене.
Примечание. Если задано пустое имя (""), то с графика будут удалены все объекты, одна из точек привязки которого попадает в область time-time_precision -- time+time_precision, price-price_precision -- price+price_precision. Если time и price равны 0, то будут удалены все объекты с заданным именем. Если задано пустое имя и time и price равны 0, то будут удалены все объекты с графика.

Exp
- возвращает число, представляющее собой экспоненту указанного числового значения.
Синтаксис: Exp( nExpression )
Параметр: числовое значение.

FileDelete
- удаляет указанный файл. Если файл был до этого открыт, то он дожен быть закрыт, иначе удаления не произойдёт.
Синтаксис: FileDelete( filename )
Параметр: filename - символьная строка, содержащая имя файла.

FileClose
- закрывает указанный файл.
Синтаксис: FileClose( filehandle )
Параметр: filehandle - идентификатор файла, полученный функцией открытия файла FileOpen.

FileOpen
- открывает указанный файл в директории Experts и возвращает числовое значение, идентифицирующее открытый файл (file handle).
Синтаксис: File filename, delimiter )
Параметры:
filename - символьная строка, содержащая имя файла. Будет открыт файл с расширением CSV. Это связано с тем, что выводимая при помощи функции FileWrite информация представляется в символьном виде и разделяется указанным следующим параметром символом-разделителем;
delimiter - символ-разделитель. Может быть указан как числовое значение, либо как односимвольная строка.

FileReadNumber
- возвращает числовое значение, прочитанное из текущей позиции указанного файла. После чтения текущая позиция смещается на размер прочитанных данных.
Синтаксис: FileReadNumber( filehandle )
Параметр: filehandle - идентификатор файла, полученный функцией открытия файла FileOpen.

FileReadString
- возвращает символьную строку, прочитанную из текущей позиции указанного файла. После чтения текущая позиция смещается на размер прочитанных данных.
Синтаксис: FileReadString( filehandle )
Параметр: filehandle - идентификатор файла, полученный функцией открытия файла FileOpen.

FileSeek
- устанавливает новую позицию чтения-записи указанного файла.
Синтаксис: FileSeek( filehandle, offset, origin )
Параметры:
filehandle - идентификатор файла, полученный функцией открытия файла FileOpen.
offset - числовое значение смещения относительно начала файла (SEEK_SET), текущей позиции (SEEK_CUR) или конца файла (SEEK_END).
origin - может принимать одно из трёх значений - SEEK_SET, SEEK_CUR или SEEK_END.

FileSize
- возвращает размер указанного файла.
Синтаксис: FileSize( filehandle )
Параметр: filehandle - идентификатор файла, полученный функцией открытия файла FileOpen.

FileTell
- возвращает текущую позицию чтения-записи указанного файла.
Синтаксис: FileTell( filehandle )
Параметр: filehandle - идентификатор файла, полученный функцией открытия файла FileOpen.

FileWrite
- вывод указанных данных в указанный файл в текущую позицию. Аналог функции Print. Выводимые данные отделяются друг от друга символом-разделителем, указанном при открытии файла. После записи текущая позиция смещается на размер записанных данных и в большинстве случаев указывает на конец файла.
Синтаксис: FileWrite( filehandle, ... )
Параметры:
filehandle - идентификатор файла, полученный функцией открытия файла FileOpen.
данные - список любого количества данных, разделённых запятой.

Floor
- возвращает число, представляющее собой наибольшее ближайшее целое, меньшее или равное указанному числовому значению.
Синтаксис: Floor( nExpression )
Параметр: числовое значение.

GetGlobalVariable
- возвращает числовое значение указанной глобальной переменной. Если указанной глобальной переменной не существует, то будет возвращён 0, а в системном журнале появится сообщение об ошибке.
Синтаксис: GetGlobalVariable( name )
Параметры:
name - имя глобальной переменной в виде текстовой строки;

GetIndexValue
- возвращает числовое значение указанного элемента массива данных пользовательского индикатора.
Синтаксис: GetIndexValue( shift )
Параметры:
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно взять значение индикатора.

GetIndexValue2
- возвращает числовое значение указанного элемента второго массива данных пользовательского индикатора.
Синтаксис: GetIndexValue2( shift )
Параметры:
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно взять значение индикатора.

GetTickCount
- функция операционной системы, возвращает число миллисекунд, прошедших с момента старта системы. Разница между двумя значениями GetTickCount позволяет оценить быстродействие эксперта.

Highest
- возвращает смещение относительно текущего бара наибольшего значения Low, High, Close или Volume (в зависимости от параметра type) за определённое число периодов.
Синтаксис: Highest( type, beginbar, periods )
Параметры:
type - возвращаемая переменная, может принимать одно из значений: MODE_ MODE_LOW, MODE_HIGH, MODE_CLOSE, MODE_VOLUME
beginbar - смещение, показывающее, начиная с какого бара от текущего надо брать данные. Указанный бар является самым левым в диапазоне, так как расчёт производится слева направо.
periods - число периодов, на которых производится расчёт.

Hour
- возвращает порядковый номер текущего часа в сутках.

iAC
- осциллятор ускорения-замедления.
Синтаксис: iAC( shift )
Параметр: shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iAD
- индикатор накопления-распределения.
Синтаксис: iAD( shift )
Параметр: shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iADX
- индекс среднего направленного движения.
Синтаксис: iADX( period, mode, shift )
Параметры:
period - количество периодов для расчёта;
mode - тип данных, может принимать одно из значений: MODE_MAIN (основной индикатор), MODE_PLUSDI(линия +DI), MODE_MINUSDI (линия -DI).
shift - смещение относительно текущего бара (количество периодов назад),откуда нужно брать данные.

iADXEx
- индекс среднего направленного движения (расширенная функция).
Синтаксис: iADXEx( period, applied_price, mode, shift )
Параметры:
period - количество периодов для расчёта;
applied_price - цена, которая участвует в расчете: PRICE_CLOSE, PRICE_ PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN (средняя цена, (H+L)/2), PRICE_TYPICAL (типичная цена, (H+L+C)/3), PRICE_WEIGHTED (взвешенная цена закрытия, (H+L+C+C)/4) .
mode - тип данных, может принимать одно из значений: MODE_MAIN (основной индикатор), MODE_PLUSDI(линия +DI), MODE_MINUSDI (линия -DI).
shift - смещение относительно текущего бара (количество периодов назад),откуда нужно брать данные.

iAlligator
- Аллигатор Билла Уильямса.
Синтаксис: iAlligator( jaw_period, jaw_shift, teeth_period, teeth_shift, lips_period, lips_shift, ma_method, applied_price, mode, shift )
Параметры:
jaw_period - количество периодов для расчета 'челюсти аллигатора' (обычно 13);
jaw_shift - смещение вперед линии 'челюсти аллигатора' (обычно 8);
teeth_period - количество периодов для расчета 'зубов аллигатора' (обычно 8);
teeth_shift - смещение вперед линии 'зубов аллигатора' (обычно 5);
lips_period - количество периодов для расчета 'губы аллигатора' (обычно 5);
lips_shift - смещение вперед линии 'губы аллигатора' (обычно 3);
ma_method - метод скользящих средних для расчета, может принимать одно из значений: MODE_SMA (простая скользящая средняя), MODE_EMA (экспоненциальная скользящая средняя), MODE_SMMA (сглаженная скользящая средняя), MODE_LWMA (линейно-взвешенная скользящая средняя);
applied_price - цена, которая участвует в расчете: PRICE_CLOSE, PRICE_ PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN (средняя цена, (H+L)/2), PRICE_TYPICAL (типичная цена, (H+L+C)/3), PRICE_WEIGHTED (взвешенная цена закрытия, (H+L+C+C)/4) .
mode - источник данных, может принимать одно из значений: MODE_GATORJAW ('синяя' линия баланса), MODE_GATORTEETH ('красная' линия баланса), MODE_GATORLIPS ('зеленая' линия баланса);
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iAO
- удивительный осциллятор Билла Уильямса.
Синтаксис: iAO( shift )
Параметр: shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iATR
- индикатор среднего истинного диапазона.
Синтаксис: iATR( period, shift )
Параметры:
period - количество периодов для расчёта;
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iBands
- индикатор полос Боллинджера.
Синтаксис: iBands( period, deviation, mode, shift )
Параметры:
period - количество периодов для расчёта;
deviation - отклонение;
mode - может принимать одно из значений: MODE_MAIN (основная линия, скользящая), MODE_LOW (нижняя граница), MODE_HIGH (верхняя граница).
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iBandsEx
- индикатор полос Боллинджера (расширенная функция).
Синтаксис: iBandsEx( period, deviation, bands_shift, applied_price, mode, shift )
Параметры:
period - количество периодов для расчёта;
deviation - отклонение;
bands_shift - смещение вперед или назад рассчитанных значений;
applied_price - цена, которая участвует в расчете: PRICE_CLOSE, PRICE_ PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN (средняя цена, (H+L)/2), PRICE_TYPICAL (типичная цена, (H+L+C)/3), PRICE_WEIGHTED (взвешенная цена закрытия, (H+L+C+C)/4) .
mode - может принимать одно из значений: MODE_MAIN (основная линия, скользящая), MODE_LOW (нижняя граница), MODE_HIGH (верхняя граница).
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iBearsPower
- индикатор силы медведей.
Синтаксис: iBearsPower( period, applied_price, shift )
Параметры:
period - количество периодов для расчёта;
applied_price - цена, которая участвует в расчете: PRICE_CLOSE, PRICE_ PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN (средняя цена, (H+L)/2), PRICE_TYPICAL (типичная цена, (H+L+C)/3), PRICE_WEIGHTED (взвешенная цена закрытия, (H+L+C+C)/4) .
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iBullsPower
- индикатор силы быков.
Синтаксис: iBullsPower( period, applied_price, shift )
Параметры:
period - количество периодов для расчёта;
applied_price - цена, которая участвует в расчете: PRICE_CLOSE, PRICE_ PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN (средняя цена, (H+L)/2), PRICE_TYPICAL (типичная цена, (H+L+C)/3), PRICE_WEIGHTED (взвешенная цена закрытия, (H+L+C+C)/4) .
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iBWMFI
- индикатор облегчения рынка.
Синтаксис: iBWMFI( shift )
Параметр: shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iCCI
- индекс товарного канала.
Синтаксис: iCCI( period, shift )
Параметры:
period - количество периодов для расчёта;
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iCCIEx
- индекс товарного канала (расширенная функция).
Синтаксис: iCCIEx( period, applied_price, shift )
Параметры:
period - количество периодов для расчёта;
applied_price - цена, которая участвует в расчете: PRICE_CLOSE, PRICE_ PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN (средняя цена, (H+L)/2), PRICE_TYPICAL ( типичная цена, (H+L+C)/3), PRICE_WEIGHTED (взвешенная цена закрытия, (H+L+C+C)/4) .
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iCustom
- пользовательский индикатор.
Синтаксис: iCustom( name [, parameter1 [,parameter2 ....]], mode, shift )
Параметры:
name - имя пользовательской функции индикатора;
parameter1, parameter2... - числовые параметры (если необходимы).
mode - может принимать одно из значений: MODE_FIRST (значение из основного массива данных), MODE_SECOND (значение из второго массива данных).
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.
Пользовательская функция индикатора - это простая программа-эксперт, написанная на языке MQLII и прошедшая трансляцию. Параметры для этой программы передаются в той последовательности, в которой они перечислены в инструкции Inputs. В качестве параметров могут выступать только числовые значения! Для формирования основного и второго (если необходимо) массивов пользовательского индикатора должны быть использованы функции SetIndexValue и SetIndexValue2. В функции пользовательского индикатора нельзя использовать торговые функции, функции вызова пользовательского индикатора iCustom и пользовательской функции UserFunction.

iDeMarker
- индикатор ДеМарка.
Синтаксис: iDeMarker( period, shift )
Параметры:
period - количество периодов для расчёта;
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iEnvelopes
- индикатор огибающих линий.
Синтаксис: iEnvelopes( period, ma_method, deviation, applied_price, mode, shift )
Параметры:
period - количество периодов для расчёта;
ma_method - метод скользящих средних для расчета, может принимать одно из значений: MODE_SMA (простая скользящая средняя), MODE_EMA (экспоненциальная скользящая средняя), MODE_SMMA (сглаженная скользящая средняя), MODE_LWMA (линейно-взвешенная скользящая средняя);
deviation - значение процента отклонения;
applied_price - цена, которая участвует в расчете: PRICE_CLOSE, PRICE_ PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN (средняя цена, (H+L)/2), PRICE_TYPICAL ( типичная цена, (H+L+C)/3), PRICE_WEIGHTED (взвешенная цена закрытия, (H+L+C+C)/4) .
mode - может принимать одно из значений: MODE_UPPER (значение верхней линии), MODE_LOWER (значение нижней линии).
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iForce
- индикатор силы А.Элдера.
Синтаксис: iForce( period, ma_method, applied_price, shift )
Параметры:
period - количество периодов для расчёта;
ma_method - метод скользящих средних для расчета, может принимать одно из значений: MODE_SMA (простая скользящая средняя), MODE_EMA (экспоненциальная скользящая средняя), MODE_SMMA (сглаженная скользящая средняя), MODE_LWMA (линейно-взвешенная скользящая средняя);
applied_price - цена, которая участвует в расчете: PRICE_CLOSE, PRICE_ PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN (средняя цена, (H+L)/2), PRICE_TYPICAL ( типичная цена, (H+L+C)/3), PRICE_WEIGHTED (взвешенная цена закрытия, (H+L+C+C)/4) .
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iFractals
- фракталы.
Синтаксис: iFractals( mode, shift )
Параметры:
mode - может принимать одно из значений: MODE_UPPER (значение верхней линии), MODE_LOWER (значение нижней линии).
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iGator
- Gator oscillator Билла Уильямса.
Синтаксис: iGator( jaw_period, jaw_shift, teeth_period, teeth_shift, lips_period, lips_shift, ma_method, applied_price, mode, shift )
Параметры:
jaw_period - количество периодов для расчета 'челюсти аллигатора' (обычно 13);
jaw_shift - смещение вперед линии 'челюсти аллигатора' (обычно 8);
teeth_period - количество периодов для расчета 'зубов аллигатора' (обычно 8);
teeth_shift - смещение вперед линии 'зубов аллигатора' (обычно 5);
lips_period - количество периодов для расчета 'губы аллигатора' (обычно 5);
lips_shift - смещение вперед линии 'губы аллигатора' (обычно 3);
ma_method - метод скользящих средних для расчета, может принимать одно из значений: MODE_SMA (простая скользящая средняя), MODE_EMA (экспоненциальная скользящая средняя), MODE_SMMA (сглаженная скользящая средняя), MODE_LWMA (линейно-взвешенная скользящая средняя);
applied_price - цена, которая участвует в расчете: PRICE_CLOSE, PRICE_ PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN (средняя цена, (H+L)/2), PRICE_TYPICAL (типичная цена, (H+L+C)/3), PRICE_WEIGHTED (взвешенная цена закрытия, (H+L+C+C)/4) .
mode - источник данных, может принимать одно из значений: MODE_UPPER (абсолютная разница между 'синей' и 'красной' линиями), MODE_LOWER (отрицательная абсолютная разница между 'красной' и 'зеленой' линиями);
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iIchimoku
- индикатор Ишимоку Кинко Хайо.
Синтаксис: iIchimoku( tenkan_sen, kijun_sen, senkou_span_b, mode, shift )
Параметры:
tenkan_sen - количество периодов Tenkan Sen (обычно 9);
kijun_sen - количество периодов Kijun Sen (обычно 26);
senkou_span_b - количество периодов Senkou SpanB (обычно 52);
mode - источник данных, может принимать одно из значений: MODE_TENKANSEN, MODE_KIJUNSEN, MODE_SENKOUSPANA, MODE_SENKOUSPANB, MODE_CHINKOUSPAN;
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iMA
- индикатор скользящего среднего.
Синтаксис: iMA( period, ma_method, shift )
Параметры:
period - количество периодов для расчёта;
ma_method - метод скользящего среднего для расчета, может принимать одно из значений: MODE_SMA (простая скользящая средняя), MODE_EMA (экспоненциальная скользящая средняя), MODE_SMMA (сглаженная скользящая средняя), MODE_LWMA (линейно-взвешенная скользящая средняя);
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iMAEx
- индикатор скользящего среднего (расширенная функция).
Синтаксис: iMAEx( period, ma_method, ma_shift, applied_price, shift )
Параметры:
period - количество периодов для расчёта;
ma_method - метод скользящего среднего для расчета, может принимать одно из значений: MODE_SMA (простая скользящая средняя), MODE_EMA (экспоненциальная скользящая средняя), MODE_SMMA (сглаженная скользящая средняя), MODE_LWMA (линейно-взвешенная скользящая средняя);
ma_shift - смещение вперед или назад рассчитанных значений;
applied_price - цена, которая участвует в расчете: PRICE_CLOSE, PRICE_ PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN (средняя цена, (H+L)/2), PRICE_TYPICAL (типичная цена, (H+L+C)/3), PRICE_WEIGHTED (взвешенная цена закрытия, (H+L+C+C)/4) .
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iMACD
- индикатор схождения/расхождения скользящих средних.
Синтаксис: iMACD( fast_ema_period, slow_ema_period, signal_period, mode, shift )
Параметры:
fast_ema_period - количество периодов для расчета 'быстрой' скользящей средней (обычно 12);
slow_ema_period - количество периодов для расчета 'медленной' скользящей средней (обычно 26);
signal_period - количество периодов для расчета 'сигнальной' скользящей средней (обычно 9);
mode - источник данных, может принимать одно из значений: MODE_MAIN (основной индикатор), MODE_SIGNAL (сигнальная линия);
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iMACDEx
- индикатор схождения/расхождения скользящих средних (расширенная функция).
Синтаксис: iMACDEx( fast_ema_period, slow_ema_period, signal_period, applied_price, mode, shift )
Параметры:
fast_ema_period - количество периодов для расчета 'быстрой' скользящей средней (обычно 12);
slow_ema_period - количество периодов для расчета 'медленной' скользящей средней (обычно 26);
signal_period - количество периодов для расчета 'сигнальной' скользящей средней (обычно 9);
applied_price - цена, которая участвует в расчете: PRICE_CLOSE, PRICE_ PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN (средняя цена, (H+L)/2), PRICE_TYPICAL (типичная цена, (H+L+C)/3), PRICE_WEIGHTED (взвешенная цена закрытия, (H+L+C+C)/4) .
mode - источник данных, может принимать одно из значений: MODE_MAIN (основной индикатор), MODE_SIGNAL (сигнальная линия);
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iMFI
- индекс денежных потоков.
Синтаксис: iMFI( period, shift )
Параметры:
period - количество периодов для расчёта;
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iMom
- индикатор Momentum.
Синтаксис: iMom( period, shift )
Параметры:
period - количество периодов для расчёта;
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iMomEx
- индикатор Momentum (расширенная функция).
Синтаксис: iMomEx( period, applied_price, shift )
Параметры:
period - количество периодов для расчёта;
applied_price - цена, которая участвует в расчете: PRICE_CLOSE, PRICE_ PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN (средняя цена, (H+L)/2), PRICE_TYPICAL (типичная цена, (H+L+C)/3), PRICE_WEIGHTED (взвешенная цена закрытия, (H+L+C+C)/4) .
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iOBV
- индикатор балансового объема.
Синтаксис: iOBV( applied_price, shift )
Параметры:
applied_price - цена, которая участвует в расчете: PRICE_CLOSE, PRICE_ PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN (средняя цена, (H+L)/2), PRICE_TYPICAL (типичная цена, (H+L+C)/3), PRICE_WEIGHTED (взвешенная цена закрытия, (H+L+C+C)/4) .
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iOsMA
- индикатор осциллятора схождения/расхождения скользящих средних.
Синтаксис: iOsMA( fast_ema_period, slow_ema_period, signal_period, applied_price, shift )
Параметры:
fast_ema_period - количество периодов для расчета 'быстрой' скользящей средней (обычно 12);
slow_ema_period - количество периодов для расчета 'медленной' скользящей средней (обычно 26);
signal_period - количество периодов для расчета 'сигнальной' скользящей средней (обычно 9);
applied_price - цена, которая участвует в расчете: PRICE_CLOSE, PRICE_ PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN (средняя цена, (H+L)/2), PRICE_TYPICAL (типичная цена, (H+L+C)/3), PRICE_WEIGHTED (взвешенная цена закрытия, (H+L+C+C)/4) .
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iRSI
- индекс относительной силы.
Синтаксис: iRSI( period, shift )
Параметры:
period - количество периодов для расчёта;
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iRSIEx
- индекс относительной силы (расширенная функция).
Синтаксис: iRSIEx( period, period2, applied_price, mode, shift )
Параметры:
period - количество периодов для расчёта;
period2 - количество периодов для расчёта второй линии;
applied_price - цена, которая участвует в расчете: PRICE_CLOSE, PRICE_ PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN (средняя цена, (H+L)/2), PRICE_TYPICAL (типичная цена, (H+L+C)/3), PRICE_WEIGHTED (взвешенная цена закрытия, (H+L+C+C)/4) .
mode - источник данных, может принимать одно из значений: MODE_FIRST (основной индикатор), MODE_SECOND (вторая линия);
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iRVI
- индекс относительной бодрости Дж.Эхлерса.
Синтаксис: iRVI( period, mode, shift )
Параметры:
period - количество периодов для расчёта;
mode - источник данных, может принимать одно из значений: MODE_MAIN (основной индикатор), MODE_SIGNAL (сигнальная линия);
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iSAR
- параболический SAR.
Синтаксис: iSAR( step, maximum, shift )
Параметры:
step -шаг изменения, обычно 0.02;
maximum - максимальное значение, обычно 0.2;
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iSTO
- индикатор "стохастический осциллятор".
Синтаксис: iSTO( %Kperiod, %Dperiod, slowing, method, mode, shift )
Параметры:
%Kperiod - период линии %K;
%Dperiod - период линии %D;
slowing - величина замедления;
method - способ расчета, может принимать одно из значений: MODE_SMA (простое среднее), MODE_EMA (экспоненциальное), MODE_WMA (взвешенное);
mode - источник данных, может принимать одно из значений: MODE_MAIN (главная линия индикатора), MODE_SIGNAL (сигнальная линия индикатора);
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

iWPR
- индикатор процентного диапазона Уильямса.
Синтаксис: iWPR( period, shift )
Параметры:
period - количество периодов для расчёта;
shift - смещение относительно текущего бара (количество периодов назад), откуда нужно брать данные.

IsDemo
- возвращает логическое значение True, если эксперт работает на демонстрационном счёте. В противном случае возвращает значение False.

IsFileEnded
- возвращает логическое значение True, если при чтении достигнут конец указанного файла.
Синтаксис: IsFileEnded( filehandle )
Параметр: filehandle - идентификатор файла, полученный функцией открытия файла FileOpen.

IsFileLineEnded
- возвращает логическое значение True, если при чтении достигнут конец строки (символ перевода на новую строку).
Синтаксис: IsFileLineEnded( filehandle )
Параметр: filehandle - идентификатор файла, полученный функцией открытия файла FileOpen.

IsGlobalVariable
- возвращает логическое значение True, если указанная глобальная переменная существует. Если указанной глобальной переменной не существует, то будет возвращено значение False.
Синтаксис: IsGlobalVariable( name )
Параметр: name - имя глобальной переменной в виде текстовой строки;

IsIndirect
- возвращает логическое значение True, если указанный инструмент рассчитывается обратным способом. В противном случае возвращает значение False.

IsTesting
- возвращает логическое значение True, если эксперт запущен на тестирование. В противном случае возвращает значение False.

IsTradeAllowed
- возвращает логическое значение True, если эксперту разрешено торговать. В противном случае возвращает значение False.

LastTradeTime
- возвращает число, представляющее собой время совершения последней торговой операции (SetOrder, DelOrder, CloseOrder, ModifyOrder ) в секундах, прошедших с 0 часов 1 января 1970 года.

Log
- возвращает логарифм указанного положительного числового значения.
Синтаксис: Log( nExpression )
Параметр: положительное числовое значение.

Lowest
- возвращает смещение относительно текущего бара наименьшего значения Low, High, Close или Volume (в зависимости от параметра type) за определённое число периодов.
Синтаксис: Lowest( type, beginbar, periods )
Параметры:
type - может принимать одно из значений: MODE_ MODE_LOW, MODE_HIGH, MODE_CLOSE, MODE_VOLUME
beginbar - смещение, показывающее, начиная с какого бара от текущего надо брать данные. Указанный бар является самым левым в диапазоне, так как расчёт производится слева направо.
periods - число периодов, на которых производится расчёт.

MarketInfo
- возвращает одно из указанных значений из окна MarketWatch.
Синтаксис: MarketInfo( symbol, mode )
Параметры:
symbol - название финансового инструмента, по которому необходимо получить информацию;
mode - тип возвращаемых данных, может принимать одно из значений: MODE_HIGH (наивысшая цена), MODE_LOW (наименьшая цена), MODE_BID (цена продавца), MODE_ASK (цена покупателя), MODE_TIME (время обновления котировки).

Max
- возвращает большее из двух указанных числовых значений.
Синтаксис: Max( nExpression1, nExpression2 )
Параметры: числовое значение1, числовое значение2.

Min
- возвращает меньшее из двух указанных числовых значений.
Синтаксис: Min( nExpression1, nExpression2 )
Параметры: числовое значение1, числовое значение2.

Minute
- возвращает порядковый номер текущей минуты в часе.

Mod
- возвращает целое число в виде остатка от деления первого числового значения на второе.
Синтаксис: Mod( nExpression1, nExpression2 )
Параметры: числовое значение1, числовое значение2.

ModifyOrder
- изменение характеристик для ранее открытой позиции или отложенного ордера.
Синтаксис: ModifyOrder( order, price, stoploss, takeprofit, color )
Параметры:
order - номер ордера открытой или отложенной позиции;
price - новая цена (только для отложенной позиции!);
stoploss - новый уровень ограничения потерь;
takeprofit - новый уровень снятия прибыли;
color - цвет пиктограммы на графике.

Month
- возвращает порядковый номер текущего месяца.

MoveObject
- перемещение или создание именованного объекта.
Синтаксис: MoveObject( name, type, time, price, time2, price2 [,color [,weight [, style]]] )
Параметры :
name - имя объекта в виде текстовой строки;
type - тип объекта, может принимать следующие значения: OBJ_HLINE (горизонтальная линия), OBJ_VLINE (вертикальная линия), OBJ_TRENDLINE (линия тренда), OBJ_SYMBOL (установка символа-пиктограммы), OBJ_TEXT (текстовая строка), OBJ_FIBO (линии Фибоначчи);
time - первая точка привязки на графике по времени;
price - первая точка привязки на графике по цене;
time2 - вторая точка привязки на графике по времени;
price2 - вторая точка привязки на графике по цене.
Необязательные параметры :
color - цвет объекта;
weight - толщина линии в пикселах (допустимы значения от 1 до 5);
style - стиль линии, может принимать одно из значений : STYLE_SOLID, STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT.
Примечание: обе точки привязки используются для линий тренда и линий Фибоначчи. Для текстовой строки и символа пиктограммы используется только вторая точка привязки, первая точка привязки игнорируется. Для горизонтальной линии используется значение price2. Для вертикальной линии - time2

Normalize
- возвращает число, округленное до указанной точности указанного числового значения.
Синтаксис: Normalize( number, precision )
Параметры:
number - указанное числовое значение;
precision - точность преобразования, количество знаков после запятой.

NumberToStr
- возвращает текстовую строку с преобразованным до указанной точности указанного числового значения. Используется при необходимости вывода числовых значений с точностью, отличной от 4 знаков после запятой.
Синтаксис: NumberToStr( number, precision )
Параметры:
number - указанное числовое значение;
precision - точность преобразования, количество знаков после запятой.

OrderValue
- возвращает одно из указанных значений ордера.
Синтаксис: OrderValue( position, mode )
Параметры:
position - позиция ордера в списке торгового терминала, начиная с 1;
mode - тип возвращаемых данных, может принимать одно из значений: VAL_TICKET (номер ордера), VAL_IME (время открытия ордера), VAL_TYPE (тип ордера), VAL_LOTS (количество запрошенных лотов), VAL_SYMBOL ( название инструмента, в виде текстовой строки), VAL_RICE (цена открытия), VAL_STOPLOSS (уровень стоплосса), VAL_TAKEPROFIT (уровень тэйкпрофита), VAL_CLOSEPRICE (цена закрытия), VAL_COMISSION (размер комиссионных), VAL_SWAP (размер ролловеров за перенос позиции), VAL_PROFIT (размер прибыли сделки), VAL_COMMENT (комментарий данной позиции в виде текстовой строки), VAL_CLOSETIME (время закрытия ордера).

Ord
- то же самое, что и OrderValue.

Period
- возвращает число минут, определяющее используемый период.

Pow
- возвращает число, полученное в результате возведения числа nBaseExpression в степень nExponentExpression, указанные в качестве параметров.
Синтаксис: Pow( nBaseExpression, nExponentExpression )
Параметры: числовое значение1, числовое значение2.

Print
- печатает определённые пользователем данные в системный журнал.
Синтаксис: Print(...)
Возможно любое ненулевое число параметров.

PrintTrade
- выводит в журнал данные об указанной позиции.
Синтаксис: PrintTrade( position )
Параметр: position - номер открытой позиции в торговом терминале

Rand
- возвращает сгенерированное псевдослучайное число. Перед использованием этой функции необходимо предварительно установить генератор псевдослучайных чисел в начальное положение при помощи функции Srand. При необходимости использования генератор псевдослучайных чисел устанавливается в начальное положение однократно, в начале программы.

Return
- прекращает работу пользовательской функции и передает указанное числовое значение вызывающей программе эксперта.
Синтаксис: Return( nExpression )
Параметр: числовое значение.

Round
- возвращает число, представляющее собой указанное числовое значение, округлённое до ближайшего целого.
Синтаксис: Round( nExpression )
Параметр: числовое значение.

Seconds
- возвращает порядковый номер текущей секунды в минуте.

ServerAddress
- возвращает IP-адрес сервера в виде текстовой строки.

SetArrow
- установка символа-пиктограммы на графике.
Синтаксис: SetArrow( time, price, symbol, color )
Параметры:
time - точка привязки на графике по времени;
price - точка привязки на графике по цене;
symbol - числовое значение символа из набора шрифта Wingdings (можно использовать зарезервированные слова: SYMBOL_THUMBSUP - числовое значение 67, SYMBOL_THUMBSDOWN - 68, SYMBOL_ARROWUP - 241, SYMBOL_ARROWDOWN - 242, SYMBOL_STOPSIGN - 251, SYMBOL_CHECKSIGN - 252;
color - цвет пиктограммы.

SetDebugMode
- устанавливает режим вывода отладочной информации.
Синтаксис: SetDebugMode( mode )
Параметр: режим вывода отладочной информации, может принимать одно из значений: MODE_FILE (вывод в файл; вся отладочная информация, а также информация, выводимая функцией Print будет поступать в отдельный лог-файл с именем вида NNNNSSP.log, где NNNN - имя эксперта, SS - наименование инструмента, P - период графика), MODE_VALUES (вывод значений всех переменных после завершения работы эксперта), MODE_DETAILS (вывод времени выполнения эксперта, количества выполненных инструкций, остаточный размер стека), 0 (отмена ранее установленных режимов).
Примечание. Допускается комбинация режимов при помощи операции сложения. Например, SetDebugMode( MODE_FILE+MODE_DETAILS );

SetGlobalVariable
- установить указанное числовое значение для указанной глобальной переменной. Если указанной глобальной переменной не существует, она будет создана. Глобальные переменные доступны любому эксперту. Глобальные переменные хранятся в файле gvariables.dat. Если в течение 2 недель к глобальной переменной не обращались, то она будет автоматически удалена.
Синтаксис: SetGlobalVariable( name, value )
Параметры:
name - имя глобальной переменной в виде текстовой строки;
value - устанавливаемое числовое значение указанной глобальной переменной.

SetIndexValue
- установить указанное числовое значение указанному элементу массива данных пользовательского индикатора.
Синтаксис: SetIndexValue( shift, value )
Параметры:
shift - смещение относительно текущего бара (количество периодов назад), куда нужно записать значение индикатора;
value - устанавливаемое числовое значение.

SetIndexValue2
- установить указанное числовое значение указанному элементу второго массива данных пользовательского индикатора.
Синтаксис: SetIndexValue2( shift, value )
Параметры:
shift - смещение относительно текущего бара (количество периодов назад), куда нужно записать значение индикатора;
value - устанавливаемое числовое значение.

SetLoopCount
- установить предельное значение количества выполняемых инструкций. Эта функция позволяет ограничить время выполнения эксперта. По умолчанию используется значение 1000000. Специальное значение 0 позволяет отключать контроль количества выполненных инструкций, однако, в целях защиты от бесконечного цикла эксперт не будет работать больше одной секунды.
Синтаксис: SetLoopCount( count )
Параметр: count - предельное значение количества выполняемых инструкций.

SetObjectText
- установить текстовую строку именованному объекту типа OBJ_TEXT.
Синтаксис: SetObjectText( name, text, font, size, color )
Параметры:
name - имя объекта;
text - указанный текст;
font - имя шрифта;
size - размер шрифта;
color - цвет текста.

SetOrder
- главная функция по открытию позиции или установке отложенного ордера
Синтаксис: SetOrder( operation, lots, price, slippage, stoploss, takeprofit, color )
Параметры:
operation - тип операции, может принимать следующие значения: OP_BUY (открытие позиции на покупку), OP_SELL (открытие позиции на продажу), OP_BUYLIMIT, OP_SELLLIMIT, OP_BUYSTOP, OP_SELLSTOP (установки отложенного ордера);
lots - количество лотов;
price - предпочитаемая цена совершения сделки;
slippage - величина максимального проскальзывания для операций OP_BUY и OP_SELL;
stoploss - уровень ограничения потерь;
takeprofit - уровень снятия прибыли;
color - цвет стрелки, помещаемой на график при вызове функции.

SetText
- установка текстовой строки на графике в указанную позицию.
Синтаксис: SetText( time, price, string, color )
Параметры:
time - точка привязки на графике по времени;
price - точка привязки на графике по цене;
string - текстовая строка;
color - цвет текста.

Sin
- вычисляет и возвращает синус числового значения, представляющего собой угол в радианах.
Синтаксис: Sin( nExpression )
Параметр: числовое значение.

Sqrt
- вычисляет и возвращает квадратный корень указанного положительного числового значения.
Синтаксис: Sqrt( nExpression )
Параметр: положительное числовое значение.

Srand
- устанавливает генератор псевдослучайных чисел в начальное положение. При необходимости использования генератора установка производится однократно в начале программы. В качестве значения для установки начального значения лучше всего использовать число, возвращаемое функцией Time. В этом случае увеличивается случайность генерации последовательностей.
Синтаксис: Srand( Time )
Параметр: положительное числовое значение.

StrToTime
- возвращает числовое значение времени, преобразованное из текстовой строки вида "yyyy.mm.dd hh:mi"
Синтаксис: StrToTime( DateTimeString )
Параметр: дата и время в символьном формате.
Примечание: допускаются строки типа "yyyy.mm.dd hh:mi", "yyyy.mm.dd", "hh:mi". Недостающие данные будут заполнены из текущих даты и времени.

Symbol
- возвращает текстовую строку с названием финансового инструмента, на котором работает программа-эксперт.

Tan
- вычисляет и возвращает тангенс числового значения, представляющего собой угол в радианах.
Синтаксис: Tan( nExpression )
Параметр: числовое значение.

TimeDay
- возвращает порядковый номер дня в месяце указанного числового значения времени.
Синтаксис: TimeDay( Time )
Параметр: положительное числовое значение.

TimeDayOfWeek
- возвращает порядковый номер дня в неделе указанного числового значения времени. 1 - воскресенье, 2 - понедельник, … , 7 - суббота.
Синтаксис: TimeDayOfWeek( Time )
Параметр: положительное числовое значение.

TimeHour
- возвращает порядковый номер часа в сутках указанного числового значения времени.
Синтаксис: TimeHour( Time )
Параметр: положительное числовое значение.

TimeMinute
- возвращает порядковый номер минуты в часе указанного числового значения времени.
Синтаксис: TimeMinute( Time )
Параметр: положительное числовое значение.

TimeMonth
- возвращает порядковый номер месяца указанного числового значения времени.
Синтаксис: TimeMonth( Time )
Параметр: положительное числовое значение.

TimeSeconds
- возвращает порядковый номер секунды в минуте указанного числового значения времени.

Синтаксис: TimeSeconds( Time )
Параметр: положительное числовое значение.

TimeToStr
- возвращает текстовую строку вида "yyyy.mm.dd hh:mi", преобразованную из указанного числового значения, представляющего собой число секунд, прошедших с 0 часов 1 января 1970 года.
Синтаксис: TimeToStr( Time )
Параметр: положительное числовое значение.

TimeToStrEx
- возвращает текстовую строку вида "yyyy.mm.dd hh:mi", преобразованную из указанного числового значения, представляющего собой число секунд, прошедших с 0 часов 1 января 1970 года.
Синтаксис: TimeToStr( Time, mode )
Параметры:
Time - положительное числовое значение, представляющее собой количество секунд, прошедших с 0 часов 1 января 1970 года.
mode - режим преобразования времени в текстовую строку. Может принимать одно из перечисленных значений (или комбинацию): TIME_DATE (получение строки года в виде "yyyy.mm.dd"),TIME_MINUTES (получение строки времени в виде "hh:mi"), TIME_SECONDS (получение строки времени в виде "hh:mi:ss".
Примеры: TimeToStrEx( CurTime, TIME_DATE+TIME_SECONDS); // будет выведена строка вида "yyyy.mm.dd hh:mi:ss"
TimeToStrEx( CurTime, TIME_DATE+TIME_MINUTES); // эквивалентно TimeToStr( CurTime )

TimeYear
- возвращает номер года указанного числового значения времени.
Синтаксис: TimeYear( Time )
Параметр: положительное числовое значение.

UserFunction
- вызывает для выполнения указанную MQLII-программу.
Синтаксис: UserFunction( name [, parameter1 [,parameter2 ....]] )
Параметры:
name - имя пользовательской функции;
parameter1, parameter2... - числовые параметры (если необходимы).
Пользовательская функция - это простая программа-эксперт, написанная на языке MQLII и прошедшая трансляцию. Параметры для этой программы передаются в той последовательности, в которой они перечислены в инструкции Inputs. В качестве параметров могут выступать только числовые значения! Для возврата значения из пользовательской функции используется функция Return. Функция UserFunction возвращает то самое значение, которое было установлено функцией Return в пользовательской программе.

Year
- возвращает номер текущего года(аналог TimeYear( CurTime )).



Содержание | назад | далее   
 














о компании | контакты © NEUIMEX TEAM ® Главная   о компании   Вверх
Forex / Форекс Инвестиции, доверительное управление, интернет трейдинг – NEUIMEX :: Articles catalogue

transmaster-omsk.ru v 4_2