Тестер: Автоматическая оптимизация торгового робота в процессе реальной торговли - страница 13

 
Inter:
SHOOTER777:
В последних билдах (если не ошибаюсь начиная с 214 ) изменилось представление данных в файле отчета. Потому для корректной работы нужно использовать подправленную версию оптимизатора . Где-то кто-то уже выкладывал её. Ищите.

Да, всё верно.
Нашёл и обновилверсию оптимизатора (кстати если кого интересует то обновлённая версия находится здесь auto_optimization_204.mqh).

Сейчас всё работает нормально!

НО!
Как насчёт оптимизации на дневном временном периоде? Это сколько нужно времени для оптимизации то..?Кто-нить, представляет?


Да, кстати!
Если торговать на дневном, то сколько дней нужно использовать для оптимизации ( 95 д. = 3 мес. ...? )... Этож забирает порядка 12 часов, быстрее никак? Без ущерба качества...


Скорость оптимизации зависит от скорости компьютера. На данный момент у меня i7 860 (2800 Mhz), при тестировании собственного советника, достаточно "тяжелого", с периодом в 3 месяца оптимизация занимает около 4 часов. При этом используется всего лишь 13% процессорного времени. Без проблем одновременно запускаю несколько оптимизаторов (в том числе и автооптимизаторы). Для сравнения до этого у меня был атлон двуядерный 2800 Mhz. Работа оптимизатора занимала порядка 70-80% мощности процессора. При этом оптимизация выполнялась в два раза медленнее.
 

Приветствую всех!

Хоть и поздновато, но все же оставлю свой комментарий!

Думаю что рано или поздно, любой программист MQL найдет эту статью.

Надо отметить что статья замечательная и весьма полезная! Полезна тем, что заставляет задуматься.

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

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

Если создавать коммерческий продукт, то это никуда не годится. Автор согласен?

Вот с такими мыслями я и пришел к выводу - необходимо создать "модуль" АвтоОптимизатор, который легко настраивается, и так же легко подключается к ЛЮБОМУ эксперту!

Собственно, что и было реализовано и доведено до состояния коммерческого продукта :)

Основные воплощенные идеи:

1. Копирование терминала MT4 заменено эмуляцией диска на лету (см. программу SUBST операционки)

2. Не нужно специально рассчитывать время окончания оптимизации, т.к. модуль производит анализ состояния запущенного процесса оптимизации

3. Оптимизация может выполняться во время торговой сессии. Эксперту не нужно "спать" и ждать результатов.

4. Настройка автооптимизатора производится не внутри эксперта, а с помощью текстового .INI файла

5. Прикрепляется модуль к эксперту всего тремя вызовами функций:

AutoOptimizerInit("Moving Average.ini"); // из функции init(), в качестве параметра задано имя INI файла

AutoOptimizerStart(); // из функции start()

AutoOptimizerDeinit(); // из функции deinit()

6. Для контроля всего процесса оптимизации используется одна DLL, написана на Borland C++ Builder. Не тяжелая - весит всего 6 Кб.

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

Пользователь сам выбирает - изменять ему значения на оптимизированные или нет.

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

Ну а после этого напишу класс и для MT5.

Если кому интересно можем пообсуждать совместно (email: elugovoy@rambler.ru)

Автору статьи Респект и наилучших пожеланий!

 

Хорошая статья ! Автору респект.

Вопрос к разработчикам - при большой выборке для оптимизации, terminal будет использовать "генетический алгоритм" автоматически или его както нужно включить командно?

 
elugovoy:

Приветствую всех!

Хоть и поздновато, но все же оставлю свой комментарий!


Боюсь Вы не просто поздновато, а "безнадежно" отстали :-)))

посмотрите тут - ftp://fx-soft.biz/tcom.1.0.4.zip

Все то что Вы описывали, да и многое другое уже реализовано :-))

 
-Neo-:

Хорошая статья ! Автору респект.

Вопрос к разработчикам - при большой выборке для оптимизации, terminal будет использовать автоматически или его както нужно включить командно?


а можно я отвечу, вместо разработчиков? :-)) так как они вряд ли появятся в этой ветке :-)

автоматически "генетический алгоритм" включатся не будет, независимо от количества выборки, если вы хотите его включить, Вам понадобится это явно указать в строке. Подробнее можно почитать в справке терминала: Сервис — Конфигурация при старте

 

Ну отстал, это факт, пусть и безнадежно.

по поводу TCOM. Объясните мне, дураку, что такого в это программе что должно занимать 4MB инсталляции и требовать Framework 3.5?

Ну, и к тому же, это Lite версия, сколько же весит не Lite, а полный релиз?

По-сути это, так называемая, "надстройка", менеджер что-ли по управлению терминалом MT4 через startup настройки. Вещь полезная - вопросов нет.

Однако, если внимательно прочитать статью - речь идет о том, чтобы эксперт сам выполнял оптимизацию себя!!! не какое-то сторонее программное обеспечение,

а именно сам эксперт! Вот фишка! И Автор статьи нашел пусть не идеальное, но рабочее решение.

И я, безнадежно отставший :)))), все же улавливаю разницу между реализацей TCOM и сутью изложенной статьи.

Более того, вопрос пользователям TCOM - возможно ли чтобы Ваш эксперт работал (торговал) и выполнял оптимизацию одновременно?

С Ув. Евгений

 

Как-нибудь можно программно узнать о завершении процесса оптимизации?

Api функциями как-то хитро наверное можно, может у кого простое решение уже есть?

Пост поправил, нашел уже, кому нужно - https://www.mql5.com/ru/forum/112540/page5

 

О завершении оптимизации узнать можно.

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

После чего можно проверять время от времени - существует ли такой процесс. Если нет - значит оптимизация закончена.

И это при условии что копия терминала будет запущена с параметром TestShutdownTerminal=true

Использовать WinApi.

 
Лень ВНИМАТЕЛЬНО читать все эти 128 комментов, но по всей видимости афтор упустил простое ограничение чтения из файла с помощью FileReadString(). Эта функция читает строку только ДО РАЗДЕЛИТЕЛЯ. В данном случае разделителем является точка с запятой ";", именно разделитель разделяет параметры (которые обычно не отображаются в отчете). В общем, в самом начале афтор прочитал от "title" до первой точки запятой и записал эту строку в массив строк. Вот и получается, что в массиве строк есть только первый параметр, все остальное и ВСЕ ОСТАЛЬНЫЕ ОПЕРАЦИИ выдают нолики. Ну и с учетом всех этих махинаций плюс 4, минус 20, плюс то минус это... получается что якобы находятся какие-то значения... в то время как на самом деле ни херррась там не находится. Внимательнее нужно быть!
 
xeon:


Боюсь Вы не просто поздновато, а "безнадежно" отстали :-)))

посмотрите тут - ftp://fx-soft.biz/tcom.1.0.4.zip

Все то что Вы описывали, да и многое другое уже реализовано :-))

сайта уже нет. Где можно скачать?
Причина обращения: