ОШИБКИ СОВЕТНИКОВ ФОРЕКС

Лучшие Форекс брокеры 2021:

ОШИБКИ СОВЕТНИКОВ ФОРЕКС

Коды ошибок в работе советников форекс подразделяются на две категории:

  • Коды ошибок, возвращаемые торговым сервером
  • Коды ошибок выполнения MQL4-программы

Первая категория связана непосредственно с процессом торговли и процедурами обмена между советником, установленным в вашем терминале MT4 и торговым сервером. Эта группа ошибок не обязательно может быть связана с ошибками в самом советнике, а обусловлена, главным образом, проблемами торгового сервера брокера, связи и торговыми ограничениями.

Вторая категория непосредственно связана с работой советника и обусловлена ошибками программирования.

Ошибки связанные с работой форекс-советников отображаются в папке "Эксперты" торгового терминала МТ4.

Ошибки в работе самого терминала МТ4 отображаются в папке "Журнал".

Расшифровка ошибок советников по коду в журнале МТ4 (часть 2)

В предыдущем обзоре была рассмотрена часть наиболее частых ошибок работы советников, код которых можно найти в МТ4 и в МТ5 в Терминале во вкладке «Эксперты» или «Журнал». Большая часть из них – несоответствие открываемых роботом сделок торговым условиям брокера. Исправляются они путем корректировки кода, но стоит иметь в виду факт: торговые условия у разных активов отличаются (указываются в спецификации контрактов). Потому код советника имеет смысл оптимизировать под конкретный актив конкретного брокера. Собираетесь использовать советники – учите основы MQL, без них будет сложно.

Ошибки работы советников: коды и расшифровка

  • Error 147. Блокировка брокером отложенного ордера по причине несоответствия даты его автоматического окончания действующим условиям. Нестыковка в настройках установки советником отложенного ордера.

Что делать. Не ограничивать срок действия отложенного ордера, удаляя его при необходимости вручную. Или в советнике в параметре OrderSend установить «0».

Лучшие Форекс брокеры 2021:
  • Error 148. Количество открытых советником рыночных и отложенных ордеров является максимальным в соответствии с условиями брокера.

Что делать. Закрыть часть ордеров или укрупнить позиции. Не всегда есть смысл открывать 10 сделок объемом 0,01 лота вместо одной объемом 0,1 лота.

  • Error 4012, 4013. Деление на ноль.

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

  • Error 4017. Запрет на вызовы DLL.

Что делать. В настройках платформы разрешить вызов DLL. Как – спрашивайте в комментариях. Учтите, что активация этого пункта увеличивает уязвимость компьютера – растет риск получить на компьютер какой-нибудь вирус.

  • Error 4018, 4019. Невозможно подгрузить библиотеку.

Что делать. Файлы повреждены, удалены, имеют неверный формат. Эту ошибку работы советника можно устранить, обратившись к разработчику библиотеки. Или найти аналогичную библиотеку в открытом доступе.

  • Error 4020. Запрет вызова внешних функций библиотек.

Что делать. Активировать эту опцию в платформе в настройках, разрешив использование внешних данных.

  • Error 4103. Не удается открыть файл.

Что делать. Используемый советником файл не удается открыть. Он может быть поврежден, отсутствует или заблокирован антивирусником. Могут быть установлены ограничения на чтение или ошибка в расширении. Если файл в папке Experts есть, его стоит или перезаписать, или искать причину блокировки.

Лучшие Форекс брокеры 2021:
  • Error 4106. Неизвестный символ.

Что делать. В обзоре рынка в платформе можно найти все символы – наименования торговых активов. Данная ошибка работы советника означает, что он ориентирован на символ, которого у брокера нет. Например, советник работает с парой EUR/USD, а брокер устанавливает символ с суффиксом EUR/USDx. Это не является ошибкой, но не дает запустить советник.

  • Error 4108. Ошибка в тикете.

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

  • Error 4109. Советник не может быть запущен. Блокировка со стороны терминала или брокера.

Что делать. В платформе активировать функцию работы советника в настройках. Не помогло – задавать вопросы брокеру.

Большая часть ошибок работы советников связана с техническими настройками платформы и проблемами кода. Если у вас возникли вопросы или нужна помощь с запуском советника, напишите об этом в комментариях – мы постараемся вам помочь!

Главные ошибки при составлении портфеля советников

Стоит ли использовать много советников сразу, или довериться одному? Портфель эффективнее и доходнее, но каждый советник нужно тестировать. И чтобы вы не тратили часы на подбор настроек, я расскажу о типичных ошибках при составлении портфеля роботов.

Проблема №1 — Несбалансированность

Пока депозит растет — никому не интересно, как работает каждый советник портфеля. Но при неудачном повороте рынка ждите убытки — вплоть до Margin call. Необходим постоянный контроль.

Для полного понимания рассмотрим рисунок, где произведен анализ работы нескольких советников:

Пример несбалансированности портфеля советников.

Один робот «тянет» результат, а остальные сильно проигрывают в размере и динамике роста прибыли. Решение находится сразу: заменить их или убрать вовсе.

Но не спешите! Нужно понять причину расхождения. Возможно, робот торгует агрессивно и большими лотами, без stop loss. В таком случае лучше небольшой доход, но без резких откатов, разворотов и коррекции.

Проблема №2 — Корреляция

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

Корреляция советников как важный фактор стабильности портфеля.

Какая из корреляций верна?

Обратная — убыточная сделка будет компенсирована прибыльной по другому активу и советнику. На 100% позиции противоположными не будут, но диапазон (на рисунке выше) в 10-20% считается приемлемым.

Как использовать корреляцию в автоматической торговле смотрите в моем видео.

Проблема №3 – Перегруженность депозита

Здесь все просто – чем меньше средняя просадка, тем дольше вы можете оставаться на рынке.

Недопустимые просадки депозита.

Не стоит устанавливать советникам слишком «жесткие» условия работы. Учитывайте текущую волатильность, иначе есть риск получить массу сделок с минимальной прибылью или, что еще хуже, с постоянным срабатыванием Stop Loss и накоплением мелких убытков.

Настройка параметров занимает много времени. Если у вас нет опыта составления портфелей роботов советую изучить наш портфель. 5 советников, каждый работает по-своему — например Survivor EA имеет 5 индикаторов, а WOC зарабатывает на волатильности. Мы провели более 1000 тестов, проходите по ссылке, оставляйте почту, и мы пришлем все советники!

Я указал на 3 ошибки при использовании нескольких советников на одном депозите.

Также нужно учитывать:

  • соответствие таймфрейма и стиля торговли советника. Бессмысленно ставить на недельный срок средне- и долгосрочный алгоритм для M1 или скальпера;
  • оптимальное время торговли. Каждый актив имеет свои особенности внутри дня, например, евро почти не движется в Азиатскую сессию, а Австралийский доллар показывает хорошие тренды в европейской. Старайтесь, чтобы портфель содержал советников с низкой корреляцией и под каждую сессию!
  • всегда внимательно читайте инструкцию, там может быть много полезной информации по настройке параметров. И доверяйте только собственным результатам тестирования на исторических данных!

Все самое лучшее от Академии
только нашим подписчикам

Главные ошибки при составлении портфеля советников

  • Ichimoku + Alligator = перспективная трендовая стратегия
  • Стратегия RS Scalper – очередная попытка покорить рынок
  • Стратегия Simply Daily Trend Reversal: секрет заработка на разворотах рынка

Согласно федеральному закону «О рынке ценных бумаг» от 22.04.1996 N 39-ФЗ ООО “МИР” не осуществляет брокерскую деятельность и не оказывает услуги Форекс дилинга. Компания осуществляет деятельность только по предоставлению консультационных услуг по вопросам финансового посредничества.

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

Позвоните нам!

ООО «МИР»
197229, г. Санкт-Петербург, улица Новая д. 51, к. 38, пом. 4-Н, офис 1 ИНН — 7814409821; КПП — 781401001; ОГРН — 1089847225820

Список ошибок MetaTrader 4

Очень часто в торговом терминале возникают ошибки при тестировании или оптимизации советников форекс, все ошибки можно увидеть в лог-файлах МТ4, а вот что означают коды ошибок, мы рассмотрим в этой статье:

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

Так, например, если при тесте возникает ошибка error 130, то становится понятно, что функция советника пытается изменить или установить стоп-лосс или тейк-профит слишком близко к текущей цене на рынке, ближе чем разрешает ваш БРОКЕР ФОРЕКС.

Коды ошибок:

GetLastError() — функция , возвращающая коды ошибок при тесте. Кодовые константы ошибок определены в файле stderror.mqh. Для вывода текстовых сообщений следует использовать функцию ErrorDescription(), определенную в файле stdlib.mqh.

Коды ошибок, возвращаемые торговым сервером или клиентским терминалом MetaTrader 4:

Значение Описание
0 Нет ошибки
1 Нет ошибки, но результат неизвестен
2 Общая ошибка
3 Неправильные параметры
4 Торговый сервер занят
5 Старая версия клиентского терминала
6 Нет связи с торговым сервером
7 Недостаточно прав
8 Слишком частые запросы
9 Недопустимая операция нарушающая функционирование сервера
64 Счет заблокирован
65 Неправильный номер счета
128 Истек срок ожидания совершения сделки
129 Неправильная цена
130 Неправильные стопы
131 Неправильный объем
132 Рынок закрыт
133 Торговля запрещена
134 Недостаточно денег для совершения операции
135 Цена изменилась
136 Нет цен
137 Брокер занят
138 Новые цены
139 Ордер заблокирован и уже обрабатывается
140 Разрешена только покупка
141 Слишком много запросов
145 Модификация запрещена, так как ордер слишком близок к рынку
146 Подсистема торговли занята
147 Использование даты истечения ордера запрещено брокером
148 Количество открытых и отложенных ордеров достигло предела, установленного брокером.

Коды ошибок выполнения MQL4 программы:

Значение Описание
4000 Нет ошибки
4001 Неправильный указатель функции
4002 Индекс массива — вне диапазона
4003 Нет памяти для стека функций
4004 Переполнение стека после рекурсивного вызова
4005 На стеке нет памяти для передачи параметров
4006 Нет памяти для строкового параметра
4007 Нет памяти для временной строки
4008 Неинициализированная строка
4009 Неинициализированная строка в массиве
4010 Нет памяти для строкового массива
4011 Слишком длинная строка
4012 Остаток от деления на ноль
4013 Деление на ноль
4014 Неизвестная команда
4015 Неправильный переход
4016 Неинициализированный массив
4017 Вызовы DLL не разрешены
4018 Невозможно загрузить библиотеку
4019 Невозможно вызвать функцию
4020 Вызовы внешних библиотечных функций не разрешены
4021 Недостаточно памяти для строки, возвращаемой из функции
4022 Система занята
4050 Неправильное количество параметров функции
4051 Недопустимое значение параметра функции
4052 Внутренняя ошибка строковой функции
4053 Ошибка массива
4054 Неправильное использование массива-таймсерии
4055 Ошибка пользовательского индикатора
4056 Массивы несовместимы
4057 Ошибка обработки глобальныех переменных
4058 Глобальная переменная не обнаружена
4059 Функция не разрешена в тестовом режиме
4060 Функция не подтверждена
4061 Ошибка отправки почты
4062 Ожидается параметр типа string
4063 Ожидается параметр типа integer
4064 Ожидается параметр типа double
4065 В качестве параметра ожидается массив
4066 Запрошенные исторические данные в состоянии обновления
4067 Ошибка при выполнении торговой операции
4099 Конец файла
4100 Ошибка при работе с файлом
4101 Неправильное имя файла
4102 Слишком много открытых файлов
4103 Невозможно открыть файл
4104 Несовместимый режим доступа к файлу
4105 Ни один ордер не выбран
4106 Неизвестный символ
4107 Неправильный параметр цены для торговой функции
4108 Неверный номер тикета
4109 Торговля не разрешена
4110 Длинные позиции не разрешены
4111 Короткие позиции не разрешены
4200 Объект уже существует
4201 Запрошено неизвестное свойство объекта
4202 Объект не существует
4203 Неизвестный тип объекта
4204 Нет имени объекта
4205 Ошибка координат объекта
4206 Не найдено указанное подокно
4207 Ошибка при работе с объектом

Надеюсь данная таблица поможет вам побыстрее решить вопросы с ошибками в тестировании ПЛАТНЫХ и БЕСПЛАТНЫХ советников форекс!

Все коды ошибок (Error) в MetaTrader 4. Описание

Итак, начнем.. Коды ошибок, возвращаемые торговым сервером или клиентским терминалом:

0 — Нет ошибки
1 — Нет ошибки, но результат неизвестен
2 — Общая ошибка
3 — Неправильные параметры
4 — Торговый сервер занят
5 — Старая версия клиентского терминала
6 — Нет связи с торговым сервером
7 — Недостаточно прав
8 — Слишком частые запросы
9 — Недопустимая операция нарушающая функционирование сервера
64 — Счет заблокирован
65 — Неправильный номер счета
128 — Истек срок ожидания совершения сделки
129 — Неправильная цена
130 — Неправильные стопы
131 — Неправильный объем
132 — Рынок закрыт
133 — Торговля запрещена
134 — Недостаточно денег для совершения операции
135 — Цена изменилась
136 — Нет цен
137 — Брокер занят
138 — Новые цены
139 — Ордер заблокирован и уже обрабатывается
140 — Разрешена только покупка
141 — Слишком много запросов
145 — Модификация запрещена, так как ордер слишком близок к рынку
146 — Подсистема торговли занята
147 — Использование даты истечения ордера запрещено брокером
148 — Количество открытых и отложенных ордеров достигло предела, установленного брокером

Коды ошибок выполнения MQL4 программы:

4000 — Нет ошибки
4001 — Неправильный указатель функции
4002 — Индекс массива — вне диапазона
4003 — Нет памяти для стека функций
4004 — Переполнение стека после рекурсивного вызова
4005 — На стеке нет памяти для передачи параметров
4006 — Нет памяти для строкового параметра
4007 — Нет памяти для временной строки
4008 — Неинициализированная строка
4009 — Неинициализированная строка в массиве
4010 — Нет памяти для строкового массива
4011 — Слишком длинная строка
4012 — Остаток от деления на ноль
4013 — Деление на ноль
4014 — Неизвестная команда
4015 — Неправильный переход
4016 — Неинициализированный массив
4017 — Вызовы DLL не разрешены
4018 — Невозможно загрузить библиотеку
4019 — Невозможно вызвать функцию
4020 — Вызовы внешних библиотечных функций не разрешены
4021 — Недостаточно памяти для строки, возвращаемой из функции
4022 — Система занята
4050 — Неправильное количество параметров функции
4051 — Недопустимое значение параметра функции
4052 — Внутренняя ошибка строковой функции
4053 — Ошибка массива
4054 — Неправильное использование массива-таймсерии
4055 — Ошибка пользовательского индикатора
4056 — Массивы несовместимы
4057 — Ошибка обработки глобальныех переменных
4058 — Глобальная переменная не обнаружена
4059 — Функция не разрешена в тестовом режиме
4060 — Функция не подтверждена
4061 — Ошибка отправки почты
4062 — Ожидается параметр типа string
4063 — Ожидается параметр типа integer
4064 — Ожидается параметр типа double
4065 — В качестве параметра ожидается массив
4066 — Запрошенные исторические данные в состоянии обновления
4067 — Ошибка при выполнении торговой операции
4099 — Конец файла
4100 — Ошибка при работе с файлом
4101 — Неправильное имя файла
4102 — Слишком много открытых файлов
4103 — Невозможно открыть файл
4104 — Несовместимый режим доступа к файлу
4105 — Ни один ордер не выбран
4106 — Неизвестный символ
4107 — Неправильный параметр цены для торговой функции
4108 — Неверный номер тикета
4109 — Торговля не разрешена
4110 — Длинные позиции не разрешены
4111 — Короткие позиции не разрешены
4200 — Объект уже существует
4201 — Запрошено неизвестное свойство объекта
4202 — Объект не существует
4203 — Неизвестный тип объекта
4204 — Нет имени объекта
4205 — Ошибка координат объекта
4206 — Не найдено указанное подокно
4207 — Ошибка при работе с объектом

Ошибка валидации советника из-за функции таймера

Для снижения нагрузки на процессор добавил в советник таймер, который запускает часть кода не на каждом тике а каждые 30 секунд. Получил ошибку валидации. Убрал функцию, ошибка исчезла. В терминале все работает корректно. Подскажите что это за дичь?

  • www.mql5.com
  • Доработать код от ошибки 131
  • onCalculate, EventSetTimer не работают
  • Советники: VilkaChuvashova

Для снижения нагрузки на процессор добавил в советник таймер, который запускает часть кода не на каждом тике а каждые 30 секунд. Получил ошибку валидации. Убрал функцию, ошибка исчезла. В терминале все работает корректно. Подскажите что это за дичь?

В тестере МТ4 таймер не работает.

В тестере МТ4 таймер не работает.

Я написал свой таймер, и с ним все работает, но не проходит валидацию при выкладке на сайт MQL5. Вопрос почему с этой функцией выдает ошибку валидации?

Я написал свой таймер, и с ним все работает, но не проходит валидацию при выкладке на сайт MQL5. Вопрос почему с этой функцией выдает ошибку валидации?

Ответ в вашей функции.

Ответ в вашей функции.

Спасибо за лаконичность, я это понял. Вопрос, какие правила mql5 нарушает моя функция? Разве таймер криминал?

Спасибо за лаконичность, я это понял. Вопрос, какие правила mql5 нарушает моя функция? Разве таймер криминал?

Спасибо за лаконичность, я это понял. Вопрос, какие правила mql5 нарушает моя функция? Разве таймер криминал?

OnTimer в тестере не работает. А что в вашей функции (которую вы называете таймер) — никто кроме вас не знает.

OnTimer в тестере не работает. А что в вашей функции (которую вы называете таймер) — никто кроме вас не знает.

Функция стоит в OnTick и ретурнит, если от последнего срабатывания функции до текущего тика прошло меньше 30 сек. Две строчки кода, и ошибка валидации.

Функция стоит в OnTick и ретурнит, если от последнего срабатывания функции до текущего тика прошло меньше 30 сек. Две строчки кода, и ошибка валидации.

Все работает и в тестере и в реале. Выдает ошибку валидации только при выкладывании советника на сайт. Я определил что проблема началась с добавлением этого таймера. Теперь пытаюсь разобраться, почему работающий советник не принимает сайт MQL5? Есть предположение, что валидатор считает таймер как ограничитель времени действия советника, что запрещено правилами. Кто знает так ли это?

Читать Разбор полетов! Коды ошибок, их значения и способы устранения.

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

Каждый советник имеет свой функциональный режим, но будем исходить из стандартного набора проблем и распространенных ошибок советников.

Краткая справка по ошибкам изложена в Коды Ошибок, а также в самом терминале MetaTrader4
Исходя из них — мы попробуем в стиле "Руководства по ошибкам электронной техники" описать проблему и способ ее решения.

Если Вашей ошибки нет в данной таблице, или способы решения не помогли, обратитесь к автору Вашего советника, но перед этим воспользуйтесь статьей

Также возможно Вам помогут некоторые статьи:

Возможные причины
возникновения

Торговый сервер занят

1. Советник подал слишком много приказов одновременно
2. Не дождавшись ответа от сервера, при выполнении операции — советник пытается отправить новый приказ, Сервер перегружен

Что делать если советник Форекс Ilan 1.6 Dynamic не ставит Take

1. Перезагрузка терминала
2. Оптимизация кода советника с помощью функций обработки ошибок.

Слишком частые запросы

1. Предыдущие причины ошибки, в сильно частом запросе.

1. Цена по которой Вы пытаетесь открыть позицию (BUY SELL)- неправильная

1. Золотое правило: BUY нужно открывать по Ask а закрывать по BID
SELL нужно открывать по BID а закрывать по ASK

Неправильные уровни стопов

1. уровни стопов = Стоплосс, тейкпрофит или уровень открытия отложенного ордера или лимитного ордера.
2. уровни стопов расположены слишком близко к цене.
3. Ваш счет открыт в группе ECN (ЕЦН) или NDD (НДД).
4. Ваш брокер использует Рыночное исполнение позиций.

5. Быстрый рынок, при выходе важных новостей — уровень минимального стопа на сервере всегда поднимается в 3 раза .

1. Проверьте значения Ваших стоплосс, тейкпрофитов.
2. Уточните минимальный стоп уровень по Вашему инструменту у брокера, при выставлении стопов — соблюдайте уровень минимальной дистанции.
3. В "хорошо" написанном советнике должны быть функции работы на счетах ECN и NDD (MarketWatch=true) Только для позиций!

5. Стоит переждать такие моменты или же поднять свой стоп.

ТОП-5 ошибок трейдера. Торговые роботы Forex

1. Неправильный лот при открытии сделки
2. Лот, который вы пытаетесь открыть, меньше минимального
3. Лот, который вы пытаетесь открыть больше максимального
4. Разрядность лота отличается от разрядности брокера.

1. Проверьте правильность открытия лота, изучите спецификацию контракта и прочтите условия торговли в Вашем ДЦ
2.3. Проверьте, Минимальный и Максимальный лот в Вашем ДЦ и на Вашем счете. На некоторых типах счетов, минимальный лот может быть 0.01 а также 0.1 и даже 3. Максимальный лот может быть 5 лотов и 999 лотов и другие.
4. Уточните разрядность лотов на Вашем сервере. Если например разрядность лотов = 1, то можно открыть лот 0.1 или 0.5 или 1.2 и так далее, с 1 знаком после запятой, если разрядность лота 2 знака, то исходя из минимального лота, лот может быть 0.01, 0.06, 0.17, 1.48. Также в некоторых ДЦ существует порядок степени лотов, например можно открыть 0.5 и 1 и 1.5 и так далее, а например 0.6 открыть нельзя. Уточните у своего брокера порядок установки лотов.

1. Рынок закрыт в Выходные дни

1. Пробуйте связаться с рынком после выходных

1. В данный момент торговля запрещена
2. По данной валютной паре запрещено торговать

1. Попробуйте торговать после выходных

Недостаточно денег для совершения операции

1. Лот, который Вы пытаетесь открыть, слишком большой, на него не хватает маржи

1. Проверьте уровень свободных средств, и рассчитайте средства, которые Вам нужны, для открытия лота
2. Следите за уровнем Ваших свободных средств

1. Реквот
2. Слишком быстрый рынок
3. Брокер или ДЦ не дает Вам поставить позицию по заявленной цене

1. Не торгуйте в такие моменты
2. Увеличьте уровень проскальзывания, но помните что это влечет за собой открытие позиций не по заявленной Вами цене.
3. Сделайте в советнике функцию обработки ошибок и количество попыток открытия позиций

Использование даты истечения ордера запрещено брокером

1. Ваш советник или Вы пытаетесь установить срок истечения отложенного ордера

1. В советнике, в функции OrderSend в параметре срок истечения поставьте = 0
2. Не устанавливайте срок истечения ордера.

Количество открытых и отложенных ордеров достигло предела, установленного брокером.

1. Максимальное количество открытых ордеров и позиций достигнут предела, установленного брокером.

1. Удалите или закройте часть позиций
2. Остановите процесс открытия новых позиций
3. Соблюдайте иерархию сделок, лучше открыть 1 позицию лото 0.1 одновременно, чем 10 позиций лотом 0.01 с потерей спреда.

ошибка 4012, 4013
zero devide

Остаток от деления на ноль

  1. Вы пытаетесь поделить число на 0.
  1. Проверьте Весь код советника на наличие такой грубой ошибки, или же проверьте все значения из MarketInfo функций на момент возвращения 0, иногда при MarketInfo(Symbol(),MODE_SPREAD) возвращается не спред а 0 (у брокеров с плавающим спредом)

Вызовы DLL не разрешены

  1. В Вашем терминале запрещен вызов DLL
  1. Разрешите вызов DLL через Меню – сервис – Настройки – Советник – Разрешить вызов DLL, но помните, разрешайте данную опцию только для советников, в которых Вы уверены, и уверены что в ДЛЛ не сидит какой-нибудь троян. Проверьте ДЛЛ на наличие троянов с помощью антивируса.

Ошибка 4018 , 4019

Невозможно загрузить библиотеку

  1. Библиотека повреждена
  2. Вызов библиотеки осуществляется с ошибкой
  1. Проверьте библиотеку DLL
  2. Обратитесь к разработчику данной библиотеки

Вызовы внешних библиотечных функций не разрешены

  1. В Вашем терминале запрещен вызов функций из внешних экспертов
  1. Разрешите вызов функций через Меню – сервис – Настройки – Советник – Разрешить вызов внешних экспертов,

Невозможно открыть файл

  1. Данный файл не существует
  2. Данный файл заблокирован
  1. Проверьте наличие указанного файла в папке experts – files Tester – files
  2. Проверьте не заблокирован ли файл системой антивируса. Разрешен ли режим записи\чтения файла
  1. Символа нет в обзоре рынка
  1. В обзоре рынка – правой кнопкой мыши – показать все символы
  2. Проверить названия символа в советнике и наличие его в обзоре рынка
  3. Некоторые советники используют четкие названия без суфиксов, а брокеры намеренно ставят суфиксы, например EURUSDx где х – суфикс.

Неверный номер тикета

  1. Тикет ордера, который выбирает эксперт – не существует
  2. Эксперт пытается выбрать тикет, но данный ордер был закрыт другим советником или руками.
  3. При попытке осуществления приказа над ордером, тикет был исполнен и закрыт брокером.
  1. Если данная ошибка появляется очень часто, 100-1000 раз за минуту, проверьте функции Вашего советника
  2. Отключите другие советники, или настройте их так, чтобы они не конфликтовали, не закрывайте ордер руками, когда эксперт выполняет операцию

Торговля не разрешена

  1. Советнику запрещено торговать, на графике грустный смайл или крестик
  1. Включите галочку «Разрешить советнику торговать» в вкладе при установке советника, либо в меню- сервис – настройки – советники.

Ошибка 4110, 4111

Длинные позиции не разрешены
Короткие позиции не разрешены

  1. В настройках советника, в вкладке Общие не разрешен тип позиций
  1. В Вкладке Общие, при установке советника есть выбор позиций:
  2. Long & Short – Разрешены BUY SELL
  3. Only Long– Разрешен BUY
  4. Only Short – Разрешен SELL
Похожие записи

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

Каждый советник имеет свой функциональный режим, но будем исходить из стандартного набора проблем и распространенных ошибок советников.

Разное, Программирование, Стратегии FinanceApplication Windows 20.06.2022 25.07.2022

www.expforex.com

Разработка и сопровождение торговых экспертов для MetaTrader;
Утилиты, индикаторы, Автоматические торговые эксперты;

Как тестировать советник в тестере MT4 – Подробная инструкция

Всем привет! Механические торговые системы так же стары, как и рынки. С развитием в 20 веке компьютерных технологий и сети интернет стало возможным торговать не выходя из дома, а в начале 21 века, с появлением платформы MetaTrader, еще и в автоматическом режиме. Ресурсы современного настольного компьютера позволяют воплощать в жизнь любые, даже самые сложные алгоритмы, а встроенный в терминал MetaTrader редактор MetaEditor дает возможность написать робота даже человеку, мало знакомому с программированием. В результате околофорексовый рынок заполнен различными предложениями купить чудо-советники и некоторые из них действительно достойны внимания. Но как же понять, стоит ли применять на реальных счетах тот или иной форекс советник? Сегодня я расскажу, как тестировать торгового робота на исторических данных при помощи программы MetaTrader 4.

Подготовка к тестированию

Мы не будем сегодня разбирать, как установить советник в терминал – для этого есть соответствующая статья в блоге. Будем считать, что советник мы уже установили. Теперь необходимо подумать о котировках, которые вы будете использовать. Большинство брокеров не имеют собственной исторической базы, исключение составляют Alpari и Ducascopy, остальные же используют котировки, предоставляемые компанией MetaQuotes. Сказать, что эти котировки вообще годятся для тестов я не берусь – они очень низкого качества (много пробелов, ошибок и неточностей). Как скачивать котировки от компании Ducascopy – тема отдельной статьи, к тому же это не так просто сделать новичку. Поэтому для тестов советников мы скачаем именно терминал от компании Alpari. Внимание! Чтобы получить доступ к исторической базе котировок Альпари, в терминале вы должны быть подключены именно к реальному счету! С недавних пор этот брокер не предоставляет свою базу котировок для владельцев демо-счетов.

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

Для начала нам нужно кое-что настроить, для чего идем во вкладку Сервис -> Настройки или жмем Ctrl+O

Появится окно с настройками терминала:

Выбираем вкладку «Графики» и в графах «Макс. баров истории» и «Макс. баров в окне» и заполняем как у меня на рисунке вверху (по умолчанию там стоит 65000 баров).

Для того, чтобы котировки по нужной нам паре стали доступны в терминале для проведения по ним теста, открываем вкладку Сервис -> Архив котировок или жмем F2.

Открывается следующее окно:

Выбираем нужную нам пару и период М1 и нажимает кнопку “загрузить”. Через некоторое время котировки загрузятся, выключаем терминал и включаем его снова. Заходим обратно в архив, кликаем левой кнопкой мыши несколько раз по периоду М1 нужной нам пары до тех пор, пока изображенная перед периодом серая батарейка не загорится желто-зеленым цветом. Остается прощелкать мышкой остальные периоды, чтобы котировки просчитались и для них. Если вы хотите протестировать советник на нескольких валютных парах, закачайте котировки требуемых валютных пар. Закройте терминал и откройте его снова. Затем снова войдите в архив котировок и пройдитесь по всем периодам нужной вам пары, несколько раз нажимая левой кнопкой мышки по каждому из них. Все эти шаманские действия нужны в последних версиях терминала, поскольку часто котировки загружаются некорректно. На этом подготовительный этап завершен.

Тестер терминала. Основной функционал

Итак, чтобы приступить к тестированию советника открываем тестер стратегий или нажимаем Ctrl+R.

Снизу в терминале появится вот такая панель:

Давайте остановимся на каждой функции поподробнее.

Первое, что вы увидите слева вверху панели – переключатель советник-индикатор:

В новых билдах терминала появилась возможность посмотреть на работу индикатора в визуальном режиме (о котором речь пойдет ниже). Надо сказать, что такая возможность была и раньше, но неофициально. Теперь же под тестирование индикаторов отведена отдельная кнопочка.

Итак, выбираем советник.

Под цифрой 1 у нас находится выпадающий список с доступными для тестирования советниками. Тут вы найдете только те советники, которые загружены в ваш терминал. Цифра 2 – выпадающий список валютных пар, выбираем нужную. Не забудьте закачать для нее котировки в архив котировок. Если вы вдруг не смогли найти нужную вам пару в списке, хотя уверены, что она у брокера доступна для торговли, включите обзор рынка или нажмите Ctrl+M:

Далее правой кнопкой мыши кликните прямо в окне навигатора и нажмите «Показать все символы»:

На пункте 3 остановимся немного подробнее. Тут мы можем выбрать необходимую нам модель тестирования. Для качественного тестирования торговой стратегии важно выбрать адекватный способ моделирования развития ценовых баров. Всего доступны три варианта:

– По ценам открытия (быстрый метод на сформировавшихся барах, только для советников с явным контролем открытия баров)

Использует грубую оценку стратегии. При каждой свече генерируется только один тик. Достоинство – самый быстрый способ проверки. В этом режиме сначала моделируется открытие бара (Open = High = Low = Close, Volume=1), что дает возможность эксперту точно идентифицировать окончание формирования предыдущего ценового бара. Именно на этом зарождающемся баре запускается тестирование эксперта. На следующем шаге выдается уже полностью сформированный текущий бар.

– Контрольные точки (очень грубый метод на основе ближайшего меньшего таймфрейма, результаты нельзя принимать во внимание)

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

– Все тики (наиболее точный метод на основе всех доступных меньших таймфреймов)

Этот режим позволяет наиболее точно смоделировать движение цены внутри бара. В отличие от “контрольных точек” потиковый метод использует для генерации данные не только ближайшего меньшего таймфрейма, но и всех доступных меньших таймфреймов. При этом, если на какой-то временной диапазон одновременно существуют данные более одного таймфрейма, то для генерации используются данные самого меньшего таймфрейма. Так же, как и в предыдущем методе, генерируются контрольные точки на основе данных OHLC наименьшего доступного таймфрейма. Для генерации движения цены между контрольными точками также используется интерполяция на основе предопределенных шаблонов, поэтому крайне желательно наличие минутных данных, покрывающих весь диапазон тестирования. Возможна ситуация, когда генерируется несколько одинаковых тиков подряд. В этом случае дублирующиеся котировки фильтруются, и фиксируется объем последней из таких котировок.

При тестировании по всем тикам объём сгенерированных тиков может быть довольно большим, поэтому терминал может потреблять довольно много ресурсов.

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

Пункт 4 – использовать дату. Ставим галочку и выбираем желаемые даты начала и окончания тестирования. Если галочка не проставлена, тестирование проводится по всей истории котировок, загруженных в терминал. Тестер не сможет провести тестирование на периоде, по которому нет котировок в архиве котировок, то есть вы не сможете сделать тест с 1300 года, если у вас нет котировок за этот период.

Пункт 5 – визуализация, о которой мы поговорим позже.

Настройки на панели тестера справа:

Период – выбор периода для тестирования советника. Доступны периоды вплоть до D1. W1 и MN1 недоступны для тестирования. Кроме того, если у вас не загружена история котировок нужного периода, тест вы выполнить не сможете.

Спред – можно задать любое значение или же использовать текущий спред по паре. Сделано это для удобства – например, по ночам и на выходных текущий спред обычно завышен и если вы тестируете советник в это время есть смысл задать спред вручную. Если у вас выбран текущий спред, результаты тестов могут сильно отличаться в зависимости от времени суток и дня недели, особенно при тестировании по всем тикам.

Кнопка «Изменить эксперта» доступна только если у вас есть исходный код советника (файл с расширением mq4). Она открывает редактор кода советника, где вы сможете внести в советник необходимые изменения.

ПРИЧИНЫ ПО КОТОРЫМ СОВЕТНИК ФОРЕКС НЕ ТОРГУЕТ

Кнопка «Открыть график» открывает график с нанесенными на него индикаторами и сделками, совершенными советником во время теста (нажать можно после того, как тест выполнен).

Кнопка «Свойства символа»

Поменять здесь ничего нельзя, это просто справочная информация по используемой валютной паре.

Кнопка «Свойства эксперта»

Нажав на кнопку, вы увидите окошко, изображенное сверху. Доступны три вкладки: «Тестирование», «Входные параметры» и «Оптимизация».

Тут вы можете ввести используемый для теста депозит и валюту депозита. Также при желании можно выбрать направление сделок, например разрешить эксперту торговать только в покупки или только в продажи. Настройки оптимизации в рамках данной статьи рассматриваться не будут. Также как и вкладки «Оптимизация».

Вкладка «Входные параметры»

Тут находятся все управляющие переменные самого эксперта, его настройки. Кстати, окно масштабируемо – если вы потянете мышкой за нижний правый угол, можно увеличить или уменьшить его в размерах. Вместе с экспертами как правило обычно поставляются файлы с настройками, имеющие расширение *.set. Причем чаще всего для каждой пары свой файл с настройкой. Чтобы загрузить правильные настройки для нужной пары нажимаем кнопку «Загрузить» и выбираем нужный файл. Часто после установки эксперта в терминал они оказываются не в нужной папке. После нажатия на кнопку «Загрузить» мы оказываемся в папке тестера (у меня это C:UsersSilentspecAppDataRoamingMetaQuotesTerminalFE03BE71CD8F9E8F4C70E0FDAFC997E5 ester). Если нужных файлов там не оказалось, идем в папку FE03BE71CD8F9E8F4C70E0FDAFC997E5MQL4Presets, скорее всего файлы там. Итак, выбираем и загружаем нужный настроечный файл. После загрузки нам нужно найти параметры манименеджмента советника и выставить фиксированный лот 0.1 – в этом случае каждый доллар прибыли или убытка будет равен 1 старому пункту. Для чего это – я расскажу ниже.

Тестирование советника. Результаты теста

Теперь у нас все готово для теста. Проверьте еще раз настройки и нажимайте кнопку «Старт». Спустя некоторое время тест будет выполнен, о чем нас известит звуковой сигнал, похожий на издаваемый резиновой детской игрушкой с пищалкой.

Настало время взглянуть в нижний левый угол тестера:

Тут мы можем заметить вкладки «Настройки», «Результаты», «График», «Отчет» и «Журнал».

Во вкладке «Результаты» доступен список всех сделок, совершенных советником за время теста.

На вкладке «График» можно полюбоваться кривой доходности советника.

Если советник не совершил ни одной сделки, стоит заглянуть во вкладку «Журнал». В ней вы найдете описание всего, что случилось во время теста. Вполне вероятно, что в советнике какая-нибудь ошибка. Расшифровку номера ошибки можно посмотреть в разделе Коды ошибок.

Во вкладке «Отчет» доступна вся статистика работы эксперта на выбранном отрезке времени:

Баров в истории – количество баров в истории, показывает глубину истории, на основе которой производилось моделирование.

Смоделировано тиков – количество смоделированных тиков, показывает размер смоделированной последовательности. Каждая запись последовательности представляет собой состояние бара (OHLCV) на тот или иной момент времени. В зависимости от таймфрейма, метода моделирования и от наличия исторических данных меньших таймфреймов в пределах бара может быть смоделировано разное количество состояний бара.

Качество моделирования – качество моделирования.

Ошибки рассогласования графиков – ошибки, возникающие при моделировании тиков по различным таймфреймам. Если есть хоть одна такая ошибка, удаляем всю историю из терминала и закачиваем заново. Удалить можно так: Файл -> Открыть каталог данных -> Откроется окно с папкой терминала – > папка history -> Выбираем нужный нам тип счета (тот, что вы используете в данный момент) -> Закрываем терминал и удаляем все файлы с расширением *.hst. Далее закачиваем заново котировки в архиве котировок.

Панелька с сигнализатором качества котировок (у меня она зеленая, поэтому для примера нашел в интернете):

Серым цветом – отсутствующие котировки, красным – котировки только текущего периода, зеленым – котировки доступны и предыдущих периодов, при этом чем ярче зеленый цвет, тем более младшие периоды доступны. При доступности периода М1 индикатор будет как у меня – ярко зеленый.

Начальный депозит – депозит, с которым проводилось тестирование.

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

Общая прибыль – сколько всего было заработано во время работы советника

Общий убыток – сколько всего было потеряно.

Чистая прибыль – прибыль, которая была заработана экспертом за заданный период. Если тест сделан лотом 0.1, то эта прибыль в валюте депозита равна количеству заработанных старых пунктов. То же справедливо и для всех остальных параметров, указанных в валюте. Чистая прибыль = Общая прибыль – Общий убыток.

Прибыльность – прибыльность, показывает отношение между общей прибылью и общим убытком. Рассчитывается по формуле Прибыльность = Общая прибыль/ Общий убыток.

Матожидание выигрыша – математическое ожидание выигрыша.

ЧАСТЫЕ ОШИБКИ ПРИ ТЕСТИРОВАНИИ СОВЕТНИКОВ ФОРЕКС

Абсолютная просадка – это разница между начальным депозитом и наименьшим значением баланса в процессе тестирования.

Максимальная просадка – это максимальная разница между одним из локальных верхних экстремумов графика изменения баланса и последующих нижних экстремумов.

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

Относительная просадка показывает отношение максимальной просадки к значению соответствующего локального верхнего экстремума.

Думаю, остальные данные теста, такие как средняя прибыльная сделка, максимальное количество непрерывных проигрышей и так далее, вполне понятны и объяснения тут не нужны.

Если кликнуть по отчету правой кнопкой мышки, можно сохранить этот отчет в виде html файла:

Сверху отчета располагаются основные данные об условиях проведения теста – период, валютная пара, модель тестирования, параметры советника и прочее. Ниже – статистические данные теста и график кривой доходности. Далее в виде таблицы следует список всех совершенных сделок.

Режим визуализации

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

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

Заключение

В этой статье был рассмотрен основной функционал тестера стратегий терминала MetaTrader 4 и особенности закачки котировок. Также мы познакомились с результатами теста советника и визуальным режимом тестирования. Хочу обратить внимание, что это лишь основы работы с советниками. Способ тестирования советника, рассмотренный в статье, подойдет для советников на периодах от Н1 и выше. Для скальперов, работающих на более мелких периодах, такой способ тестирования подходит условно, он носит чисто информативный характер. Если вы собрались зарабатывать при помощи советников, необходимо также освоить оптимизацию советников. Также нелишним будет получить более глубокие знания о тестировании и оптимизации советников с более высоким качеством моделирования, недоступным, к сожалению, в стандартном исполнении терминала.

Коды ошибок в MQL4

Разбор полетов! Коды ошибок, их значения и способы устранения.

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

Каждый советник имеет свой функциональный режим, но будем исходить из стандартного набора проблем и распространенных ошибок советников.

Краткая справка по ошибкам изложена в Коды Ошибок, а также в самом терминале MetaTrader4
Исходя из них — мы попробуем в стиле Руководства по ошибкам электронной техники описать проблему и способ ее решения.

Если Вашей ошибки нет в данной таблице, или способы решения не помогли, обратитесь к автору Вашего советника, но перед этим воспользуйтесь статьей Log файлы для детального рассмотрения проблемы с роботами* (Expforex Прибыльные советники — — Стратегии Форекс —)

ошибка 4, 146
Торговый сервер занят
1. Советник подал слишком много приказов одновременно
2. Не дождавшись ответа от сервера, при выполнении операции — советник пытается отправить новый приказ, Сервер перегружен

1. Перезагрузка терминала
2. Оптимизация кода советника с помощью функций обработки ошибок.

ТОП 5 ОШИБОК ПРИ СОСТАВЛЕНИИ ПОРТФЕЛЯ СОВЕТНИКОВ

ошибка8, 141
Слишком частые запросы
1. Предыдущие причины ошибки, в сильно частом запросе.

ошибка129
Неправильная цена
1. Цена по которой Вы пытаетесь открыть позицию (BUY SELL)- неправильная

1. Золотое правило: BUY нужно открывать по Ask а закрывать по BID
SELL нужно открывать по BID а закрывать по ASK

ошибка130,145
Неправильные стопы
1. Стопы= Стоплосс, тейкпрофит или уровень открытия отложенника или лимитника.
2. Стопы расположены слишком близко к цене
3. Ваш счет открыт в группе ECN (ЕЦН) или NDD (НДД)
4. Ваш брокер использует Рыночное исполнение позиций

1. Проверьте значения Ваших стоплосс, тейпрофитов
2. Уточните минимальный стоп уровень по Вашему инструменту у брокера, при выставлении стопов — соблюдайте уровень минимальной дистанции
3. В хорошо написанном советнике должны быть функции работы на счетах ECN и NDD

ошибка131
Неправильный объем
1. Неправильный лот при открытии сделки
2. Лот, который вы пытаетесь открыть, меньше минимального
3. Лот, который вы пытаетесь открыть больше максимального
4. Разрядность лота отличается от разрядности брокера.
1. Проверьте правильность открытия лота, изучите спецификацию контракта и прочтите условия торговли в Вашем ДЦ
2.3. Проверьте, Минимальный и Максимальный лот в Вашем ДЦ и на Вашем счете. На некоторых типах счетов, минимальный лот может быть 0.01 а также 0.1 и даже 3. Максимальный лот может быть 5 лотов и 999 лотов и другие.
4. Уточните разрядность лотов на Вашем сервере. Если например разрядность лотов=1, то можно открыть лот 0.1 или 0.5 или 1.2 и так далее, с 1 знаком после запятой, если разрядность лота 2 знака, то исходя из минимального лота, лот может быть 0.01, 0.06, 0.17, 1.48. Также в некоторых ДЦ существует порядок степени лотов, например можно открыть 0.5 и 1 и 1.5 и так далее, а например 0.6 открыть нельзя. Уточните у своего брокера порядок установки лотов.

ошибка132
Рынок закрыт
1. Рынок закрыт в Выходные дни
1.Пробуйтесвязаться с рынком после выходных

ошибка133
Торговля запрещена
1. В данный момент торговля запрещена
2. По данной валютной паре запрещено торговать
1. Попробуйте торговать после выходных

ошибка134
Недостаточно денег для совершения операции
1. Лот, который Вы пытаетесь открыть, слишком большой, на него не хватает маржи
1. Проверьте уровень свободных средств, ирассчитайтесредства, которые Вам нужны, для открытия лота
2. Следите за уровнем Ваших свободных средств

ошибка135..138
Цена изменилась
1. Реквот
2. Слишком быстрый рынок
3. Брокер или ДЦ не дает Вам поставить позицию по заявленной цене
1. Не торгуйте в такие моменты
2. Увеличьте уровеньпроскальзывания, но помните что это влечет за собой открытие позиций не по заявленной Вами цене.
3. Сделайте в советнике функцию обработки ошибок и количество попыток открытия позиций

ошибка 147
Использование даты истечения ордера запрещено брокером
1. Ваш советник или Вы пытаетесь установить срок истечения отложенного ордера
1. В советнике, в функции OrderSend в параметре срок истечения поставьте=0
2. Не устанавливайте срок истечения ордера.

ошибка 148
Количество открытых и отложенных ордеров достигло предела, установленного брокером.
1. Максимальноеколичествооткрытых ордеров и позиций достигнут предела, установленного брокером.
1. Удалите или закройте часть позиций
2. Остановите процесс открытия новых позиций
3. Соблюдайте иерархию сделок, лучше открыть 1 позицию лото 0.1 одновременно, чем 10 позиций лотом 0.01 с потерей спреда.

  • Вы пытаетесь поделить число на 0.
  • Проверьте Весь код советника на наличие такой грубой ошибки, или же проверьте все значения из MarketInfo функций на момент возвращения 0, иногда при MarketInfo(Symbol(),MODE_SPREAD) возвращается не спред а 0 (у брокеров с плавающим спредом)
  • В Вашем терминале запрещен вызов DLL
  • Разрешите вызов DLL через Меню – сервис – Настройки – Советник – Разрешить вызов DLL, но помните, разрешайте данную опцию только для советников, в которых Вы уверены, и уверены что в ДЛЛ не сидит какой-нибудь троян. Проверьте ДЛЛ на наличие троянов с помощью антивируса.
  • Библиотека повреждена
  • Вызов библиотеки осуществляется с ошибкой
  • Проверьте библиотеку DLL
  • Обратитесь к разработчику данной библиотеки
  • В Вашем терминале запрещен вызов функций из внешних экспертов
  • Разрешите вызов функций через Меню – сервис – Настройки – Советник – Разрешить вызов внешних экспертов,
  • Данный файл не существует
  • Данный файл заблокирован
  • Проверьте наличие указанного файла в папке experts – files
  • Проверьте не заблокирован ли файл системой антивируса. Разрешен ли режим записи\чтения файла
  • Символа нет в обзоре рынка
  • В обзоре рынка – правой кнопкой мыши – показать все символы
  • Проверить названия символа в советнике и наличие его в обзоре рынка
  • Некоторые советники используют четкие названия без суфиксов, а брокеры намеренно ставят суфиксы, например EURUSDx где х – суфикс.
  • Тикет ордера, который выбирает эксперт – не существует
  • Эксперт пытается выбрать тикет, но данный ордер был закрыт другим советником или руками.
  • При попытке осуществления приказа над ордером, тикет был исполнен и закрыт брокером.
  • Если данная ошибка появляется очень часто, 100-1000 раз за минуту, проверьте функции Вашего советника
  • Отключите другие советники, или настройте их так, чтобы они не конфликтовали, не закрывайте ордер руками, когда эксперт выполняет операцию
  • Советнику запрещено торговать, на графике грустный смайл или крестик
  • Включите галочку «Разрешить советнику торговать» в вкладе при установке советника, либо в меню- сервис – настройки – советники.
  • В настройках советника, в вкладке Общие не разрешен тип позиций
  • В Вкладке Общие, при установке советника есть выбор позиций:

Long Short – Разрешены BUY SELL
Only Long– Разрешен BUY
Only Short – Разрешен SELL

НЕ ЗАБЫВАЕМ ГОВОРИТЬ СПАСИБО И НАЖИМАТЬ КНОПКУ

rbrus

Прохожий
  • 22.10.2022
  • #5

в стандартных библиотеках
#include <stderror.mqh>
#include <stdlib.mqh>

есть функция
string ErrorDescription(int error_code);

выводит описание ошибки

expforex

Программиров
  • 22.10.2022
  • #6

Капиталист

Активный участник
  • 28.01.2022
  • #7
Гуру форума
  • 28.01.2022
  • #8

Капиталист

Активный участник
  • 28.01.2022

ПРАВИЛЬНЫЙ ВЫБОР СОВЕТНИКА ФОРЕКС ДЛЯ СВОЕГО ДЕПОЗИТА

  • #9

У меня скальпер на ЕСН альпари такую шнягу выдаёт!

А вот это что тогда?
2022.01.26 10:11:33.233 ‘54669’: order buy 0.01 EURUSD opening at 1.12608 sl: 1.12538 tp: 1.15108 failed [Off quotes]
и это:
2022.01.26 16:45:04.623 HistoryBase: 2 errors in ‘EURUSD1’
спасибо!

Гуру форума
  • 28.01.2022
  • #10

На ECN Market Execution. Похоже советник рассчитан на работу с Instant Execution. На Альпари счета стандарт.

imelam

Интересующийся
  • 13.03.2022

Что мешает трейдерам зарабатывать? Разбираем главные ошибки в трейдинге | Академия Форекса

  • #11
Гуру форума
  • 13.03.2022
  • #12

imelam

Интересующийся
  • 14.03.2022
  • #13

frybit

Прохожий
  • 23.11.2022
  • #14
Гуру форума
  • 24.11.2022
  • #15

gince

Местный знаток
  • 03.01.2022
  • #16

Оптимизация форекс советников для новичков

У меня не ошибка , а предупреждение. Ни как не могу его понять что плохо.

possible loss of data due to type conversion ************.mq4 1214 9
а вот эта строка (она вторая)
dg=MarketInfo(sy,MODE_DIGITS);
if(dg==0)
Есть и еще раз
int dg=MarketInfo(OrderSymbol(), MODE_DIGITS)

Тут символ пробовал писать и нс прямую, но не в этом дело.

DIO-Soft

Новичок форума
  • 03.01.2022
  • #17

У меня не ошибка , а предупреждение. Ни как не могу его понять что плохо.

possible loss of data due to type conversion ************.mq4 1214 9
а вот эта строка (она вторая)
dg=MarketInfo(sy,MODE_DIGITS);
if(dg==0)
Есть и еще раз
int dg=MarketInfo(OrderSymbol(), MODE_DIGITS)

Тут символ пробовал писать и нс прямую, но не в этом дело.

не соответствие типов,
если напрягает — сделайте так:

int dg=(int)MarketInfo(OrderSymbol(), MODE_DIGITS);

gince

Местный знаток
  • 04.01.2022
  • #18

не соответствие типов,
если напрягает — сделайте так:

int dg=(int)MarketInfo(OrderSymbol(), MODE_DIGITS);

expforex

Программиров
  • 09.01.2022
  • #19

innovision

Новичок форума
  • 15.02.2022
  • #20

вот еще +38 штук

4210:ERR_CHART_PROP_INVALID = Неизвестное свойство графика
4211:ERR_CHART_NOT_FOUND = График не найден
4212:ERR_CHARTWINDOW_NOT_FOUND = Не найдено подокно графика
4213:ERR_CHARTINDICATOR_NOT_FOUND = Индикатор не найден
4220:ERR_SYMBOL_SELECT = Ошибка выбора инструмента
4250:ERR_NOTIFICATION_ERROR = Ошибка отправки push-уведомления
4251:ERR_NOTIFICATION_PARAMETER = Ошибка параметров push-уведомления
4252:ERR_NOTIFICATION_SETTINGS = Уведомления запрещены
4253:ERR_NOTIFICATION_TOO_FREQUENT = Слишком частые запросы отсылки push-уведомлений
5001:ERR_FILE_TOO_MANY_OPENED = Слишком много открытых файлов
5002:ERR_FILE_WRONG_FILENAME = Неверное имя файла
5003:ERR_FILE_TOO_LONG_FILENAME = Слишком длинное имя файла
5004:ERR_FILE_CANNOT_OPEN = Ошибка открытия файла
5005:ERR_FILE_BUFFER_ALLOCATION_ERROR = Ошибка размещения буфера текстового файла
5006:ERR_FILE_CANNOT_DELETE = Ошибка удаления файла
5007:ERR_FILE_INVALID_HANDLE = Неверный хендл файла (файл закрыт или не был открыт)
5008:ERR_FILE_WRONG_HANDLE = Неверный хендл файла (индекс хендла отсутствует в таблице)
5009:ERR_FILE_NOT_TOWRITE = Файл должен быть открыт с флагом FILE_WRITE
5010:ERR_FILE_NOT_TOREAD = Файл должен быть открыт с флагом FILE_READ
5011:ERR_FILE_NOT_BIN = Файл должен быть открыт с флагом FILE_BIN
5012:ERR_FILE_NOT_TXT = Файл должен быть открыт с флагом FILE_TXT
5013:ERR_FILE_NOT_TXTORCSV = Файл должен быть открыт с флагом FILE_TXT или FILE_CSV
5014:ERR_FILE_NOT_CSV = Файл должен быть открыт с флагом FILE_CSV
5015:ERR_FILE_READ_ERROR = Ошибка чтения файла
5016:ERR_FILE_WRITE_ERROR = Ошибка записи файла
5017:ERR_FILE_BIN_STRINGSIZE = Размер строки должен быть указан для двоичных файлов
5018:ERR_FILE_INCOMPATIBLE = Неверный тип файла (для строковых массивов-TXT, для всех других-BIN)
5019:ERR_FILE_IS_DIRECTORY = Файл является директорией
5020:ERR_FILE_NOT_EXIST = Файл не существует
5021:ERR_FILE_CANNOT_REWRITE = Файл не может быть перезаписан
5022:ERR_FILE_WRONG_DIRECTORYNAME = Неверное имя директории
5023:ERR_FILE_DIRECTORY_NOT_EXIST = Директория не существует
5024:ERR_FILE_NOT_DIRECTORY = Указанный файл не является директорией
5025:ERR_FILE_CANNOT_DELETE_DIRECTORY = Ошибка удаления директории
5026:ERR_FILE_CANNOT_CLEAN_DIRECTORY = Ошибка очистки директории
5027:ERR_FILE_ARRAYRESIZE_ERROR = Ошибка изменения размера массива
5028:ERR_FILE_STRINGRESIZE_ERROR = Ошибка изменения размера строки
5029:ERR_FILE_STRUCT_WITH_OBJECTS = Структура содержит строки или динамические массивы

Коды ошибок торгового терминала MetaTrader 4.

При работе торгового терминала MetaTrader 4 возникают различные ошибки при обмене информацией с торговым сервером, который в ответ на ошибочные запросы отсылает программе MetaTrader 4 не описание ошибки, а цифровой код ошибки — специальную комбинацию цифр, которая отображается во вкладках Эксперты и Журнал (примеры этих вкладок и описание типичной ситуации при возникновении ошибок можно найти в статье «Обзор торгового терминала MetaTrader 4»). Не все торговые терминалы MetaTrader 4 различных дилинговых центров дают расшифровку цифрового кода, а если она и есть, то — на английском языке. Чтобы понять, почему программа МетаТрейдер 4 работает неправильно, полезно знать расшифровку цифрового кода — какой комбинации цифр соответствует определенное описание ошибки. В некоторых случаях эта информация может сильно облегчить «жизнь» трейдеру и помочь быстрее справиться с возникшей проблемой.

Итак, предлагаем Вашему вниманию расшифровку кодов ошибок, которые можно встретить при работе с торговым терминалом MetaTrader 4:

Лучшие Форекс брокеры 2021: