MetaTrader 5 Strategy Tester! - страница 23

 
Urain:

Если это ответ мне, то поясните где что нужно прописать, чтоб машина по окончании первого этапа оптимизации, переписала бы нужные настройки конфигурации и нажала бы кнопочку [старт] для второго этапа оптимизации?

Например:

первый этап оптимизации SL 10 10 200 --> [старт] --> лучший результат  SL=140

второй этап оптимизации SL 120 1 160 --> [старт] --> лучший результат  SL=146

Примерный сценарий

Не надо "нажимать кнопочки".

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

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5
 
stringo:

Не надо "нажимать кнопочки".

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

Мы о разных вещах говорим. Вы говорите о тестировании, я о оптимизации (тестирование это один проход оптимизации).

Вы говорите о том что настройки будет менять сам советник исходя из внешней информации, но во первый этот проход советника тестер воспримет с теми настройками с которыми тестер их запустил (не вникая во внутреннее изменение параметров) таким образом произойдёт обман ГА.

Во вторых ГА настроен на ~10000 проходов, после чего нужно обработать результат лучшего прохода и снова запустить ГА, уже для уточнения параметров(это в том примере что я приводил, но необходимость автоматического повторного или третьего,четвёртого запуска оптимизации может быть разная).

И кто нажмёт кнопку новой оптимизации?

 
Urain:

Мы о разных вещах говорим. Вы говорите о тестировании, я о оптимизации (тестирование это один проход оптимизации).

Вы говорите о том что настройки будет менять сам советник исходя из внешней информации, но во первый этот проход советника тестер воспримет с теми настройками с которыми тестер их запустил (не вникая во внутреннее изменение параметров) таким образом произойдёт обман ГА.

Во вторых ГА настроен на ~10000 проходов, после чего нужно обработать результат лучшего прохода и снова запустить ГА, уже для уточнения параметров(это в том примере что я приводил, но необходимость автоматического повторного или третьего,четвёртого запуска оптимизации может быть разная).

И кто нажмёт кнопку новой оптимизации?

 

Как Вы представляете реализацию нужного Вам функционала? Я - никак. Нет универсального решения.

Поэтому нужна некая уникальная надстройка (написанная, скажем, на С++), которая анализирует результаты, записанные (накопленные) в файл в общую папку клиентских терминалов, и формирует новый сет параметров и "нажимает кнопку новой оптимизации", то есть запускает тестер с новым конфигурационным файлом

 
stringo:

Как Вы представляете реализацию нужного Вам функционала? Я - никак. Нет универсального решения.

Поэтому нужна некая уникальная надстройка (написанная, скажем, на С++), которая анализирует результаты, записанные (накопленные) в файл в общую папку клиентских терминалов, и формирует новый сет параметров и "нажимает кнопку новой оптимизации", то есть запускает тестер с новым конфигурационным файлом

Вы менЯ спрашиваете как это сделать?

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

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

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

Вот так я это представляю.

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

 
Urain:

Вы меня спрашиваете как это сделать?

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

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

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

Вот так я это представляю.

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

Так я же и спросил до этого про предлагаемые скрипты, сценарии.

Я повторяю, что я не вижу универсального решения. Не вижу не потому, что его нет, а потому что, возможно, мне не хватает воображения.

Вам это нужнее, чем мне, поэтому вместо общих фраз (если нет чего-нибудь подобного ТЗ), хотя бы несколько конкретных примеров. Если Вам это действительно нужно, то Вы уже знаете подробности

 
stringo:

Так я же и спросил до этого про предлагаемые скрипты, сценарии.

Я повторяю, что я не вижу универсального решения. Не вижу не потому, что его нет, а потому что, возможно, мне не хватает воображения.

Вам это нужнее, чем мне, поэтому вместо общих фраз (если нет чего-нибудь подобного ТЗ), хотя бы несколько конкретных примеров. Если Вам это действительно нужно, то Вы уже знаете подробности

Ок, я понял,

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

ЗЫ если же вы о том как это реализовать в программном коде, то наверно открыть код тестера, весь код запихнуть в функцию и вызывать её один раз если сцеарий отключен или в цикле если сценарий включён. Перекомпилировать екзешник тестера и всё готово. Самое сложно будет разработать функционал для сценария. Точнее (не зная исходного кода) извините сказать не могу.


 
Urain:

Ок, я понял,

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

ЗЫ если же вы о том как это реализовать в программном коде, то наверно открыть код тестера, весь код запихнуть в функцию и вызывать её один раз если сцеарий отключен или в цикле если сценарий включён. Перекомпилировать екзешник тестера и всё готово. Самое сложно будет разработать функционал для сценария. Точнее (не зная исходного кода) извините сказать не могу.

Николай, давай действительно подумаем с недельку, разработаем что-то вроде ТЗ.  Прямо в этой ветки можно всё обсуждать.

 
MetaDriver:

Николай, давай действительно подумаем с недельку, разработаем что-то вроде ТЗ.  Прямо в этой ветки можно всё обсуждать.

Тогда уж пускай каждый желающий высказывается, у кого какие рутинные операции в тестере.

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

 
Urain:

Тогда уж пускай каждый желающий высказывается, у кого какие рутинные операции в тестере.

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

Конечно. Поэтому я предложил обсуждать прямо в ветке.
 
Urain:

Тогда уж пускай каждый желающий высказывается, у кого какие рутинные операции в тестере.

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

Например, я не отказался бы от следующего простого сценария:

Шаг 1: периодический запуск оптимизации (раз в сутки, неделю, месяц и т.д - зависит от стратегии) .

Шаг 2: дополнительный анализ результатов оптимизации. Включить возможность запуска скрипта *.ex5 который бы обрабатывал дополнительно результаты , или как-то еще реализовать это. Возможно этот шаг лишний, достаточно пока OnTester().

Шаг 3. рестарт советника на демо/реале с новыми окончательными результатами оптимизации.

Может для этого сценария не нужен язык сценария, достаточно для OnTester() ввести функции для первого и третьего шага. Хм, мечта... 

Причина обращения: