Обсуждение статьи "Управление оптимизацией (Часть I): Создание графического интерфейса"

 

Опубликована статья Управление оптимизацией (Часть I): Создание графического интерфейса:

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

Для начала стоит определиться с тем, что для работы с проектом потребуется установить на компьютер IDE (Integrated Development Environment) Visual Studio, конкретно данный проект был создан с использованием версии Community 2019 года. Также во время установки студии нужно установить .Net 4.6.1 — с его использованием написано данное дополнение. Также стоит сказать, что для того чтобы читатели, недостаточно сведущие в языке C#, могли быстро вникнуть в суть вопроса, я постараюсь подробно описывать некоторые специфические моменты данного языка и используемые мною приемы во время программирования.

Так как графический интерфейс наиболее удобно создавать с использованием языка C#, а терминал MetaTrader поддерживает удобный способ стыковки с данным языком, то стоит воспользоваться представленной возможностью. К тому же не так давно на форуме появилось несколько статей на тему создания графического интерфейса с использованием C#. Данные статьи хорошо демонстрируют способ создания графических интерфейсов на баз технологии Win Forms и стыковочной dll-библиотеки, которая через механизмы рефлекции запускает графику. Решение, использованное автором данных статей, достаточно хорошо, однако для текущей статьи я решил воспользоваться более современной версией написания графических интерфейсов — через технологию WPF, и в результате удалось обойтись без стыковочной библиотеки, уместив все в одну единственную dll-библиотеку. Для решения поставленной нами задачи требуется создать тип проекта, который позволял бы хранить в себе графические объекты, описанные с использованием WPF технологии, и компилирующийся в динамическую библиотеку (*.dll файл), который позже можно было бы подгрузить в терминале. Такой тип проекта существует, это WpfCustomControlLibrary — данный тип проектов специально был разработан для создания пользовательских графических объектов, примером того может служить библиотека, рисующая графики. Мы же будем использовать ее для собственных целей, а именно — создания нашего расширения для терминала MetaTrader. Для создания данного проекта требуется выбрать его из списка проектов в IDEVisual Studio, как показано на скриншоте:


Автор: Andrey Azatskiy

[Удален]  

Можно вопрос?

А смысл в этом какой?

Что мешает запустить просто два терминала и в них запустить оптимизацию?

Оба терминала обращаются к одним и тем же агентам. Выигрыша в скорости ожидать не приходится.

Смысл то какой?

 
Сергей Таболин:

Можно вопрос?

А смысл в этом какой?

Что мешает запустить просто два терминала и в них запустить оптимизацию?

Оба терминала обращаются к одним и тем же агентам. Выигрыша в скорости ожидать не приходится.

Смысл то какой?

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

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

 
Я пытался сделать похожую систему, но идея заключалась в том, чтобы планировать оптимизации и по мере их завершения терминал сохранял оптимизацию в .csv с прогнозируемым именем, например: EA_XXX_v01_EURUSD_H1_OHLC_SET01
А позже переходил бы к следующей запланированной оптимизации, SETы должны быть сохранены в папке, таким образом можно было бы оптимизировать несколько роботов в течение дня на нескольких различных периодах и инструментах, включая облегчение WFA или OOS.
К сожалению я не смог разработать в силу своих малых знаний, буду следить за вашей работой. Поздравляю!!!
 
Joao Luiz Sa Marchioro:
Я пытался сделать похожую систему, но идея заключалась в том, чтобы планировать оптимизации и по мере их завершения терминал сохранял оптимизацию в .csv с прогнозируемым именем, например: EA_XXX_v01_EURUSD_H1_OHLC_SET01
А позже переходил бы к следующей запланированной оптимизации, SETы должны быть сохранены в папке, таким образом можно было бы оптимизировать несколько роботов в течение дня на нескольких различных периодах и символах, включая облегчение WFA или OOS.
К сожалению я не смог разработать в силу своих малых знаний, буду следить за вашей работой. Поздравляю!!!

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

 

Здравствуйте!

Можно вопрос?

Версию Community 2015 года можно использовать?

 
Irina Dymura:

Здравствуйте!

Можно вопрос?

Версию Community 2015 года можно использовать?

Здравствуйте, думаю да, вполне.

 
Спасибо...
 
Resources.resx

Этот файл отсутствует в zip-пакете.

Однако его можно найти здесь

https://www.mql5.com/ru/articles/download/7029.zip


В остальном очень хорошая статья!

Возможность запускать MT5 извне и проводить тесты

 
Приветствую и еще раз спасибо за вашу столь полезную работу. Завершение процесса через запись данных в файл dox, xcl или csv будет очень полезным, пожалуйста.
Спасибо еще раз.
 
Patrick Johnson:
Приветствую и еще раз спасибо за вашу столь полезную работу. Завершение процесса через запись данных в dox, xcl или csv файл будет очень полезно, пожалуйста.
Спасибо еще раз.

К сожалению, этот проект больше не поддерживается. Сейчас я работаю над автооптимизатором, работающим по принципу walk forward (https://www.mql5.com/ru/articles/7583).

Continuous Walk-Forward Optimization (Part 5): Auto Optimizer project overview and creation of a GUI
Continuous Walk-Forward Optimization (Part 5): Auto Optimizer project overview and creation of a GUI
  • www.mql5.com
In the previous articles, we considered the project part directly related to the terminal as well as the part describing the general application of the project. The previous article was ahead of the rest of the series. This was done for two reasons. Firstly, it serves as an instruction for using the application. Secondly, it illustrates the app...