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

 
Ilyas :

Thank you for message.
Indeed, it is overlooked in the specialization of templates.
Corrected.

Thank you

 

Ошибка в макросах:

#define M(a) a

#define ARR(size)  struct M(TArray)__LINE__ { char data[size]; }

ARR(10) arr1;  // '__LINE__' - '{' beginning bracket expected
ARR(20) arr2;  

Данный код должен раскрываться в такой:

struct TArray5 { char data[10]; } arr1;
struct TArray6 { char data[20]; } arr2;

В C++ всё работает корректно.

 
Alexey Navoykov:

Ошибка в макросах:

Данный код должен раскрываться в такой:

В C++ всё работает корректно.

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

А если новое имя будет так же макросом, то он дальше начнет раскрываться?

 
fxsaber:

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

А если новое имя будет так же макросом, то он дальше начнет раскрываться?

Конечно.

#define M(a) a

#define HELLOWORLD 10

#define __M(a) M(a)M(WORLD)

int x= __M(HELLO);  // x=10;
 
Alexey Navoykov:

Ошибка в макросах:

Данный код должен раскрываться в такой:

В C++ всё работает корректно.

Ну вообще это спорно, скорее всего, это какая-то MSVC специфичная штука. Но вот так точно должно работать:

#define M(a) 
#define ARR_HELPER2(F, S, size)  F##S { char data[size]; }
#define ARR_HELPER(F, S, size)  ARR_HELPER2(F, S, size)
#define ARR(size)  ARR_HELPER(M(struct TArray), __LINE__, size)

но не работает.

 
fxsaber:
Предлагаю добавить


Нужно смотреть, чему равны показатели ТС на каждом месяце, например. Сейчас для этого есть два варианта

  1. Написать кастомный TesterStatistics.
  2. Запускать ТС на каждом месяце по отдельности и забирать нужные показатели вручную. Очень муторно выходит.
Предложение видится разумным?

Скорее, действительно, класс в стандартной библиотеке. Это даст большую гибкость.

 
fxsaber:

В тестере, когда настраиваешь дату начала/конец, можно пользоваться клавишами вверх/вниз.

Например, выбран 5-й месяц, а нужен 7-й - два раза нажал клавишу вверх и готово. Очень удобно!

Но есть проблема при переходе с 12-го или 1-го месяца.


Например, стоит дата 2018.12.01, нужно перейти на месяц вперед. Жмем вверх и, вместо перехода на 2019.01.01, попадаем на 2018.01.01.

Возможно ли сделать механизм корректным?

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

Масса ситуаций, когда существующая реализация удобнее.

 
fxsaber:

Приходится каждый раз по 10 секунд ждать, пока Тестер закончит выводить лог одиночного прохода.

Нужно увидеть, что советник напечатал в OnDeinit. И для этого тупо ждешь 10 секунд, когда сам проход занимает 1 секунду!

Большая просьба, сделайте что-нибудь с выводом логов в Тестере, чтобы не было этих тормозов.


Сейчас, чтобы быстро посмотреть распечатку из OnDeinit, нужно лезть в лог Агента - там будет запись сразу, как закончится одиночный прогон.

Либо же вместо Print использовать FileWrite, что не менее костыльно. Но это гораздо лучше, чем ожидать тормозной вывод лога в Тестере.

+++

Вообще скрыть 90% торговых операций.

 
Andrey Khatimlianskii:

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

Масса ситуаций, когда существующая реализация удобнее.

Курсор вправо-влево должен переносить на следующий/предыдущий год/месяц/день. Тогда будут учтены пожелания всех.
 
Artyom Trishkin:
Курсор вправо-влево должен переносить на следующий/предыдущий год/месяц/день. Тогда будут учтены пожелания всех.

Тогда как переходить по настройкам день/месяц/год? Нет, сейчас самый удачный вариант реализации.