Новая версия платформы MetaTrader 5 build 2560: Улучшения во встроенной системе обучения - страница 15

 
Vladimir Pastushak:

Видео приложил, ранее писал об ошибке которую поправили, но видать по пути не поправили другую ошибку...

Видео - не код. Его в терминале не запустить. 
 

Wenn ich mir jetzt die resultierende Ergebnistabellen anschaue, die ich sichern konnte, sehe ich gerade einmal 127 Ergebniszeilen der genetischen Prüfung, nachdem ich 116 Zeilen - also fast die Hälfte - ohne Ergebnis gelöscht habe. Es sind die Parameter-Kombinationen, bei denen OnInit() die Ausführung mit INIT_PARAMETERS_INCORRECT verhinderte, die der genetische Algorithmus aber trotzdem als gültigen Durchlauf betrachtete. 127 tatsächliche Durchläufe bei 48906 möglichen Parameterkombination und laut Prozesszeile (siehe oben) 1408 geplanten Durchläufen. (https://www.mql5.com/ru/forum/347385/page14#comment_17599266)

Damit ist die integrierte genetische Optimierung ein reines Glücksspiel.

Sehr ärgerlich.

Когда я сейчас смотрю на таблицы результатов, которые мне удалось сохранить, я вижу всего 127 строк результатов генетического теста после удаления 116 строк - почти половина - без результата. Это те комбинации параметров, для которых функция OnInit() предотвращала выполнение с INIT_PARAMETERS_INCORRECT, но которые генетический алгоритм все равно считал допустимым запуском. 127 фактических запусков с 48906 возможными комбинациями параметров и, в соответствии с технологической линией (см. выше), 1408 запланированных запусков. (https://www.mql5.com/ru/forum/347385/page14#comment_17599266)

Это делает интегрированную генетическую оптимизацию чистой игрой в азарт.

Очень раздражает.

Переведено с помощью www.DeepL.com/Translator (бесплатная версия)

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • www.mql5.com
Введение Генетический алгоритм ( ГА ) относится к эвристическим алгоритмам ( ЭА ), который даёт приемлемое решение задачи в большинстве практически значимых случаев, однако при этом правильность решения математически не доказана и применяют чаще всего для задач, аналитическое решение которых весьма затруднительно или вовсе невозможно...
 
Artyom Trishkin:
Видео - не код. Его в терминале не запустить. 

Продукт коммерческий...

 
Vladimir Pastushak:

Продукт коммерческий...

Минимальный код, воспроизводящий проблему. Не нужно коммерческий продукт целиком давать.
 
Artyom Trishkin:
Минимальный код, воспроизводящий проблему. Не нужно коммерческий продукт целиком давать.

Вот код,  запусти - советник сделает кнопку - сохрани шаблон с кнопкой - загрузи шаблон.   У меня шаблон загружается без кнопки билд 2564

//************************************************************************************************/
//*                                                                                              */
//************************************************************************************************/
int OnInit()
  {
   Comment("");
   return(INIT_SUCCEEDED);
  }
//************************************************************************************************/
//*                                                                                              */
//************************************************************************************************/
void OnTick()
  {
   ButtonCreate(0, "Button", 0, 50, 50, 350, 58, CORNER_LEFT_UPPER, "Button", "Arial", 15, clrBlack, C'236,233,216');      // приоритет на нажатие мышью
   ExpertRemove();
  }
//************************************************************************************************/
//*                                                                                              */
//************************************************************************************************/
bool ButtonCreate(const long              chart_ID = 0,             // ID графика
                  const string            name = "Button",          // имя кнопки
                  const int               sub_window = 0,           // номер подокна
                  const int               x = 0,                    // координата по оси X
                  const int               y = 0,                    // координата по оси Y
                  const int               width = 50,               // ширина кнопки
                  const int               height = 18,              // высота кнопки
                  const ENUM_BASE_CORNER  corner = CORNER_LEFT_UPPER, // угол графика для привязки
                  const string            text = "Button",          // текст
                  const string            font = "Arial",           // шрифт
                  const int               font_size = 10,           // размер шрифта
                  const color             clr = clrBlack,           // цвет текста
                  const color             back_clr = C'236,233,216', // цвет фона
                  const color             border_clr = clrNONE,     // цвет границы
                  const bool              state = false,            // нажата/отжата
                  const bool              back = false,             // на заднем плане
                  const bool              selection = false,        // выделить для перемещений
                  const bool              hidden = true,            // скрыт в списке объектов
                  const long              z_order = 0)              // приоритет на нажатие мышью
  {
   ResetLastError();
   if(!ObjectCreate(chart_ID, name, OBJ_BUTTON, sub_window, 0, 0))
     {
      Print(__FUNCTION__,
            ": не удалось создать кнопку! Код ошибки = ", GetLastError());
      return(false);
     }
   ObjectSetInteger(chart_ID, name, OBJPROP_XDISTANCE, x);
   ObjectSetInteger(chart_ID, name, OBJPROP_YDISTANCE, y);
   ObjectSetInteger(chart_ID, name, OBJPROP_XSIZE, width);
   ObjectSetInteger(chart_ID, name, OBJPROP_YSIZE, height);
   ObjectSetInteger(chart_ID, name, OBJPROP_CORNER, corner);
   ObjectSetString(chart_ID, name, OBJPROP_TEXT, text);
   ObjectSetString(chart_ID, name, OBJPROP_FONT, font);
   ObjectSetInteger(chart_ID, name, OBJPROP_FONTSIZE, font_size);
   ObjectSetInteger(chart_ID, name, OBJPROP_COLOR, clr);
   ObjectSetInteger(chart_ID, name, OBJPROP_BGCOLOR, back_clr);
   ObjectSetInteger(chart_ID, name, OBJPROP_BORDER_COLOR, border_clr);
   ObjectSetInteger(chart_ID, name, OBJPROP_BACK, back);
   ObjectSetInteger(chart_ID, name, OBJPROP_STATE, state);
   ObjectSetInteger(chart_ID, name, OBJPROP_SELECTABLE, selection);
   ObjectSetInteger(chart_ID, name, OBJPROP_SELECTED, selection);
   ObjectSetInteger(chart_ID, name, OBJPROP_HIDDEN, hidden);
   ObjectSetInteger(chart_ID, name, OBJPROP_ZORDER, z_order);
   return(true);
  } 
//+------------------------------------------------------------------+

О результате отпишись если не сложно....

 
Весьма негодую, разработчики точно уйдут на выходные, в лучшем случае исправление будет понедельник вторник..
 

Определил что если обьект скрыт из списка обьектов 

ObjectSetInteger(chart_ID, name, OBJPROP_HIDDEN, true);

То в шаблон он не попадает

Если 

ObjectSetInteger(chart_ID, name, OBJPROP_HIDDEN, false);

То все отлично ...

 
Vladimir Pastushak:

Вот код,  запусти - советник сделает кнопку - сохрани шаблон с кнопкой - загрузи шаблон.   У меня шаблон загружается без кнопки билд 2564

О результате отпишись если не сложно....

Неужели так трудно прикрепить ФАЙЛ к сообщению? Мало того, что без имени, без расширения, без шапки. Так ещё и самому нужно создавать файл и копировать туда код. Ай-я-яй!

 
Vladimir Pastushak:

Вот код,  запусти - советник сделает кнопку - сохрани шаблон с кнопкой - загрузи шаблон.   У меня шаблон загружается без кнопки билд 2564

О результате отпишись если не сложно....

Сделал как описано. Да, шаблон загружается без тестовой кнопки. Причину не знаю.

 
Vladimir Karputov:

Неужели так трудно прикрепить ФАЙЛ к сообщению? Мало того, что без имени, без расширения, без шапки. Так ещё и самому нужно создавать файл и копировать туда код. Ай-я-яй!

Мы на техническом форуме, легких путей не ищем...

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