Buy -рыночный ордер, определяющий покупку активов по финансовому инструменту.
BuyLimit -отложенный ордер на покупку активов по финансовому инструменту по цене ниже текущей. Ордер исполнится (преобразуется в рыночный ордер Buy), если цена Ask достигнет или окажется ниже цены, заявленной в ордере.
BuyStop -отложенный ордер на покупку активов по финансовому инструменту по цене, превышающей текущую цену. Ордер исполнится (преобразуется в рыночный ордер Buy), если цена Ask достигнет или окажется выше цены, заявленной в ордере.
GV-переменная - то же, что глобальная переменная клиентского терминала.
Sell -рыночный ордер, определяющий продажу активов по финансовому инструменту.
SellLimit -отложенный ордер на продажу активов по финансовому инструменту по цене, превышающей текущую цену. Ордер исполнится (преобразуется в рыночный ордер Sell), если цена Bid достигнет или окажется выше цены, заявленной в ордере.
SellStop -отложенный ордер на продажу активов по финансовому инструменту по цене ниже текущей. Ордер исполнится (преобразуется в рыночный ордер Sell), если цена Bid достигнет или окажется ниже цены, заявленной в ордере.
StopLoss -стоп-приказ; заявленная цена, по которой рыночный ордер будет закрыт при движении цены финансового инструмента в сторону убытков по ордеру.
TakeProfit -стоп-приказ; заявленная цена, по которой рыночный ордер будет закрыт при движении цены финансового инструмента в сторону прибыли по ордеру.
Типы торговых операций
Тип операции в функции OrderSend() может быть указан в виде предопределённой константы или её значения и в соответствии с типом торговой операции:
Константа
Значение
Торговая операция
OP_BUY
Покупка
OP_SELL
Продажа
OP_BUYLIMIT
Отложенный ордер BUY LIMIT
OP_SELLLIMIT
Отложенный ордер SELL LIMIT
OP_BUYSTOP
Отложенный ордер BUY STOP
OP_SELLSTOP
Отложенный ордер SELL STOP
Требования и ограничения при проведении торговых операций
В таблицах указаны расчётные значения, ограничивающие проведение торговых операций при открытии, закрытии, установке, удалении и модификации ордеров.
Для получения значения минимальной дистанции StopLevel и дистанции заморозки FreezeLevel необходимо вызвать функцию MarketInfo().
Требования.
Правильные цены, используемые при осуществлении торговых операций.
Тип ордера
Цена открытия
Цена закрытия
Цена открытия для отложенного ордера
Преобразование отложенного ордера в рыночный
Buy
Ask
Bid
Sell
Bid
Ask
BuyLimit
Ниже текущей цены Ask
Ask достигает цены открытия
SellLimit
Выше текущей цены Bid
Bid достигает цены открытия
BuyStop
Выше текущей цены Ask
Ask достигает цены открытия
SellStop
Ниже текущей цены Bid
Bid достигает цены открытия
Возможность удаления отложенного ордера регламентируется параметром FreezeLevel.
Ограничение по минимальной дистанции StopLevel.
Торговая операция не осуществляется, если нарушено любое из указанных требований.
Тип ордера
Цена открытия ордера (OpenPrice)
StopLoss (SL)
TakeProfit (TP)
Buy
Модификация запрещена
Bid-SL ≥ StopLevel
TP-Bid ≥ StopLevel
Sell
Модификация запрещена
SL-Ask ≥ StopLevel
Ask-TP ≥ StopLevel
BuyLimit
Ask-OpenPrice ≥ StopLevel
OpenPrice-SL ≥ StopLevel
TP-OpenPrice ≥ StopLevel
SellLimit
Bid-OpenPrice ≥ StopLevel
SL-OpenPrice ≥StopLevel
OpenPrice-TP ≥ StopLevel
BuyStop
OpenPrice-Ask ≥ StopLevel
OpenPrice-SL ≥ StopLevel
TP-OpenPrice ≥ StopLevel
SellStop
Bid-OpenPrice ≥ StopLevel
SL-OpenPrice ≥ StopLevel
OpenPrice-TP ≥ StopLevel
Ограничение по дистанции заморозки FreezeLevel.
Закрытие рыночных ордеров не осуществляется, если значения StopLoss или TakeProfit нарушают требования по параметру FreezeLevel. Модификация StopLoss или TakeProfit рыночных ордеров не осуществляется, если значения StopLoss или TakeProfit нарушают требования по параметру StopLevel. Удаление и модификация отложенных ордеров не осуществляется, если заявленная цена открытия ордера нарушает требования по параметру Freezelevel.
Тип ордера
Цена открытия ордера(OpenPrice)
StopLoss (SL)
TakeProfit (TP)
Buy
Модификация запрещена
Bid-SL > FreezeLevel
TP-Bid > FreezeLevel
Sell
Модификация запрещена
SL-Ask > FreezeLevel
Ask-TP > FreezeLevel
BuyLimit
Ask-OpenPrice > FreezeLevel
Регламентируется параметром StopLevel
Регламентируется параметром StopLevel
SellLimit
OpenPrice-Bid > FreezeLevel
Регламентируется параметром StopLevel
Регламентируется параметром StopLevel
BuyStop
OpenPrice-Ask > FreezeLevel
Регламентируется параметром StopLevel
Регламентируется параметром StopLevel
SellStop
Bid-OpenPrice > FreezeLevel
Регламентируется параметром StopLevel
Регламентируется параметром StopLevel
Коды ошибок
GetLastError() - функция, возвращающая коды ошибок. Кодовые константы ошибок определены в файле stderror.mqh. Для вывода текстовых сообщений следует использовать функцию ErrorDescription(), определенную в файле stdlib.mqh.
Коды ошибок, возвращаемые торговым сервером или клиентским терминалом:
Константа
Значение
Описание
ERR_NO_ERROR
Нет ошибки
ERR_NO_RESULT
Нет ошибки, но результат неизвестен
ERR_COMMON_ERROR
Общая ошибка
ERR_INVALID_TRADE_PARAMETERS
Неправильные параметры
ERR_SERVER_BUSY
Торговый сервер занят
ERR_OLD_VERSION
Старая версия клиентского терминала
ERR_NO_CONNECTION
Нет связи с торговым сервером
ERR_NOT_ENOUGH_RIGHTS
Недостаточно прав
ERR_TOO_FREQUENT_REQUESTS
Слишком частые запросы
ERR_MALFUNCTIONAL_TRADE
Недопустимая операция нарушающая функционирование сервера
ERR_ACCOUNT_DISABLED
Счет заблокирован
ERR_INVALID_ACCOUNT
Неправильный номер счета
ERR_TRADE_TIMEOUT
Истек срок ожидания совершения сделки
ERR_INVALID_PRICE
Неправильная цена
ERR_INVALID_STOPS
Неправильные стопы
ERR_INVALID_TRADE_VOLUME
Неправильный объем
ERR_MARKET_CLOSED
Рынок закрыт
ERR_TRADE_DISABLED
Торговля запрещена
ERR_NOT_ENOUGH_MONEY
Недостаточно денег для совершения операции
ERR_PRICE_CHANGED
Цена изменилась
ERR_OFF_QUOTES
Нет цен
ERR_BROKER_BUSY
Брокер занят
ERR_REQUOTE
Новые цены
ERR_ORDER_LOCKED
Ордер заблокирован и уже обрабатывается
ERR_LONG_POSITIONS_ONLY_ALLOWED
Разрешена только покупка
ERR_TOO_MANY_REQUESTS
Слишком много запросов
ERR_TRADE_MODIFY_DENIED
Модификация запрещена, так как ордер слишком близок к рынку
ERR_TRADE_CONTEXT_BUSY
Подсистема торговли занята
ERR_TRADE_EXPIRATION_DENIED
Использование даты истечения ордера запрещено брокером
ERR_TRADE_TOO_MANY_ORDERS
Количество открытых и отложенных ордеров достигло предела, установленного брокером.
Коды ошибок выполнения MQL4 программы:
Константа
Значение
Описание
ERR_NO_MQLERROR
Нет ошибки
ERR_WRONG_FUNCTION_POINTER
Неправильный указатель функции
ERR_ARRAY_INDEX_OUT_OF_RANGE
Индекс массива - вне диапазона
ERR_NO_MEMORY_FOR_FUNCTION_CALL_STACK
Нет памяти для стека функций
ERR_RECURSIVE_STACK_OVERFLOW
Переполнение стека после рекурсивного вызова
ERR_NOT_ENOUGH_STACK_FOR_PARAMETER
На стеке нет памяти для передачи параметров
ERR_NO_MEMORY_FOR_PARAMETER_STRING
Нет памяти для строкового параметра
ERR_NO_MEMORY_FOR_TEMP_STRING
Нет памяти для временной строки
ERR_NOT_INITIALIZED_STRING
Неинициализированная строка
ERR_NOT_INITIALIZED_ARRAYSTRING
Неинициализированная строка в массиве
ERR_NO_MEMORY_FOR_ARRAYSTRING
Нет памяти для строкового массива
ERR_TOO_LONG_STRING
Слишком длинная строка
ERR_REMAINDER_FROM_ZERO_DIVIDE
Остаток от деления на ноль
ERR_ZERO_DIVIDE
Деление на ноль
ERR_UNKNOWN_COMMAND
Неизвестная команда
ERR_WRONG_JUMP
Неправильный переход
ERR_NOT_INITIALIZED_ARRAY
Неинициализированный массив
ERR_DLL_CALLS_NOT_ALLOWED
Вызовы DLL не разрешены
ERR_CANNOT_LOAD_LIBRARY
Невозможно загрузить библиотеку
ERR_CANNOT_CALL_FUNCTION
Невозможно вызвать функцию
ERR_EXTERNAL_EXPERT_CALLS_NOT_ALLOWED
Вызовы внешних библиотечных функций не разрешены
ERR_NOT_ENOUGH_MEMORY_FOR_RETURNED_STRING
Недостаточно памяти для строки, возвращаемой из функции
ERR_SYSTEM_BUSY
Система занята
ERR_INVALID_FUNCTION_PARAMETERS_COUNT
Неправильное количество параметров функции
ERR_INVALID_FUNCTION_PARAMETER_VALUE
Недопустимое значение параметра функции
ERR_STRING_FUNCTION_INTERNAL_ERROR
Внутренняя ошибка строковой функции
ERR_SOME_ARRAY_ERROR
Ошибка массива
ERR_INCORRECT_SERIES_ARRAY_USING
Неправильное использование массива-таймсерии
ERR_CUSTOM_INDICATOR_ERROR
Ошибка пользовательского индикатора
ERR_INCOMPATIBLE_ARRAYS
Массивы несовместимы
ERR_GLOBAL_VARIABLES_PROCESSING_ERROR
Ошибка обработки глобальныех переменных
ERR_GLOBAL_VARIABLE_NOT_FOUND
Глобальная переменная не обнаружена
ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE
Функция не разрешена в тестовом режиме
ERR_FUNCTION_NOT_CONFIRMED
Функция не подтверждена
ERR_SEND_MAIL_ERROR
Ошибка отправки почты
ERR_STRING_PARAMETER_EXPECTED
Ожидается параметр типа string
ERR_INTEGER_PARAMETER_EXPECTED
Ожидается параметр типа integer
ERR_DOUBLE_PARAMETER_EXPECTED
Ожидается параметр типа double
ERR_ARRAY_AS_PARAMETER_EXPECTED
В качестве параметра ожидается массив
ERR_HISTORY_WILL_UPDATED
Запрошенные исторические данные в состоянии обновления
ERR_TRADE_ERROR
Ошибка при выполнении торговой операции
ERR_END_OF_FILE
Конец файла
ERR_SOME_FILE_ERROR
Ошибка при работе с файлом
ERR_WRONG_FILE_NAME
Неправильное имя файла
ERR_TOO_MANY_OPENED_FILES
Слишком много открытых файлов
ERR_CANNOT_OPEN_FILE
Невозможно открыть файл
ERR_INCOMPATIBLE_ACCESS_TO_FILE
Несовместимый режим доступа к файлу
ERR_NO_ORDER_SELECTED
Ни один ордер не выбран
ERR_UNKNOWN_SYMBOL
Неизвестный символ
ERR_INVALID_PRICE_PARAM
Неправильный параметр цены для торговой функции
ERR_INVALID_TICKET
Неверный номер тикета
ERR_TRADE_NOT_ALLOWED
Торговля не разрешена
ERR_LONGS_NOT_ALLOWED
Длинные позиции не разрешены
ERR_SHORTS_NOT_ALLOWED
Короткие позиции не разрешены
ERR_OBJECT_ALREADY_EXISTS
Объект уже существует
ERR_UNKNOWN_OBJECT_PROPERTY
Запрошено неизвестное свойство объекта
ERR_OBJECT_DOES_NOT_EXIST
Объект не существует
ERR_UNKNOWN_OBJECT_TYPE
Неизвестный тип объекта
ERR_NO_OBJECT_NAME
Нет имени объекта
ERR_OBJECT_COORDINATES_ERROR
Ошибка координат объекта
ERR_NO_SPECIFIED_SUBWINDOW
Не найдено указанное подокно
ERR_SOME_OBJECT_ERROR
Ошибка при работе с объектом
Стили отображения индикаторных линий
Стили рисования индикаторных линий для функций SetIndexStyle() и SetLevelStyle():
Константа
Значение
Описание
DRAW_LINE
Простая линия
DRAW_SECTION
Отрезки между непустыми значениями линии
DRAW_HISTOGRAM
Гистограмма
DRAW_ARROW
Стрелки (символы)
DRAW_ZIGZAG
Отрезки между непустыми значениями чётной и нечётной линий (зигзаг)
DRAW_NONE
Отсутствие какого-либо рисования
Стиль линии. Используется только при толщине линии 0 или 1:
Константа
Значение
Описание
STYLE_SOLID
Сплошная линия
STYLE_DASH
Штриховая линия
STYLE_DOT
Пунктирная линия
STYLE_DASHDOT
Штрих-пунктирная линия
STYLE_DASHDOTDOT
Штрих-пунктирная линия с двойными точками
Типы и свойства графических объектов
Идентификаторы типов графических объектов используются в функциях ObjectCreate(), ObjectsDeleteAll() и ObjectType() и могут принимать следующие значения:
Тип объекта
Значение
Описание
OBJ_VLINE
Вертикальная линия. Использует время в качестве первой координаты, цена игнорируется.
OBJ_HLINE
Горизонтальная линия. Использует цену в качестве первой координаты, время игнорируется.
OBJ_TREND
Трендовая линия. Использует 2 координаты.
OBJ_TRENDBYANGLE
Трендовая линия по углу. Использует 2 координаты, либо первую координату и угол. Для установки угла линии (свойство OBJPROP_ANGLE) используется функция ObjectSet().
OBJ_REGRESSION
Канал линейной регрессии. Использует временные составляющие 2 координат, ценовые составляющие игнорируются.
OBJ_CHANNEL
Равноудаленный канал. Использует 3 координаты.
OBJ_STDDEVCHANNEL
Канал стандартных отклонений. Использует временные составляющие 2 координат, ценовые составляющие игнорируются.
OBJ_GANNLINE
Линия Ганна. Использует 2 координаты, но ценовая составляющая второй координаты игнорируется. Для установки соотношения между временной и ценовой шкалами (свойство OBJPROP_SCALE) используется функция ObjectSet().
OBJ_GANNFAN
Веер Ганна. Использует 2 координаты, но ценовая составляющая второй координаты игнорируется. Для установки соотношения между временной и ценовой шкалами (свойство OBJPROP_SCALE) используется функция ObjectSet().
OBJ_GANNGRID
Сетка Ганна. Использует 2 координаты, но ценовая составляющая второй координаты игнорируется. Для установки соотношения между временной и ценовой шкалами (свойство OBJPROP_SCALE) используется функция ObjectSet().
OBJ_FIBO
Уровни Фибоначчи. Использует 2 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet().
OBJ_FIBOTIMES
Временные зоны Фибоначчи. Использует 2 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet().
OBJ_FIBOFAN
Веер Фибоначчи. Использует 2 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet().
OBJ_FIBOARC
Дуги Фибоначчи. Использует 2 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet().
OBJ_EXPANSION
Расширение Фибоначчи. Использует 3 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet().
OBJ_FIBOCHANNEL
Канал Фибоначчи. Использует 3 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet().
OBJ_RECTANGLE
Прямоугольник. Использует 2 координаты.
OBJ_TRIANGLE
Треугольник. Использует 3 координаты.
OBJ_ELLIPSE
Эллипс. Использует 2 координаты. Для установки соотношения между временной и ценовой шкалами (свойство OBJPROP_SCALE) используется функция ObjectSet().
OBJ_PITCHFORK
Вилы Эндрюса. Использует 3 координаты.
OBJ_CYCLES
Временные ряды (циклические линии). Использует 2 координаты.
OBJ_TEXT
Текст. Использует 1 координату. Для установки угла выводимого текста (свойство OBJPROP_ANGLE) используется функция ObjectSet(). Для изменения текста используется функция ObjectSetText().
OBJ_ARROW
Стрелки (символы). Использует 1 координату. Для установки кода символа (свойство OBJPROP_ARROWCODE) используется функция ObjectSet().
OBJ_LABEL
Текстовая метка. Для установки координат, задаваемых в пикселях относительно угла привязки (свойства OBJPROP_CORNER, OBJPROP_XDISTANCE, OBJPROP_YDISTANCE), используется функция ObjectSet(). Для изменения текста используется функция ObjectSetText().
Идентификаторы свойств графических объектов используются в функциях ObjectGet() и ObjectSet(), могут принимать следующие значения:
Cвойства объекта
Значение
Тип
Описание
OBJPROP_TIME1
datetime
Получает/устанавливает первую координату времени.
OBJPROP_PRICE1
double
Получает/устанавливает первую координату цены.
OBJPROP_TIME2
datetime
Получает/устанавливает вторую координату времени.
OBJPROP_PRICE2
double
Получает/устанавливает вторую координату цены.
OBJPROP_TIME3
datetime
Получает/устанавливает третью координату времени.
OBJPROP_PRICE3
double
Получает/устанавливает третью координату цены.
OBJPROP_COLOR
color
Получает/устанавливает цвет объекта.
OBJPROP_STYLE
int
Получает/устанавливает стиль линии объекта.
OBJPROP_WIDTH
int
Получает/устанавливает ширину линии объекта.
OBJPROP_BACK
bool
Получает/устанавливает флаг фонового отображения объекта.
OBJPROP_RAY
bool
Получает/устанавливает флаг свойства луч для объектов типа OBJ_TREND и ему подобных.
OBJPROP_ELLIPSE
bool
Получает/устанавливает флаг отображения полного эллипса для объекта OBJ_FIBOARC.
OBJPROP_SCALE
double
Получает/устанавливает значение масштаба объекта.
OBJPROP_ANGLE
double
Получает/устанавливает значение угла в градусах объекта OBJ_TRENDBYANGLE.
OBJPROP_ARROWCODE
int
Получает/устанавливает код стрелки объекта OBJ_ARROW. Может быть одним из символов wingdings или один из предопределенных кодов стрелок.
OBJPROP_TIMEFRAMES
int
Получает/устанавливает свойство отображения объекта на различных периодах. Может быть одним или комбинацией нескольких из констант видимости объекта.
OBJPROP_DEVIATION
double
Получает/устанавливает размер отклонения для объекта OBJ_STDDEVCHANNEL.
OBJPROP_FONTSIZE
int
Получает/устанавливает размер шрифта для объектов OBJ_TEXT и OBJ_LABEL.
OBJPROP_CORNER
int
Получает/устанавливает номер угла привязки для объекта OBJ_LABEL. Принимает значения 0-3.
OBJPROP_XDISTANCE
int
Получает/устанавливает расстояние X-координаты в пикселях относительно угла привязки для объекта OBJ_LABEL.
OBJPROP_YDISTANCE
int
Получает/устанавливает расстояние Y-координаты в пикселях относительно угла привязки для объекта OBJ_LABEL.
OBJPROP_FIBOLEVELS
int
Получает/устанавливает число уровней объекта Fibonacci. Может быть от 1 до 32.
OBJPROP_LEVELCOLOR
color
Получает/устанавливает цвет линии уровня объекта
OBJPROP_LEVELSTYLE
int
Получает/устанавливает стиль линии уровня объекта.
OBJPROP_LEVELWIDTH
int
Получает/устанавливает ширину линии уровня объекта.
OBJPROP_FIRSTLEVEL+n
210+n
int
Получает/устанавливает номер уровня объекта, где n - индекс устанавливаемого/получаемого уровня. Может быть от 0 до 31.
Звуковые файлы
Набор звуковых файлов, рекомендуемых для использования в практической работе в экспертах, скриптах и индикаторах:
Название файла
Рекомендуемое условие использования
Close_order.wav
Закрытие рыночного ордера
Ok.wav
Удачное завершение торговой операции
Transform.wav
Преобразование отложенного ордера в рыночный
Bulk.wav
Незначительные события
Inform.wav
Различная информация (изменение условий торговли и пр.)
Oops.wav
Критическая информация (не хватает средств и пр.) или недопустимое действие
Expert.wav
Отдан торговый приказ
Error.wav
Неудачное завершение торговой операции
Bzrrr.wav
Другие ошибки
Wait.wav
Пауза
Work.wav
Установлены необходимые программы и файлы
Tick.wav
Новый тик
W1.wav
Другие условия
W2.wav
Другие условия
W3.wav
Другие условия
Резкие, контрастные звуки, а также звуки большой длительности использовать не рекомендуется.
Коды возврата функции MessageBox()
Если окно сообщения имеет кнопку Отмена (Cancel), то функция возвращает значение IDCANCEL при нажатой клавише ESC или кнопке Отмена (Cancel). Если окно сообщения не имеет кнопки Отмена (Cancel), нажатие ESC не приводит ни к какому результату.
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
studopedia.su - Студопедия (2013 - 2025) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав!Последнее добавление