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

Здесь в функции OnTick при превышении порога просадки баланса вызывается функция UGA генетического алгоритма, которая оптимизирует веса сигналов.

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

При тестировании советника на паре EURUSD на часах без самооптимизации получаем следующий результат.



С включенной самооптимизацией советника при тестировании получаем следующий результат.



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

Использование библиотечных классов и функций

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



Тоже самое можно сделать с помощью функции iTime.



Здесь мы также используем структуру данных datetime и локальную статическую переменную.

Но вместо функции CopyTime, мы используем функцию iTime для получения времени открытия бара.

Теперь, для открытия позиции, мы использовали структуру MqlTradeRequest и функцию OrderSend.



Тоже самое можно сделать с помощью классов CTrade и CPositionInfo.



Здесь мы с помощью метода Buy класса CTrade открываем длинную позицию с указанным объемом, на текущем символе, по цене, которая возвращается функцией Ask, с нулевым стоплоссом и тейкпрофитом.

Затем мы получаем тикет сделки с помощью метода ResultDeal, и фиксируем позицию CPositionInfo с помощью метода SelectByTicket.

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



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



Используя методы классов CTrade и CPositionInfo можно также реализовать трейлинг позиций на покупку и продажу.

И еще раз о тестировании роботов

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

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

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



Для оптимизации параметров робота, его нужно протестировать на истории цен, которую терминал загружает с сервера брокера и сохраняет в папке Bases\Default\History.

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

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

И один и тот же робот будет иметь разные оптимизированные параметры для разных брокеров.

Универсальных оптимизированных параметров робота вы не получите.

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

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

Так что брокер со своей историей не химичит.

При чувствительности результатов работы робота к оптимизации параметров робота, возникает вопрос, как же настроить робота, чтобы он обеспечил прибыльную торговлю на реальном рынке?

Тот, кто найдет ответ на этот вопрос, будет сказочно богат.

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

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

Сначала нужно разобраться в движущих силах и механизмах рынка.

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

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



Любой советник требует периодической настройки своих параметров.

Значения параметров советника по сути отражают настроение на рынке.

И так как настроение на рынке периодически меняется, необходимо перенастраивать советник.

Настройка советника производится с помощью тестера стратегий терминала.

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

Исследовать сервер брокера можно следующим образом.

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

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

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

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

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

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

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

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

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

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

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

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

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