Читаем Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное полностью

Таким образом, глобальные переменные клиентского терминала это средство коммуникации между разными MQL5-приложениями.

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

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

При тестировании эксперта глобальные переменные клиентского терминала эмулируются, и они никак не связаны с настоящими глобальными переменными терминала.

Все операции с глобальными переменными терминала при тестировании эксперта производятся вне клиентского терминала в агенте тестирования.



Принудительно глобальные переменные клиентского терминала можно уничтожить с помощью вызова функции GlobalVariableDel или GlobalVariablesDeleteAll.



В функции OnTick эксперта сначала производится проверка возможности торговли на данном счете, достаточности средств на счете, достаточности загруженной ценовой истории для расчетов торговой стратегии.

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



Функция OnTimer позволяет создать альтернативную модель эксперта, который будет производить вычисления торговой стратегии не при наступлении нового тика в функции OnTick, а через определенные функцией EventSetTimer промежутки времени.

При этом в функции OnDeinit эксперта нужно удалить таймер с помощью вызова функции EventKillTimer.



Функция OnTrade позволяет обработать завершение торговой операции.

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

Например, функцию OnTrade можно использовать для временного ограничения торговли при срабатывании Stop Loss.

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



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

В частности, в функции OnTradeTransaction можно обрабатывать результат исполнения торгового запроса на сервере, отправленного функцией OrderSendAsync.

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

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



Функция OnTester позволяет определить свой критерий оптимизации, так как при оптимизации тестер всегда ищет локальный максимум возвращаемого значения функции OnTester, которая автоматически вызывается после окончания очередного прохода тестирования эксперта на заданном интервале дат.

Для использования функции OnTester в тестере выбирается критерий оптимизации Максимум пользовательского критерия.



Функции OnTesterInit (), OnTesterPass (), OnTesterDeinit () позволяют организовать динамическую обработку результатов оптимизации параметров эксперта в тестере при каждом проходе оптимизации.



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



Функция OnChartEvent, так же как и функция OnTimer, позволяет создать альтернативную модель эксперта, который будет производить вычисления торговой стратегии не при наступлении нового тика в функции OnTick, а при получении событий от индикаторов, прикрепленных к графику символа.

Функция OnTick

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



Информацию о счете клиента можно получить с помощью функций AccountInfoDouble, AccountInfoInteger и AccountInfoString.

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

Для функции AccountInfoInteger это следующие свойства:



— ACCOUNT_LOGIN — функция возвращает номер счета.

— ACCOUNT_TRADE_MODE — функция возвращает тип торгового счета. Функция возвращает 0 для демонстрационного торгового счета, 1 для конкурсного торгового счета, 2 для реального торгового счета.

— ACCOUNT_LEVERAGE — возвращает размер кредитного плеча счета, например, для плеча 1:100, функция вернет 100.

Перейти на страницу:

Похожие книги

Самоучитель UML
Самоучитель UML

Самоучитель UMLПервое издание.В книге рассматриваются основы UML – унифицированного языка моделирования для описания, визуализации и документирования объектно-ориентированных систем и бизнес-процессов в ходе разработки программных приложений. Подробно описываются базовые понятия UML, необходимые для построения объектно-ориентированной модели системы с использованием графической нотации. Изложение сопровождается примерами разработки отдельных диаграмм, которые необходимы для представления информационной модели системы. Цель книги – помочь программистам освоить новую методологию разработки корпоративных программных приложений для последующего применения полученных знаний с использованием соответствующих CASE-инструментов.

Александр Васильевич Леоненков , Александр Леоненков

Зарубежная компьютерная, околокомпьютерная литература / Программирование / Прочая компьютерная литература / Книги по IT
Компьютер для тех, кому за…
Компьютер для тех, кому за…

В наш век высоких технологий без компьютера не обходится практически ни один человек. Но что делать, если вам уже за…, а компьютер вы так и не освоили? Не стоит отчаиваться! Эта книга была написана специально для тех, кто по каким-то причинам не смог освоить его раньше. Легким и доступным языком в книге изложены основные принципы работы на компьютере. Вы узнаете, как создать документ в текстовом редакторе, выстроить таблицы и диаграммы в экселе, освоите графический редактор, который позволит вам рисовать и редактировать фото и рисунки, научитесь самостоятельно подключать принтер и печать, общаться с родными и друзьями по скайпу и ICQ, узнаете, какие бывают игры, как выбрать игру для себя, и многое-многое другое.Никогда не поздно осваивать что-то новое! А уж тем более — компьютер. Он откроет вам целый мир безграничных возможностей. Не упустите свой шанс узнать что-то новое и интересное — дайте компьютеру прочно войти в вашу жизнь. Ведь пользоваться им так же просто, как и обычным телефоном, только в тысячу раз интереснее!

Оксана Грибова

Зарубежная компьютерная, околокомпьютерная литература / Интернет / Программное обеспечение / Прочая компьютерная литература / Книги по IT
Omert@. Руководство по компьютерной безопасности и защите информации для Больших Боссов
Omert@. Руководство по компьютерной безопасности и защите информации для Больших Боссов

Увы, друг мой, защита твоей информации - или хотя бы четкое понимание того, что это такое и как подобная защита должна строиться - это Твое Личное Дело! Не Cosa Nostra (хотя твои проблемы могут стать и Нашим Делом тоже), а Cosa Roba - Твое Дело!  Я знаю, что ты солидный человек, который привык платить, чтобы за него решали проблемы. Однако есть проблемы, которые за тебя никто не решит, - даже за очень большие деньги. Например, заниматься любовью со своей женой должен ты сам. Но кто тебе сказал, что защита твоей информации - это менее интимное дело, и его можно поручить постороннему?  Первая книга по безопасности для Менеджеров, а не для ботаников-компьютерщиков, информации от широко неизвестного благодаря своей репутации эксперта международного класса. Только благодаря ей Большой Босс сможет понять, каким образом он сможет чувствовать себя хотя бы в относительной безопасности!  Ты должен сам знать, что такое безопасность информации! Ни один нанятый специалист не решит это за тебя!  Если ты нанимаешь студента-компьютерщика за двести баксов в месяц и совершенно серьезно считаешь его специалистом по информационной безопасности, - не понятно, как ты вообще смог стать менеджером подобного уровня.

Алекс Экслер , Карл Шкафиц

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT