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

 
fxsaber:

Провожу бэктест по реальным тикам, при этом нигде в советнике не обращаюсь к барам.

Теоретически имеет ли влияние на скорость прогона выбор в Тестере периода бара: M1 или D1?

По моим наблюдениям М1 будет побыстрей. Но это на глазок, замеров не делал.
 

Два разных советника с одним и тем же именем (в разных папках).

В Тестере при переключении между ними не сохраняются входные параметры.


Например, выставил параметры, переключился на другой советник и обратно. Параметры стали другие.

 

По косвенным признакам видно, что над тестером постоянно идет какая-то работа. С чем связано увеличение пачек заданий?

Делаю полный перебор на 48000 проходов. Раньше пачки формировались по 128 заданий, сейчас - 1024.


Еще имеет ли смысл, с точки зрения производительности, Tester-папку переносить на RAM-drive?

 
fxsaber:

Еще имеет ли смысл, с точки зрения производительности, Tester-папку переносить на RAM-drive?

У меня скорость сильно повышалась, но, к сожалению, при тестировании по тикам в 2Гб умещается только 1 агент на 1 год истории. В общем, я отказался.

А при тестировании на OHLC, наверное мало что получишь в выигрыше.

PS. SSD поставил, ноутбук взлетел.

 

Недоработка компилятора.  В таком коде не выдаётся ошибка компиляции:

class A
 {
   public: virtual int f() = 0;
 };

class B : public A
{
  public: virtual int f() { return A::f(); }
};

В итоге во время выполнения происходит переполнение стека, хотя рекурсии тут быть не должно.

VS в данном коде выдаёт ошибку компиляции:   Error 1 error LNK2001: unresolved external symbol "public: virtual int __thiscall A::f(void)"

 

Ошибка в функции StructToCharArray.  Не учитывается третий параметр start_pos.  Данные всегда копируются в начало массива:

void OnStart()
  {
    char arr[10];
    ArrayInitialize(arr, 1);
    char a= 2;
    StructToCharArray(a, arr, 5);
    ArrayPrint(arr);
  }

Результат:
2 1 1 1 1 1 1 1 1 1
 

He always worked until the 1978 assembly. Last time I built the 1970 build. Now it does not work. MT4 1170 also works. This is something about a macro used to generate method names. It seems that special characters are no longer supported.

With the old build too

 
Juan Fernandez:

Он всегда работал до сборки 1978 года. В прошлый раз я построил сборку 1970 года. Теперь это не работает. MT4 1170 тоже работает. Это что-то о макросе, используемом для генерации имен методов. Кажется, что специальные символы больше не поддерживаются.

Я опубликовал один со старой сборкой тоже

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

Please insert the code to reproduce the error, rather than images that are hard to read.

 
Artyom trishkin :

Please insert the code to reproduce the error rather than the images that are hard to read.

Please insert the code to reproduce the error rather than the images that are hard to read.

Файлы:
TEST.mq5  3 kb
 
Alexey Navoykov:

Недоработка компилятора.  В таком коде он не выдаёт ошибку компиляции:

В итоге во время выполнения происходит переполнение стека, хотя рекурсии тут быть не должно.

VS в данном коде выдаёт ошибку компиляции:   Error 1 error LNK2001: unresolved external symbol "public: virtual int __thiscall A::f(void)"

return B::f, тогда рекурсии не будет.