Для облегчения написания программ, а также для удобства восприятия исходных текстов программ, в языке MQL4 предусмотрены предопределенные стандартные константы.
Стандартные константы являются аналогом макроподстановок и имеют тип int.
Константы сгруппированы по своему назначению
Таймсерии
Идентификаторы таймсерий используются в функциях ArrayCopySeries(), iHighest() и iLowest(). Mогут быть одной из следующих величин:
Константа | Значение | Описание |
MODE_OPEN | 0 | Цена открытия |
MODE_LOW | 1 | Минимальная цена |
MODE_HIGH | 2 | Максимальная цена |
MODE_CLOSE | 3 | Цена закрытия |
MODE_VOLUME | 4 | Объем (количество тиков, сформировавших бар) |
MODE_TIME | 5 | Время открытия бара |
Периоды графиков
Период графика может быть любым из следующих величин:
Константа | Значение | Описание |
PERIOD_M1 | 1 | 1 минута |
PERIOD_M5 | 5 | 5 минут |
PERIOD_M15 | 15 | 15 минут |
PERIOD_M30 | 30 | 30 минут |
PERIOD_H1 | 60 | 1 час |
PERIOD_H4 | 240 | 4 часа |
PERIOD_D1 | 1440 | 1 день |
PERIOD_W1 | 10080 | 1 неделя |
PERIOD_MN1 | 43200 | 1 месяц |
0 (ноль) | 0 | Период текущего графика |
Торговые операции
Тип операций для функции OrderSend(). Mожет быть любым из следующих величин:
Константа | Значение | Описание |
OP_BUY | 0 | Покупка |
OP_SELL | 1 | Продажа |
OP_BUYLIMIT | 2 | Отложенный ордер BUY LIMIT |
OP_SELLLIMIT | 3 | Отложенный ордер SELL LIMIT |
OP_BUYSTOP | 4 | Отложенный ордер BUY STOP |
OP_SELLSTOP | 5 | Отложенный ордер SELL STOP |
Ценовые константы
Используемая цена для расчёта индикаторов может принимать любое из следующих значений:
|
MarketInfo
Идентификаторы запроса, используемые в функции MarketInfo(). Mогут быть одной из следующего величин:
Константа | Значение | Описание |
MODE_LOW | 1 | Минимальная дневная цена |
MODE_HIGH | 2 | Максимальная дневная цена |
MODE_TIME | 5 | Время поступления последней котировки |
MODE_BID | 9 | Последняя поступившая цена предложения. Для текущего инструмента хранится в предопределенной переменной Bid |
MODE_ASK | 10 | Последняя поступившая цена продажи. Для текущего инструмента хранится в предопределенной переменной Ask |
MODE_POINT | 11 | Размер пункта в валюте котировки. Для текущего инструмента хранится в предопределенной переменной Point |
MODE_DIGITS | 12 | Количество цифр после десятичного точки в цене инструмента. Для текущего инструмента хранится в предопределенной переменной Digits |
MODE_SPREAD | 13 | Спрэд в пунктах |
MODE_STOPLEVEL | 14 | Минимально допустимый уровень стоп-лосса/тейк-профита в пунктах |
MODE_LOTSIZE | 15 | Размер контракта в базовой валюте инструмента |
MODE_TICKVALUE | 16 | Размер минимального изменения цены инструмента в валюте депозита |
MODE_TICKSIZE | 17 | Минимальный шаг изменения цены инструмента в пунктах |
MODE_SWAPLONG | 18 | Размер свопа для длинных позиций |
MODE_SWAPSHORT | 19 | Размер свопа для коротких позиций |
MODE_STARTING | 20 | Календарная дата начала торгов (обычно используется для фьючерсов) |
MODE_EXPIRATION | 21 | Календарная дата конца торгов (обычно используется для фьючерсов) |
MODE_TRADEALLOWED | 22 | Разрешение торгов по указанному инструменту |
MODE_MINLOT | 23 | Минимальный размер лота |
MODE_LOTSTEP | 24 | Шаг изменения размера лота |
MODE_MAXLOT | 25 | Максимальный размер лота |
MODE_SWAPTYPE | 26 | Метод вычисления свопов. 0 — в пунктах; 1 — в базовой валюте инструмента; 2 — в процентах; 3 — в валюте залоговых средств. |
MODE_PROFITCALCMODE | 27 | Способ расчета прибыли. 0 — Forex; 1 — CFD; 2 — Futures |
MODE_MARGINCALCMODE | 28 | Способ расчета залоговых средств. 0 — Forex; 1 — CFD; 2 — Futures; 3 — CFD на индексы |
MODE_MARGININIT | 29 | Начальные залоговые требования для 1 лота |
MODE_MARGINMAINTENANCE | 30 | Размер залоговых средств для поддержки открытых позиций в расчете на 1 лот |
MODE_MARGINHEDGED | 31 | Маржа, взимаемая с перекрытых позиций в расчете на 1 лот |
MODE_MARGINREQUIRED | 32 | Размер свободных средств, необходимых для открытия 1 лота на покупку |
MODE_FREEZELEVEL | 33 | Уровень заморозки ордеров в пунктах. Если цена исполнения находится в пределах, определяемых уровнем заморозки, то ордер не может быть модифицирован, отменен или закрыт |
Стили рисования
Перечисленние стилей рисования для функций SetIndexStyle() и SetLevelStyle(). Может быть любым из следующего величин:
Константа | Значение | Описание |
DRAW_LINE | 0 | Простая линия |
DRAW_SECTION | 1 | Отрезки между непустыми значениями линии |
DRAW_HISTOGRAM | 2 | Гистограмма |
DRAW_ARROW | 3 | Стрелки (символы) |
DRAW_ZIGZAG | 4 | Отрезки между непустыми значениями чётной и нечётной линий (зигзаг) |
DRAW_NONE | 12 | Отсутствие какого-либо рисования |
Стиль линии. Используется только при толщине линии 0 или 1. Может быть любое из следующих значений:
Константа | Значение | Описание |
STYLE_SOLID | 0 | Сплошная линия |
STYLE_DASH | 1 | Штриховая линия |
STYLE_DOT | 2 | Пунктирная линия |
STYLE_DASHDOT | 3 | Штрих-пунктирная линия |
STYLE_DASHDOTDOT | 4 | Штрих-пунктирная линия с двойными точками |
Стиль линии может также использоваться для получения или установки свойства OBJPROP_STYLE объекта
Коды стрелок
Константы кодов стрелок. Mогут иметь следующие значения:
Константа | Значение | Описание |
SYMBOL_THUMBSUP | 67 | Символ — большой палец вверх |
SYMBOL_THUMBSDOWN | 68 | Символ — большой палец вниз |
SYMBOL_ARROWUP | 241 | Символ — стрелка вверх |
SYMBOL_ARROWDOWN | 242 | Символ — стрелка вниз |
SYMBOL_STOPSIGN | 251 | Символ — СТОП |
SYMBOL_CHECKSIGN | 252 | Символ — галочка |
Специальные коды стрелок, которые точно указывают на цену и время. Mогут быть следующими величинами:
Константа | Значение | Описание |
1 | Восходящая стрелка с подсказкой направо (↱) | |
2 | Нисходящая стрелка с подсказкой направо (↳) | |
3 | Левый указывающий треугольник (◄) | |
4 | Символ Черточки (–) | |
SYMBOL_LEFTPRICE | 5 | Левая ценовая метка |
SYMBOL_RIGHTPRICE | 6 | Правая ценовая метка |
Специальные коды стрелок не могут использоваться в пользовательских индикаторах при установке значения стрелки для линий, имеющих стиль DRAW_ARROW
Набор Web-цветов
Тип color, поддерживающий цветовые константы:
Линии индикаторов
Идентификаторы линий индикаторов, используемых при вызове функций iMACD(), iRVI() и iStochastic(). Mогут иметь одно из следующего значений:
Константа | Значение | Описание |
MODE_MAIN | 0 | Основная линия |
MODE_SIGNAL | 1 | Сигнальная линия |
Идентификаторы линий Average Directional Movement Index, используемых при вызове функции iADX():
Константа | Значение | Описание |
MODE_MAIN | 0 | Основная линия |
MODE_PLUSDI | 1 | Линия +DI |
MODE_MINUSDI | 2 | Линия -DI |
Идентификаторы линий индикаторов, используемых при вызове функций iBands(), iEnvelopes(), iEnvelopesOnArray(), iFractals() и iGator():
Константа | Значение | Описание |
MODE_UPPER | 1 | Верхняя линия |
MODE_LOWER | 2 | Нижняя линия |
Ichimoku Kinko Hyo
Идентификаторы линий индикатора Ichimoku Kinko Hyo, используемых при вызове функции iIchimoku(). Могут иметь одно из следующих значений:
Константа | Значение | Описание |
MODE_TENKANSEN | 1 | Tenkan-sen |
MODE_KIJUNSEN | 2 | Kijun-sen |
MODE_SENKOUSPANA | 3 | Senkou Span A |
MODE_SENKOUSPANB | 4 | Senkou Span B |
MODE_CHINKOUSPAN | 5 | Chinkou Span |
Методы скользящих
Метод вычисления скользящего среднего (Moving Average). Используется в индикаторах iAlligator(), iEnvelopes(), iEnvelopesOnArray, iForce(), iGator(), iMA(), iMAOnArray(), iStdDev(), iStdDevOnArray() и iStochastic(). Mожет быть одним из следующих:
Константа | Значение | Описание |
MODE_SMA | 0 | Простое скользящее среднее |
MODE_EMA | 1 | Экспоненциальное скользящее среднее |
MODE_SMMA | 2 | Сглаженное скользящее среднее |
MODE_LWMA | 3 | Линейно-взвешенное скользящее среднее |
MessageBox
Коды возврата функции MessageBox(). Если окно сообщения имеет кнопку Отмена (Cancel), то функция возвращает значение IDCANCEL при нажатой клавише ESC или кнопке Отмена (Cancel). Если окно сообщения не имеет кнопки Отмена (Cancel), нажатие ESC не дает никакого эффекта.
Константа | Значение | Описание |
IDOK | 1 | Выбрана кнопка OK |
IDCANCEL | 2 | Выбрана кнопка Отмена (Cancel) |
IDABORT | 3 | Выбрана кнопка Прервать (Abort) |
IDRETRY | 4 | Выбрана кнопка Повтор (Retry) |
IDIGNORE | 5 | Выбрана кнопка Пропустить (Ignore) |
IDYES | 6 | Выбрана кнопка Да (Yes) |
IDNO | 7 | Выбрана кнопка Нет (No) |
IDTRYAGAIN | 10 | Выбрана кнопка Повторить (Try Again) |
IDCONTINUE | 11 | Выбрана кнопка Продолжить (Continue) |
Эти коды возврата определены в файле WinUser32.mqh, поэтому необходимо включать этот заголовочный файл в программы через #include <WinUser32.mqh>.
Основные флаги функции MessageBox() определяют содержание и поведение диалогового окна. Это значение может быть комбинацией флагов из следующих групп флагов:
Константа | Значение | Описание |
MB_OK | 0x00000000 | Окно сообщения содержит одну кнопку: OK. По умолчанию |
MB_OKCANCEL | 0x00000001 | Окно сообщения содержит две кнопки: OK и Cancel |
MB_ABORTRETRYIGNORE | 0x00000002 | Окно сообщения содержит три кнопки: Abort, Retry и Ignore |
MB_YESNOCANCEL | 0x00000003 | Окно сообщения содержит три кнопки: Yes, No и Cancel |
MB_YESNO | 0x00000004 | Окно сообщения содержит две кнопки: Yes и No |
MB_RETRYCANCEL | 0x00000005 | Окно сообщения содержит две кнопки: Retry и Cancel |
MB_CANCELTRYCONTINUE | 0x00000006 | Окно сообщения содержит три кнопки: Cancel, Try Again, Continue |
Для отображения иконки в окне сообщения необходимо определить дополнительные флаги:
Константа | Значение | Описание |
MB_ICONSTOP, MB_ICONERROR, MB_ICONHAND | 0x00000010 | Изображение знака STOP |
MB_ICONQUESTION | 0x00000020 | Изображение вопросительного знака |
MB_ICONEXCLAMATION, MB_ICONWARNING | 0x00000030 | Изображение восклицательного знака |
MB_ICONINFORMATION, MB_ICONASTERISK | 0x00000040 | Изображение, состоящее из строчного знака i в круге |
Кнопки по умолчанию задаются следующими флагами:
Константа | Значение | Описание |
MB_DEFBUTTON1 | 0x00000000 | Первая кнопка MB_DEFBUTTON1 — кнопка выбрана по умолчанию, если MB_DEFBUTTON2, MB_DEFBUTTON3, или MB_DEFBUTTON4 не определены |
MB_DEFBUTTON2 | 0x00000100 | Вторая кнопка — кнопка по умолчанию |
MB_DEFBUTTON3 | 0x00000200 | Третья кнопка — кнопка по умолчанию |
MB_DEFBUTTON4 | 0x00000300 | Четвертая кнопка — кнопка по умолчанию |
Флаги поведения функции MessageBox() определены в файле WinUser32.mqh, поэтому необходимо включать этот заголовочный файл в программы через #include <WinUser32.mqh>. Здесь перечислены не все возможные флаги. Более подробную информацию можно получить в описании Win32 API.
Типы объектов
Идентификаторы типов графических объектов используются в функциях ObjectCreate(), ObjectsDeleteAll() и ObjectType(). Mогут быть любыми из следующих величин (объекты могут иметь 1-3 координаты в зависимости от типа):
Константа | Значение | Описание |
OBJ_VLINE | 0 | Вертикальная линия. Использует время в качестве первой координаты, цена игнорируется |
OBJ_HLINE | 1 | Горизонтальная линия. Использует цену в качестве первой координаты, время игнорируется |
OBJ_TREND | 2 | Трендовая линия. Использует 2 координаты |
OBJ_TRENDBYANGLE | 3 | Трендовая линия по углу. Использует 2 координаты, либо первую координату и угол. Для установки угла линии (свойство OBJPROP_ANGLE) используется функция ObjectSet() |
OBJ_REGRESSION | 4 | Канал линейной регрессии. Использует временные составляющие 2 координат, ценовые составляющие игнорируются |
OBJ_CHANNEL | 5 | Равноудаленный канал. Использует 3 координаты |
OBJ_STDDEVCHANNEL | 6 | Канал стандартных отклонений. Использует временные составляющие 2 координат, ценовые составляющие игнорируются |
OBJ_GANNLINE | 7 | Линия Ганна. Использует 2 координаты, но ценовая составляющая второй координаты игнорируется. Для установки соотношения между временной и ценовой шкалами (свойство OBJPROP_SCALE) используется функция ObjectSet() |
OBJ_GANNFAN | 8 | Веер Ганна. Использует 2 координаты, но ценовая составляющая второй координаты игнорируется. Для установки соотношения между временной и ценовой шкалами (свойство OBJPROP_SCALE) используется функция ObjectSet() |
OBJ_GANNGRID | 9 | Сетка Ганна. Использует 2 координаты, но ценовая составляющая второй координаты игнорируется. Для установки соотношения между временной и ценовой шкалами (свойство OBJPROP_SCALE) используется функция ObjectSet() |
OBJ_FIBO | 10 | Уровни Фибоначчи. Использует 2 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet() |
OBJ_FIBOTIMES | 11 | Временные зоны Фибоначчи. Использует 2 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet() |
OBJ_FIBOFAN | 12 | Веер Фибоначчи. Использует 2 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet() |
OBJ_FIBOARC | 13 | Дуги Фибоначчи. Использует 2 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet() |
OBJ_EXPANSION | 14 | Расширение Фибоначчи. Использует 3 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet() |
OBJ_FIBOCHANNEL | 15 | Канал Фибоначчи. Использует 3 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet() |
OBJ_RECTANGLE | 16 | Прямоугольник. Использует 2 координаты |
OBJ_TRIANGLE | 17 | Треугольник. Использует 3 координаты |
OBJ_ELLIPSE | 18 | Эллипс. Использует 2 координаты. Для установки соотношения между временной и ценовой шкалами (свойство OBJPROP_SCALE) используется функция ObjectSet() |
OBJ_PITCHFORK | 19 | Вилы Эндрюса. Использует 3 координаты |
OBJ_CYCLES | 20 | Временные ряды (циклические линии). Использует 2 координаты |
OBJ_TEXT | 21 | Текст. Использует 1 координату. Для установки угла выводимого текста (свойство OBJPROP_ANGLE) используется функция ObjectSet(). Для изменения текста используется функция ObjectSetText() |
OBJ_ARROW | 22 | Стрелки (символы). Использует 1 координату. Для установки кода символа (свойство OBJPROP_ARROWCODE) используется функция ObjectSet() |
OBJ_LABEL | 23 | Текстовая метка. Не использует координат. Для установки координат, задаваемых в пикселях относительно угла привязки (свойства OBJPROP_CORNER, OBJPROP_XDISTANCE, OBJPROP_YDISTANCE) используется функция ObjectSet(). Для изменения текста используется функция ObjectSetText() |
Свойства объектов
Идентификаторы свойств объекта используются в функциях ObjectGet() и ObjectSet(). Mогут быть любыми из следующих величин:
Константа | Значение | Тип | Описание |
OBJPROP_TIME1 | 0 | datetime | Получает/устанавливает первую координату времени |
OBJPROP_PRICE1 | 1 | double | Получает/устанавливает первую координату цены |
OBJPROP_TIME2 | 2 | datetime | Получает/устанавливает вторую координату времени |
OBJPROP_PRICE2 | 3 | double | Получает/устанавливает вторую координату цены |
OBJPROP_TIME3 | 4 | datetime | Получает/устанавливает третью координату времени |
OBJPROP_PRICE3 | 5 | double | Получает/устанавливает третью координату цены |
OBJPROP_COLOR | 6 | color | Получает/устанавливает цвет объекта |
OBJPROP_STYLE | 7 | int | Получает/устанавливает стиль линии объекта |
OBJPROP_WIDTH | 8 | int | Получает/устанавливает ширину линии объекта |
OBJPROP_BACK | 9 | bool | Получает/устанавливает флаг фонового отображения объекта |
OBJPROP_RAY | 10 | bool | Получает/устанавливает флаг свойства луч для объектов типа OBJ_TREND и ему подобных |
OBJPROP_ELLIPSE | 11 | bool | Получает/устанавливает флаг отображения полного эллипса для объекта OBJ_FIBOARC |
OBJPROP_SCALE | 12 | double | Получает/устанавливает значение масштаба объекта |
OBJPROP_ANGLE | 13 | double | Получает/устанавливает значение угла в градусах объекта OBJ_TRENDBYANGLE |
OBJPROP_ARROWCODE | 14 | int | Получает/устанавливает код стрелки объекта OBJ_ARROW. Может быть одним из символов wingdings или один из предопределенных кодов стрелок |
OBJPROP_TIMEFRAMES | 15 | int | Получает/устанавливает свойство отображения объекта на различных периодах. Может быть одним или комбинацией нескольких из констант видимости объекта. |
OBJPROP_DEVIATION | 16 | double | Получает/устанавливает размер отклонения для объекта OBJ_STDDEVCHANNEL |
OBJPROP_FONTSIZE | 100 | int | Получает/устанавливает размер шрифта для объектов OBJ_TEXT и OBJ_LABEL |
OBJPROP_CORNER | 101 | int | Получает/устанавливает номер угла привязки для объекта OBJ_LABEL. Принимает значения 0-3 |
OBJPROP_XDISTANCE | 102 | int | Получает/устанавливает расстояние X-координаты в пикселях относительно угла привязки для объекта OBJ_LABEL |
OBJPROP_YDISTANCE | 103 | int | Получает/устанавливает расстояние Y-координаты в пикселях относительно угла привязки для объекта OBJ_LABEL |
OBJPROP_FIBOLEVELS | 200 | int | Получает/устанавливает число уровней объекта Fibonacci. Может быть от 1 до 32 |
OBJPROP_LEVELCOLOR | 201 | color | Получает/устанавливает цвет линии уровня объекта |
OBJPROP_LEVELSTYLE | 202 | int | Получает/устанавливает стиль линии уровня объекта |
OBJPROP_LEVELWIDTH | 203 | int | Получает/устанавливает ширину линии уровня объекта |
OBJPROP_FIRSTLEVEL+n | 210+n | int | Получает/устанавливает значения уровня объекта Fibonacci с индексом n. Индекс n может быть от 0 до (количество уровней -1), но не более 31 |
Видимость объектов
Идентификаторы свойств объекта используются в функциях ObjectGet() и ObjectSet(). Mогут быть любыми из следующих величин:
Константа | Значение | Тип | Описание |
OBJPROP_TIME1 | 0 | datetime | Получает/устанавливает первую координату времени |
OBJPROP_PRICE1 | 1 | double | Получает/устанавливает первую координату цены |
OBJPROP_TIME2 | 2 | datetime | Получает/устанавливает вторую координату времени |
OBJPROP_PRICE2 | 3 | double | Получает/устанавливает вторую координату цены |
OBJPROP_TIME3 | 4 | datetime | Получает/устанавливает третью координату времени |
OBJPROP_PRICE3 | 5 | double | Получает/устанавливает третью координату цены |
OBJPROP_COLOR | 6 | color | Получает/устанавливает цвет объекта |
OBJPROP_STYLE | 7 | int | Получает/устанавливает стиль линии объекта |
OBJPROP_WIDTH | 8 | int | Получает/устанавливает ширину линии объекта |
OBJPROP_BACK | 9 | bool | Получает/устанавливает флаг фонового отображения объекта |
OBJPROP_RAY | 10 | bool | Получает/устанавливает флаг свойства луч для объектов типа OBJ_TREND и ему подобных |
OBJPROP_ELLIPSE | 11 | bool | Получает/устанавливает флаг отображения полного эллипса для объекта OBJ_FIBOARC |
OBJPROP_SCALE | 12 | double | Получает/устанавливает значение масштаба объекта |
OBJPROP_ANGLE | 13 | double | Получает/устанавливает значение угла в градусах объекта OBJ_TRENDBYANGLE |
OBJPROP_ARROWCODE | 14 | int | Получает/устанавливает код стрелки объекта OBJ_ARROW. Может быть одним из символов wingdings или один из предопределенных кодов стрелок |
OBJPROP_TIMEFRAMES | 15 | int | Получает/устанавливает свойство отображения объекта на различных периодах. Может быть одним или комбинацией нескольких из констант видимости объекта. |
OBJPROP_DEVIATION | 16 | double | Получает/устанавливает размер отклонения для объекта OBJ_STDDEVCHANNEL |
OBJPROP_FONTSIZE | 100 | int | Получает/устанавливает размер шрифта для объектов OBJ_TEXT и OBJ_LABEL |
OBJPROP_CORNER | 101 | int | Получает/устанавливает номер угла привязки для объекта OBJ_LABEL. Принимает значения 0-3 |
OBJPROP_XDISTANCE | 102 | int | Получает/устанавливает расстояние X-координаты в пикселях относительно угла привязки для объекта OBJ_LABEL |
OBJPROP_YDISTANCE | 103 | int | Получает/устанавливает расстояние Y-координаты в пикселях относительно угла привязки для объекта OBJ_LABEL |
OBJPROP_FIBOLEVELS | 200 | int | Получает/устанавливает число уровней объекта Fibonacci. Может быть от 1 до 32 |
OBJPROP_LEVELCOLOR | 201 | color | Получает/устанавливает цвет линии уровня объекта |
OBJPROP_LEVELSTYLE | 202 | int | Получает/устанавливает стиль линии уровня объекта |
OBJPROP_LEVELWIDTH | 203 | int | Получает/устанавливает ширину линии уровня объекта |
OBJPROP_FIRSTLEVEL+n | 210+n | int | Получает/устанавливает значения уровня объекта Fibonacci с индексом n. Индекс n может быть от 0 до (количество уровней -1), но не более 31 |
Причины деинициализации
Коды причины деинициализации, возвращаемые функцией UninitializeReason(). Mогут иметь любые из следующих значений:
Константа | Значение | Описание |
0 | Скрипт самостоятельно завершил свою работу | |
REASON_REMOVE | 1 | Программа удалена с графика |
REASON_RECOMPILE | 2 | Программа перекомпилирована |
REASON_CHARTCHANGE | 3 | Символ или период графика был изменен |
REASON_CHARTCLOSE | 4 | График закрыт |
REASON_PARAMETERS | 5 | Входные параметры были изменены пользователем |
REASON_ACCOUNT | 6 | Активирован другой счет |
Специальные константы
Специальные константы, используемые для указания состояния параметров и переменных. Mогут быть следующими величинами:
Константа | Значение | Описание |
NULL | 0 | Указывает пустое состояние строки |
EMPTY | -1 | Указывает пустое состояние параметра |
EMPTY_VALUE | 0x7FFFFFFF | Значение по умолчанию, указатель пустого значения. Используется в пользовательских индикаторах |
CLR_NONE | 0xFFFFFFFF | Указывает отсутствие цвета |
WHOLE_ARRAY | 0 | Используется с функциями массивов. Указывает, что все элементы массива должны быть обработаны |
Коды ошибок
GetLastError() — функция, возвращающая коды ошибок. Кодовые константы ошибок определены в файле stderror.mqh. Для вывода текстовых сообщений следует использовать функцию ErrorDescription(), определенную в файле stdlib.mqh.
Пример:
#include <stderror.mqh> #include <stdlib.mqh> void SendMyMessage(string text) { int check; SendMail("Test", text); check=GetLastError(); if(check!=ERR_NO_ERROR) Print("Сообщение не отправлено. Ошибка: ",ErrorDescription(check)); }
Коды ошибок, возвращаемые торговым сервером:
Константа | Значение | Описание |
ERR_NO_ERROR | 0 | Нет ошибки |
ERR_NO_RESULT | 1 | Нет ошибки, но результат неизвестен |
ERR_COMMON_ERROR | 2 | Общая ошибка |
ERR_INVALID_TRADE_PARAMETERS | 3 | Неправильные параметры |
ERR_SERVER_BUSY | 4 | Торговый сервер занят |
ERR_OLD_VERSION | 5 | Старая версия клиентского терминала |
ERR_NO_CONNECTION | 6 | Нет связи с торговым сервером |
ERR_NOT_ENOUGH_RIGHTS | 7 | Недостаточно прав |
ERR_TOO_FREQUENT_REQUESTS | 8 | Слишком частые запросы |
ERR_MALFUNCTIONAL_TRADE | 9 | Недопустимая операция нарушающая функционирование сервера |
ERR_ACCOUNT_DISABLED | 64 | Счет заблокирован |
ERR_INVALID_ACCOUNT | 65 | Неправильный номер счета |
ERR_TRADE_TIMEOUT | 128 | Истек срок ожидания совершения сделки |
ERR_INVALID_PRICE | 129 | Неправильная цена |
ERR_INVALID_STOPS | 130 | Неправильные стопы |
ERR_INVALID_TRADE_VOLUME | 131 | Неправильный объем |
ERR_MARKET_CLOSED | 132 | Рынок закрыт |
ERR_TRADE_DISABLED | 133 | Торговля запрещена |
ERR_NOT_ENOUGH_MONEY | 134 | Недостаточно денег для совершения операции |
ERR_PRICE_CHANGED | 135 | Цена изменилась |
ERR_OFF_QUOTES | 136 | Нет цен |
ERR_BROKER_BUSY | 137 | Брокер занят |
ERR_REQUOTE | 138 | Новые цены |
ERR_ORDER_LOCKED | 139 | Ордер заблокирован и уже обрабатывается |
ERR_LONG_POSITIONS_ONLY_ALLOWED | 140 | Разрешена только покупка |
ERR_TOO_MANY_REQUESTS | 141 | Слишком много запросов |
ERR_TRADE_MODIFY_DENIED | 145 | Модификация запрещена, так как ордер слишком близок к рынку |
ERR_TRADE_CONTEXT_BUSY | 146 | Подсистема торговли занята |
ERR_TRADE_EXPIRATION_DENIED | 147 | Использование даты истечения ордера запрещено брокером |
ERR_TRADE_TOO_MANY_ORDERS | 148 | Количество открытых и отложенных ордеров достигло предела, установленного брокером. |
ERR_TRADE_HEDGE_PROHIBITED | 149 | Попытка открыть противоположную позицию к уже существующей в случае, если хеджирование запрещено. |
ERR_TRADE_PROHIBITED_BY_FIFO | 150 | Попытка закрыть позицию по инструменту в противоречии с правилом FIFO. |
Коды ошибок выполнения MQL4-программы:
Константа | Значение | Описание |
ERR_NO_MQLERROR | 4000 | Нет ошибки |
ERR_WRONG_FUNCTION_POINTER | 4001 | Неправильный указатель функции |
ERR_ARRAY_INDEX_OUT_OF_RANGE | 4002 | Индекс массива — вне диапазона |
ERR_NO_MEMORY_FOR_CALL_STACK | 4003 | Нет памяти для стека функций |
ERR_RECURSIVE_STACK_OVERFLOW | 4004 | Переполнение стека после рекурсивного вызова |
ERR_NOT_ENOUGH_STACK_FOR_PARAM | 4005 | На стеке нет памяти для передачи параметров |
ERR_NO_MEMORY_FOR_PARAM_STRING | 4006 | Нет памяти для строкового параметра |
ERR_NO_MEMORY_FOR_TEMP_STRING | 4007 | Нет памяти для временной строки |
ERR_NOT_INITIALIZED_STRING | 4008 | Неинициализированная строка |
ERR_NOT_INITIALIZED_ARRAYSTRING | 4009 | Неинициализированная строка в массиве |
ERR_NO_MEMORY_FOR_ARRAYSTRING | 4010 | Нет памяти для строкового массива |
ERR_TOO_LONG_STRING | 4011 | Слишком длинная строка |
ERR_REMAINDER_FROM_ZERO_DIVIDE | 4012 | Остаток от деления на ноль |
ERR_ZERO_DIVIDE | 4013 | Деление на ноль |
ERR_UNKNOWN_COMMAND | 4014 | Неизвестная команда |
ERR_WRONG_JUMP | 4015 | Неправильный переход |
ERR_NOT_INITIALIZED_ARRAY | 4016 | Неинициализированный массив |
ERR_DLL_CALLS_NOT_ALLOWED | 4017 | Вызовы DLL не разрешены |
ERR_CANNOT_LOAD_LIBRARY | 4018 | Невозможно загрузить библиотеку |
ERR_CANNOT_CALL_FUNCTION | 4019 | Невозможно вызвать функцию |
ERR_EXTERNAL_CALLS_NOT_ALLOWED | 4020 | Вызовы внешних библиотечных функций не разрешены |
ERR_NO_MEMORY_FOR_RETURNED_STR | 4021 | Недостаточно памяти для строки, возвращаемой из функции |
ERR_SYSTEM_BUSY | 4022 | Система занята |
ERR_INVALID_FUNCTION_PARAMSCNT | 4050 | Неправильное количество параметров функции |
ERR_INVALID_FUNCTION_PARAMVALUE | 4051 | Недопустимое значение параметра функции |
ERR_STRING_FUNCTION_INTERNAL | 4052 | Внутренняя ошибка строковой функции |
ERR_SOME_ARRAY_ERROR | 4053 | Ошибка массива |
ERR_INCORRECT_SERIESARRAY_USING | 4054 | Неправильное использование массива-таймсерии |
ERR_CUSTOM_INDICATOR_ERROR | 4055 | Ошибка пользовательского индикатора |
ERR_INCOMPATIBLE_ARRAYS | 4056 | Массивы несовместимы |
ERR_GLOBAL_VARIABLES_PROCESSING | 4057 | Ошибка обработки глобальныех переменных |
ERR_GLOBAL_VARIABLE_NOT_FOUND | 4058 | Глобальная переменная не обнаружена |
ERR_FUNC_NOT_ALLOWED_IN_TESTING | 4059 | Функция не разрешена в тестовом режиме |
ERR_FUNCTION_NOT_CONFIRMED | 4060 | Функция не разрешена |
ERR_SEND_MAIL_ERROR | 4061 | Ошибка отправки почты |
ERR_STRING_PARAMETER_EXPECTED | 4062 | Ожидается параметр типа string |
ERR_INTEGER_PARAMETER_EXPECTED | 4063 | Ожидается параметр типа integer |
ERR_DOUBLE_PARAMETER_EXPECTED | 4064 | Ожидается параметр типа double |
ERR_ARRAY_AS_PARAMETER_EXPECTED | 4065 | В качестве параметра ожидается массив |
ERR_HISTORY_WILL_UPDATED | 4066 | Запрошенные исторические данные в состоянии обновления |
ERR_TRADE_ERROR | 4067 | Ошибка при выполнении торговой операции |
ERR_END_OF_FILE | 4099 | Конец файла |
ERR_SOME_FILE_ERROR | 4100 | Ошибка при работе с файлом |
ERR_WRONG_FILE_NAME | 4101 | Неправильное имя файла |
ERR_TOO_MANY_OPENED_FILES | 4102 | Слишком много открытых файлов |
ERR_CANNOT_OPEN_FILE | 4103 | Невозможно открыть файл |
ERR_INCOMPATIBLE_FILEACCESS | 4104 | Несовместимый режим доступа к файлу |
ERR_NO_ORDER_SELECTED | 4105 | Ни один ордер не выбран |
ERR_UNKNOWN_SYMBOL | 4106 | Неизвестный символ |
ERR_INVALID_PRICE_PARAM | 4107 | Неправильный параметр цены для торговой функции |
ERR_INVALID_TICKET | 4108 | Неверный номер тикета |
ERR_TRADE_NOT_ALLOWED | 4109 | Торговля не разрешена. Необходимо включить опцию «Разрешить советнику торговать» в свойствах эксперта. |
ERR_LONGS_NOT_ALLOWED | 4110 | Длинные позиции не разрешены. Необходимо проверить свойства эксперта. |
ERR_SHORTS_NOT_ALLOWED | 4111 | Короткие позиции не разрешены. Необходимо проверить свойства эксперта. |
ERR_OBJECT_ALREADY_EXISTS | 4200 | Объект уже существует |
ERR_UNKNOWN_OBJECT_PROPERTY | 4201 | Запрошено неизвестное свойство объекта |
ERR_OBJECT_DOES_NOT_EXIST | 4202 | Объект не существует |
ERR_UNKNOWN_OBJECT_TYPE | 4203 | Неизвестный тип объекта |
ERR_NO_OBJECT_NAME | 4204 | Нет имени объекта |
ERR_OBJECT_COORDINATES_ERROR | 4205 | Ошибка координат объекта |
ERR_NO_SPECIFIED_SUBWINDOW | 4206 | Не найдено указанное подокно |
ERR_SOME_OBJECT_ERROR | 4207 | Ошибка при работе с объектом |