Обсуждение статьи "Применение OLAP в трейдинге (Часть 4): Количественный и визуальный анализ отчетов тестера" - страница 2

 

Вот он.

Файлы:
 
Szabo Bence #:

Вот он.

MQL5 может меняться со временем, от сборки к сборке. Иногда такие изменения нарушают совместимость с существующими исходниками.

Две первые ошибки в вашем списке ошибок происходят из устаревшей сборки MT5 (вам следует обновиться до более свежей версии).

Что касается ошибок в библиотеке TypeToBytes, я должен отметить, что это не моя библиотека. Это материал от 3-го лица, и, как и в случае с любыми зависимостями от 3-го лица, вы должны проверять обновления для них у соответствующих авторов.

В настоящее время я прикрепляю последнюю версию TypeToBytes.

Файлы:
TypeToBytes.mqh  21 kb
 
Stanislav Korotky #:

MQL5 может меняться со временем, от сборки к сборке. Иногда такие изменения нарушают совместимость с существующими исходными текстами.

Две первые ошибки в вашем списке ошибок происходят из устаревшей сборки MT5 (вам следует обновить ее до более свежей версии).

Что касается ошибок в библиотеке TypeToBytes, я должен отметить, что это не моя библиотека. Это материал от 3-го лица, и, как и в случае с любыми зависимостями от 3-го лица, вы должны проверять обновления для них у соответствующих авторов.

В настоящее время я прикрепляю последнюю версию TypeToBytes.

Спасибо за обновленную библиотеку. Она работает.

Хотя две первые ошибки все еще появляются. У меня сборка 2981 (последняя).

 
Szabo Bence #:

Спасибо за обновленную библиотеку. Она работает.

Хотя две первые ошибки все еще появляются. У меня сборка 2981 (последняя).

Да, в ней есть ошибка. Вы можете установить последнюю бета-версию (скажем, 3042, 3061) или добавить кастинг в (Selector<E> *) и (Filter<E> *) в 2 соответствующих строках. Судя по формулировке ошибки, компилятор ошибочно игнорирует const modifer. Судя по всему, исходный код корректен. Предложенное изменение является лишь временным обходным решением.

 
Stanislav Korotky #:

Да, в нем есть ошибка. Вы можете установить последнюю бета-версию (скажем, 3042, 3061) или добавить кастинг в (Selector<E> *) и (Filter<E> *) в 2 соответствующих строках. Судя по формулировке ошибки, компилятор ошибочно игнорирует const modifer. Судя по всему, исходный код корректен. Предложенное изменение является лишь временным обходным решением.

Хорошо, я понял. С предложенным вами изменением кода все работает.

Спасибо.

 

Публикую актуализированный исходник файла OLAPCommon.mqh, который перестал компилироваться из-за изменений в компиляторе. Также нужен TypeName.mqh - поведение typename тоже поменялось.

PS. Библиотеку от fxsaber TesterCache.mqh также нужно обновить.

Файлы:
OLAPCommon.mqh  47 kb
TypeName.mqh  2 kb
 

Станислав, подскажите пож-ста в чём может быть дело. Все файлы обновил. Но компилятор всё одно ругается.



Может так правильно? Пропадает тогда ошибка:

TypeSelector(): TradeSelector(FIELD_TYPE)
  {
// _typename = typename(this);  // fail
   _typename(typename(this));   // OK
  }


 
Denis Kirichenko #:

Станислав, подскажите пож-ста в чём может быть дело. Все файлы обновил. Но компилятор всё одно ругается.

Может так правильно? Пропадает тогда ошибка:

Кое-что менялось в MQL5, так что нужно попатчить OLAPTrades.mqh по аналогии с OLAPCommon.mqh (что уже было сделано ранее).

      _typename_ = TYPENAME(this);

Прикладываю исправленный файл.

Файлы:
OLAPTrades.mqh  15 kb
 
Спасибо большое! Заработало ))