Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5 - страница 84

 
Если код с ошибкой компиляции, то невозможно к нему перейти из Терминала через пункт меню Изменить. Нажимаешь Изменить и ничего не происходит.
 

Линия тренда создана, но не проведена. Build 1963.

2018.12.17 18:36:48.133    LineCreatedNotDrawn (EURUSD,W1)    Object BUGtestline created.


Файлы:
 

У меня была небольшая надежда, что новые версии MT5 будут работать правильно, если OnInit () не вернет return (INIT_SUCCEEDED);

Но все же (b1961) Оптимизатор, кажется, считает такие несоответствующие установки допустимым проходом, и что - для сложных советников - обесценивает результаты генетического алгоритма, так как число проходов ограничено. :(

В связи с тем, что, например, OnTesterInit () и / или OnTesterPass () ничего не возвращает (void), они не могут быть использованы в этом случае.

I had the slight hope that the new versions of MT5 would act correctly if OnInit() does not return return(INIT_SUCCEEDED);

But still (b1961) the Optimizer seem to count such irrelevant setups as a valid pass and that - for complex EAs - devalues the results of the genetic Algorithm as number of passes is limited. :(

Due to the fact that e.g. OnTesterInit() and/or OnTesterPass() return nothing (void) they cant be used in this case.

 
Slava:

Отправил в личном сообщении файлы для тестов по этой проблеме:

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

Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5

Anatoli Kazharski, 2018.12.08 19:57

...

Результаты оптимизации не соответствуют результатам тестов.

Например, даты установлены такие:

//---

Результаты оптимизации:

//---

Результат теста:

 

Баг компилятора в шаблонных типах:

template<typename T>
class A {  };

class B {  };

template<typename T>
void f(A<T*>&) {  }  //'*' - pointer to pointer is illegal

void OnInit()
{ 
  A<B*> a;
  f(a);
}
 
Alexey Navoykov:

Баг компилятора в шаблонных типах:

Подсказать можно

f<B>(a);
 
Очень нужно генерировать opt-файлы. Просьба раскрыть формат.
 
fxsaber:

Подсказать можно

Исходно у нас везде передаётся именно объект шаблонного класса A<…>   Поэтому задача - получить доступ к его параметрическому типу, а точнее к классу этого типа.  Я вот здесь отдельную ветку создал по этому багу:  https://www.mql5.com/ru/forum/295310
 

In the StrategyTester the variable names are replaced by their comments!

Ok, that what the user sees launching the EA is displayed in the setup tab of the optimizer:

input ENUM_MA_METHOD       MA_Meth      = MODE_SMMA;  // Method of averaging MA

We see: "Method of averaging MA" - fine!

There we can choose [ MODE_SMA, MODE_EMA, ... ] the enum-names - even this is ok!

And in the setup tab of the optimizer we see as well:

Method of averaging MA    [ MODE_SMA ]

But now it's getting awkward!
Strategy report uses the original variable names (instead of the //-comment) and the enum-index (instead of the names):

MA_Meth=0

Who knows what is the actual index of an enum?

In the strategy report there is so much space(!!) that you really can use
- the variable name AND
- the //-description AND
- the enum-names like MODE_SMMA maybe together with the enum-names.

 
В отличие от MT4, в MT5-логах не видно входных параметров, с которыми запускались советники в Терминале.