Ошибки, баги, вопросы - страница 2291

 

Проходы, что возвращают INIT_PARAMETERS_INCORRECT при Оптимизации имеют в логе такие записи

Core 3  pass 90 tested with error "incorrect input parameters" in 0:00:00.000
Core 3  pass 91 tested with error "incorrect input parameters" in 0:00:00.125
Core 3  pass 92 tested with error "incorrect input parameters" in 0:00:00.141


При этом они зачем-то попадают в результаты Оптимизации


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


Раньше обломы OnInit и ExpertRemove в результатах Оптимизации можно было не показывать. А если и показывались, то их строки в таблице помечались красным цветом. Возможно ли вернуть это поведение?


При XML-экспорте передается информации, что некоторые строки таблицы являются Incorrect-результатами? Если правильно понимаю, то в еще не открытом opt-формате этот флаг корректности хранится.

Хорошо бы его все таки уметь получать в OnTesterPass

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2018.09.13 06:16

В конце Оптимизации Тестер выдает такое
Tester  optimization finished, total passes 691200 (successful 673286 passes)

successfull - проходы, дошедшие до конца. Остальные - прерванные по ExpertRemove.


По какому флагу Тестер классифицирует полученные от Агентов проходы? Как в OnTesterPass прочесть этот флаг?


ЗЫ И на графике Оптимизации хорошо бы не показывать Incorreсt-проходы


 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2018.09.13 06:16

В конце Оптимизации Тестер выдает такое
Tester  optimization finished, total passes 691200 (successful 673286 passes)

successfull - проходы, дошедшие до конца. Остальные - прерванные по ExpertRemove.


Не понимаю, почему Тестер ни слова не говорит про successful- проходы

Tester  optimization finished, total passes 1800

Прерванные по ExpertRemove-проходы есть, но реакция по итогу совсем не такая, как видно в цитате выше.

 
Slava:
Чтобы поместить объект над всеми остальными вне зависимости от порядка прописки, необходимо сначала сделать его невидимым на всех таймфреймах, а потом обратно вернуть видимость
Я уже написал об этом на прошлой странице. Вопрос был в другом: как потом определить это программно?
 
Alexey Navoykov:
Я уже написал об этом на прошлой странице. Вопрос был в другом: как потом определить это программно?
Никак
 
Ошибка при компиляции
typedef void (*fn1)();
void f1() {}
void g()
{
        fn1 f = f1; //(1) нормально
}
/*...*/
typedef void (*fn2)();
void f2() {}
void OnStart()
{
        fn2 f = f2; //(2) Error: 'f2' - type mismatch
}

А какая разница?!?

 
Slava:
Никак
// В комментарии к чарту выводит текущую Z-глубину всех графических объектов чарта

#define private public
  #include <fxsaber\Expert.mqh> // https://www.mql5.com/ru/code/19003
#undef private

#define STRING_END "\r\n"
#define OBJECT_NAME "name="
#define OBJECT_BEGIN ("<object>" + STRING_END)

int GetZObjects( string &Names[], const long Chart_ID = 0 )
{
  const int Size = ArrayResize(Names, ObjectsTotal(Chart_ID));
  string Template = EXPERT::TemplateToString(Chart_ID);  
  
  for (int i = 0; i < Size; i++)
  {
    Template = EXPERT::StringBetween(Template, OBJECT_BEGIN);
    
    Names[i] = EXPERT::StringBetween(Template, OBJECT_NAME, STRING_END);
  }
  
  return(Size);
}

void OnChartEvent( const int id, const long&, const double&, const string& )
{
  if ((id == CHARTEVENT_OBJECT_CHANGE) ||
      (id == CHARTEVENT_OBJECT_CLICK) ||
      (id == CHARTEVENT_OBJECT_CREATE) ||
      (id == CHARTEVENT_OBJECT_DELETE) ||
      (id == CHARTEVENT_OBJECT_DRAG) ||
      (id == CHARTEVENT_OBJECT_ENDEDIT))
  {
    string ZObjects[];
    
    string Str = NULL;
    
    for (int i = GetZObjects(ZObjects) - 1; i >= 0; i--)
      Str += (string)i + " Z: " + ZObjects[i] + "\n";
      
    Comment(Str);
  }
}
 
Tetyana Shcherba:

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

""80% прироста сделано за 16 дней. Это 4% от общего срока жизни сигнала 376 дней.""


Как это может быть? или я что-то не так понимаю?

Vladislav Andruschenko:
Я тоже вчера это заметил. Наверное формулу правят. 

Я не первый заметил оказывается.

https://www.mql5.com/ru/forum/268577/page6#comment_8736344

Новый дизайн на странице сигнала
Новый дизайн на странице сигнала
  • 2018.09.19
  • www.mql5.com
Что первое бросилось в глаза. Попробовал найти текущие средства, так этого и нашел...
 

fxsaber

Попробовал ваш код. К сожалению, это не подходит. Расположение элементов в данном списке не меняется при изменении Z-порядка.  Т.е. фактически, как я понимаю, это равносильно ObjectName(…)

Более того, как я выяснил, Z-порядок сбрасывается при перезагрузке терминала.  Т.е. он нигде не хранится на диске, а просто временное явление.   Считаю, это не очень правильно.  Нужно либо ввести дополнительное свойство для объектов, хранящее их порядок, либо сделать так чтобы изменение OBJPROP_TIMEFRAMES не влияло на порядок отображения элемента, тогда его можно было бы однозначно идентифицировать по OBJPROP_CREATETIME.  А сейчас получается неопределённость.

Либо как вариант, можно было бы привязать Z-порядок к индексу объекта в общем списке объектов.  Соответственно при смене OBJPROP_TIMEFRAMES объект бы перемещался в списке.

 
Alexey Navoykov:

Более того, как я выяснил, Z-порядок сбрасывается при перезагрузке терминала.  Т.е. он нигде не хранится на диске, а просто временное явление.

Это общий подход... порядок расположения графиков в профиле также не сохраняется - зато есть и положительный момент: сэкономлено несколько байт\наносекунд

Некоторые пользователи считают такой подход вполне логичным ...

 
Alexey Navoykov:

fxsaber

Попробовал ваш код. К сожалению, это не подходит. Расположение элементов в данном списке не меняется при изменении Z-порядка.  Т.е. фактически, как я понимаю, это равносильно ObjectName(…)

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