Библиотеки: MultiTester - страница 19

 
Edgar Akhmadeev:

Собственно, я не про конкретную программу MultiTester, а про её кликерную основу, которую я забрал. У меня кликер устанавливает многие поля перед оптимизацией, и что-то там изменилось.

Все можно делать без кнопкодавов-методов MTTester.mqh. Буфер обмена дает полный контроль.

 
fxsaber:

Все можно делать без кнопкодавов-методов MTTester.mqh. Буфер обмена дает полный контроль.

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

 
Edgar Akhmadeev:

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

MTTESTER::GetSettings
MTTESTER::SetSettings2
 
fxsaber:

Хорошая демонстрация, почему полезно делать несколько ГА подряд.

Здесь пять ГА.

Как сделать несколько ГА подряд? У меня всегда один пик. И картинка такая:

Опт 

 
HimOrik:

Как сделать несколько ГА подряд?

Запустить несколько раз. Либо курить MTTester.mqh, тогда все легко автоматизируется.

 
fxsaber:

Запустить несколько раз. Либо курить MTTester.mqh, тогда все легко автоматизируется.

Спасибо, пытаюсь.  " Запустить несколько раз. " - нужно сильно разные наборы входных параметров задавать, чтобы разные экстремумы находить? Пока несколько проходов ГА дают схожий результат.

Это вот о чем:

fxsaber  2020.03.10 09:09       RU

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

"

Куда копать, чтобы разные наборы получать?

fxsaber
fxsaber
  • www.mql5.com
Добавил тему MT5 и скорость в боевом исполнении MT5 - шустрая платформа. Но есть узкие горлышки, которые сводят на нет все старания быстрой торговли. Хотелось бы собрать проблемы здесь, обсудить и решить их где-то своими силами, где-то с помощью Разработчиков Добавил тему Лимитники/тейки по текущей цене в Терминале (не в Тестере) Сабж...
 
HimOrik:

Спасибо, пытаюсь.  " Запустить несколько раз. " - нужно сильно разные наборы входных параметров задавать, чтобы разные экстремумы находить? Пока несколько проходов ГА дают схожий результат.

Это вот о чем:

fxsaber  2020.03.10 09:09       RU

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

"

Куда копать, чтобы разные наборы получать?

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

 
HimOrik:

Как сделать несколько ГА подряд? У меня всегда один пик. И картинка такая:

 

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

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


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


Интересно другая особенность MT5. Если нужно удалить EURUSD из Обзора рынка, а советник запускается на чарте EURUSD. Это решается через запуск ChartSetSymbolPeriod к себе же, но при этом (важно!) делать удачным возврат OnInit.


Такой способ можно использовать и в Маркете. Например, Маркет-советник работает только на AUDJPY. Тогда пользователю можно разрешить запускать советник на чарте любого символа/ТФ. Советник сам изменит этот чарт на нужный.

 
// Защита Терминала от закрытия. Запустить один раз этот советник на боевом Терминале.

#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/ru/code/26132

int OnInit()
{
  const bool Res = MQLInfoInteger(MQL_TESTER);
  
  if (!Res)
  {
    string Settings;
    
    while (!IsStopped() && !MTTESTER::GetSettings(Settings))
      ;
  
    if (MTTESTER::IsReady())
    {
      Settings = "[Tester]\nExpert=" + StringSubstr(MQLInfoString(MQL_PROGRAM_PATH),
                                                    StringLen(TerminalInfoString(TERMINAL_DATA_PATH)) + StringLen("\\MQL5\\Experts\\")) + 
                 "\nOptimization=0\nModel=3";
  
      while (!IsStopped())
        if (MTTESTER::SetSettings2(Settings))
        {
          MTTESTER::ClickStart(false);
          
          break;
        }
    }
    
  }
      
  return(!Res);
}

double OnTester()
{
  while (!IsStopped())
    ;
    
  return(0);
}

Проверялся на b2571.

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