Кластер из терминалов MT4

 

Для тестирования эксперта с большим числом вариантов перебора есть мысль организовать кластер из множества терминалов MT4 для распределённых вычислений. Это увеличит производительность расчёта.

Вопрос «на засыпку» разработчикам – такое сейчас возможно?

Если нет, тогда другой наводящий вопрос. Возможен ли запуск терминала MT4 как процесса с параметрами командной строки (как вариант имени .ini файла, адреса web сервиса и т.д.) так, чтобы терминал при этом: автоматически запустил тестирование нужного эксперта с заданным множеством параметров (валюта, timeframe, даты, модель расчёта, extern значения параметров) и после отработки расчёта сохранил результаты в заданный файл.

Заранее спасибо разработчикам за положительный ответ.

 
chv:

Если нет, тогда другой наводящий вопрос. Возможен ли запуск терминала MT4 как процесса с параметрами командной строки (как вариант имени .ini файла, адреса web сервиса и т.д.) так, чтобы терминал при этом: автоматически запустил тестирование нужного эксперта с заданным множеством параметров (валюта, timeframe, даты, модель расчёта, extern значения параметров) и после отработки расчёта сохранил результаты в заданный файл.


Да, такое возможно. Загляните во встроенный хелп терминала по F1 и посмотрите в раздел:

 
Да.... точно, "help читают только ламеры"... :)
Спасибо, Ренат.

Теперь надо думать, как создавать свой кластер.
 
chv писал (а):
Да.... точно, "help читают только ламеры"... :)
"Если больше ничего не помогает - прочитайте инструкцию"

                                                                    Дж. Мерфи
 
Renat, прошу Вас или других разработчиков уточнить вопрос по абсолютным/относительным путям при запуске терминала как внешнего процесса.
Мне не удаётся запустить его с автоматическим стартом прогона тестера на заданный эксперт с заданными параметрами. Терминал стартует, но тестер не запускается, отсюда вывод - где-то не может найтись либо .ini файл, либо .set файл, указанный внутри него. Я пробовал кидал их в разные каталоги, по-разному задавал путь - результат тот же, только старт терминала, но не тестера. Терминал b200 от 17.11.2006.

Выглядит это так:


Если интересно, код запуска такой (MS C# .NET 2.0):
        private void btnStart_Click(object sender, EventArgs e)
        {
            //MessageBox.Show("start");
            try
            {
                string filename, arguments;
 
                filename = cbTerminalFile.Text;
                arguments = cbTesterIni.Text;
 
                //Process.Start(@"D:Program FilesFIBO Group	erminal.exe", @"D:Program FilesFIBO Group	esterchv_test_run.ini"); //(filename, arguments);
                Process.Start(filename, arguments);
                MessageBox.Show(
                    string.Format("Процесс терминала стартовал как:nn{0}", filename), "Старт", 
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                ErrorLog.ShowError(ex, this);
            }
        }
 
        private void btnSetTerminal_Click(object sender, EventArgs e)
        {
            // folderBrowserDialog1 openFileDialog1.ShowDialog();
            DialogResult ret = openFileDialog1.ShowDialog();
            if (ret == DialogResult.OK)
            {
                string path = openFileDialog1.FileName;
                DirectoryInfo df = Directory.GetParent(path);
                string filename, arguments;
 
                filename = path; // df.FullName; //path + @"	erminal.exe";
                arguments = df.FullName + @"testerchv_test_run.ini";
 
                cbTerminalFile.Text = filename;
                cbTesterIni.Text = arguments;
 
                btnStart.Focus();
            }
        }
 
Есть, всё пошло. Файл chv_test_run.ini с настройками бросил в корень терминала и передал его коротким путём. Заработало.

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

Другое.
Я заметил такую вещь. Запускаешь советника в тестере, например, на EURUSD на H1 периоде. Если в текущем терминале не открыто графиков этой пары (EURUSD), с которой идёт тестирование, то прогон тестера идёт жутко медленно, месяц невозможно дождаться. Но стоит только перед запуском тестера открыть графики нужной пары, причём, как я пробовал, желательно нескольких таймфреймов, которые используются в советнике, как прогон тестера идёт кардинально быстрее.
Странная особенность, не критичная, поскольку известен путь обхода тормозов тестера этим способом, но всё же... неприятная мелочь.
 
Не знаю, забросили или уже реализовали ли вы свою идею о кластере. Если нет, то тут код, как можно организовать работу кластера, используя remoting, не ограничиваясь одной рабочей станцией: http://www.cs.odu.edu/~fmccown/research/remoting_taskbag// . В зависимости от цели и используя другие технологии можно наверняка сделать что-то получше. Но рабочий код мне всегда нравился....

Предверяя вопрос неискушенных "На кой надо?" - для паралельной оптимизации вне метатрейдера, используя свои алгоритмы оптимизации.