634
Очень важное свойство клиентского терминала состоит в том, что в случае, если во время
выполнения прикладной программы возникает ошибка, то клиентский терминал не
прекращает исполнение программы. Обычно ошибки возникают по причине
несовершенства используемого в прикладной программе алгоритма, а в некоторых
случаях - в результате внешних (по отношению к программе) причин. К внутренним
причинам относятся любые нарушения требований языка MQL4 или правил торговли,
например, использование неправильных цен, а к внешним - причины, не связанные с
прикладной программой, например, проблемы со связью.
Если при исполнении программы возникает ошибка, то программа продолжает работу, а
клиентский терминал генерирует значение кода ошибки, которое доступно программе при
использовании функции GetLastError( ).
10.3.4 Функция GetLastError()
int GetLastError()
Функция возвращает код последней ошибки, после чего значение специальной
переменной last_error, в которой хранится код последней ошибки, обнуляется.
Последующий вызов GetLastError() вернет значение 0.
В дальнейшем все возникающие ошибки мы будем идентифицировать по этому коду. Во
время исполнения программы может возникнуть несколько ошибок; функция
GetLastError() позволяет получить значение кода только одной - последней ошибки,
поэтому во всех случаях, когда может понадобиться такая информация, использовать
функцию GetLastError() необходимо непосредственно после тех программных строк, в
которых эта ошибка может возникнуть.
10.3.5 Ошибка 130. Неправильные стопы
Последний рассмотренный скрипт не производит анализ ошибок, поэтому пользователь
остаётся в неведении относительно результатов исполнения функции открытия ордера. В
простом варианте использования функции GetLastError() можно проанализировать
ошибку и просто сообщить о ней пользователю. Если скрипт confined.mq4 запустить на
исполнение в окне Eur/Usd, то возникнет ошибка.