Доброго времени суток!
Сразу объясню зачем это сделано:
1.Библиотека переписана по русски т.к. (по крайней мере мне) удобнее получать расшифровку ошибки на привычном русском языке и нет надобности искать в справочнике перевод и описпние ошибок.
2.Библиотека переделана в подключаемй файл т.к. этот вариант не страдает недостатком библиотек - т.е. поздним связыванием (вызов функции из библиотеки происходит на стадии исполнения и вызов из двух и более Советников одновременно одной и той же функции приводит к ошибке типа "Фунция не может быть вызвана т.к. библиотека уже занята вызовом из другого Советника"). С подключаемым файлом такой заморочки нет. И нет надобности проверять разрешены ли вызовы библиотечных функций и вызовы из DLL в свойствах Советника.
3.В файл добавлены русские комментарии, что может пригодится начинающим разработчикам MQL4 программ т.к. облегчает понимание роли и принципа работы описанных в файле функий.
Если никому и не пригодится - то не жалко т.к. я этим файлом пользуюсь уже пару недель и никаних проблем пока не заметил. Вся разница только в том, что вызывается он не из libraries, а из include (подпапка подлючаемых файлов в папке MetaTrader/Experts) и не страдает недостатком библиотек.
P.S. Чтоб у вас все было и вам за это ничего не было.
У хорошего хозяина в хозяйстве всё сгодится, я лично скачал (пусть будет :о) .
case 149: error_string="Попытка открыть противоположную позицию к уже существующей";break; case 150: error_string="Попытка закрыть позицию противоречит правилу FIFO.";break;
Поправка к 150
Да и 149 как-то сложно сформулирована...
У меня она проще написана: "ЛОК запрещён!!!"
;)
Кстати в МТ5 согласно концепции это будет так:
"Попытка закрыть ордер противоречит правилу FIFO."Наверное...
:)))
Доброго времени суток!
Выдержка из учебника по MQL4:
Включаемый файл (Included file) - исходный текст часто используемых блоков пользовательских программ. Такие файлы могут включаться в исходные тексты экспертов, скриптов, пользовательских индикаторов и библиотек на этапе компиляции. Использование включаемых файлов более предпочтительно, чем использование библиотек, из-за дополнительных накладных расходов при вызове библиотечных функций. Включаемые файлы рекомендуется хранить в директории каталог_терминала\experts\include
И еще одна выдержка из руководства пользователя MQL4 - недостатки импорта выделены:
Импорт функций осуществляется из откомпилированных модулей MQL4 (файлы *.ex4) и из модулей операционной системы (файлы *.dll). Имя модуля указывается в директиве #import. Для того, чтобы компилятор мог правильно оформить вызов импортируемой функции и организовать правильную передачу параметров, необходимо полное описание функций. Описания функций следуют непосредственно за директивой #import "имя модуля". Новая команда #import (можно без параметров) завершает блок описания импортируемых функций.
Импортируемые функции должны иметь уникальные имена. Нельзя одновременно импортировать из разных модулей функции с одинаковыми именами. Импортируемые функции не должны иметь имен, совпадающих с именами встроенных функций.
Так как импортируемые функции находятся вне компилируемого модуля, компилятор не может проверить правильность передаваемых параметров. Поэтому, во избежание ошибок выполнения, необходимо точно описывать состав и порядок параметров, передаваемых в импортируемые функции. Параметры, передаваемые в импортируемые функции (как из EX4, так и из DLL-модулей), не могут иметь значения по умолчанию.
Для импорта функций во время выполнения mql4-программы используется так называемое позднее связывание. Это значит, что пока не вызвана импортируемая функция, соответствующий модуль (ex4 или dll) не загружается.
Использование заголовочных файлов без импорта позволяет прямо включать в EX4 файлы куски кода, содержещие функции в процессе компиляции. Нет проблем с вызовом библиотек на этапе исполнения программы (т.к. функция уже встроена в EX4 файл.). При использовании заголовочного файла те функции, которые не вызываются в процессе работы EX4 программы, не включаются в исполняемый файл .т.е вся работа программы определяется на этапе компиляции, до начала исполнения, что увеличивает надежность программы и уменьшает расходование памяти компьютера.
P.S. Чтоб у вас все было и вам за это ничего не было!
Уважаемый топикстартер! У Вас не дописана одна строка кода, возвращающая описание ошибки № 0. У меня в коде это вот так:
case 0: error_string=" Нет ошибки"; break;
У Вас:
case 0: //Нормальное завершение процедуры.
Исправьте пожалуйста.
А мне и не нужно - у меня своя похожая есть. Но пост я всё же опубликовал, чтоб те, кто ещё только будут скачивать сие изделие, знали что и как нужно исправить, ибо ошибка номер ноль - довольно частый гость в отладке кодов.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброго времени суток!
Сразу объясню зачем это сделано:
1.Библиотека переписана по русски т.к. (по крайней мере мне) удобнее получать расшифровку ошибки на привычном русском языке и нет надобности искать в справочнике перевод и описпние ошибок.
2.Библиотека переделана в подключаемй файл т.к. этот вариант не страдает недостатком библиотек - т.е. поздним связыванием (вызов функции из библиотеки происходит на стадии исполнения и вызов из двух и более Советников одновременно одной и той же функции приводит к ошибке типа "Фунция не может быть вызвана т.к. библиотека уже занята вызовом из другого Советника"). С подключаемым файлом такой заморочки нет. И нет надобности проверять разрешены ли вызовы библиотечных функций и вызовы из DLL в свойствах Советника.
3.В файл добавлены русские комментарии, что может пригодится начинающим разработчикам MQL4 программ т.к. облегчает понимание роли и принципа работы описанных в файле функий.
Если никому и не пригодится - то не жалко т.к. я этим файлом пользуюсь уже пару недель и никаних проблем пока не заметил. Вся разница только в том, что вызывается он не из libraries, а из include (подпапка подлючаемых файлов в папке MetaTrader/Experts) и не страдает недостатком библиотек.
P.S. Чтоб у вас все было и вам за это ничего не было.