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

 
Artyom Trishkin:

Судя по поведению, которое вы описали - это иной советник с совсем другим алгоритмом работы.

Все мы разобрались, может быть это баг терминала а может быть так задумано разработкчиками, но дело в том что когда прогоняешь на истории какой либо сет, в конце теста у нас появляется график, но на него автоматом так же накладывается вся исторя за данный период прогона из реальной истории.

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

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

Что бы они не накладывались я сделал следующее

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

Попросил людей из группы прогнать своих роботов за период когда у них что то торговалось на данном инструменте, руками роботами без разницы, все они подтвердили данный факт, что помимо сделок тестера, на график накладываются реальные трейды которые были проторгованы в прошлом.


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

Думаю стоит сообщить разработчикам, в принципе данный баг мне нравиться, теперь можно поторговав роботом неделю, прогнать его в тестере за тот же период и сравнить на графике разницу в трейдах, в идеале она должна отличаться на пару тиков

 
Konstantin Seredkin:

помимо сделок тестера, на график накладываются реальные трейды которые были проторгованы в прошлом.

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

 

В отладчике значение GetLastError(); нельзя получить?

только через переменную или предопределенную _LastError ?

Файлы:
 
awsomdino:

В отладчике значение GetLastError(); нельзя получить?

только через переменную или предопределенную _LastError ?

Да. Этим удобны _Value.

 
fxsaber:

Да. Этим удобны _Value.

может разработчики добавят возможность смотреть в отладчике из функции GetLastError();

иначе эти удобные и простые 2 строки бесполезны

   if(GetLastError()>0)
      DebugBreak();
 
awsomdino:

может разработчики добавят возможность смотреть в отладчике из функции GetLastError();

иначе эти удобные и простые 2 строки бесполезны

Не пользуйтесь просто этой функцией.

 

С целью минимизации количества записей из прошлого "обзора" исправлений ранее исправленные дефекты не переносились:

Дефекты в работе шаблонной функции/класса:
(не исправлено MT5(build 2474)) ***          Compile Error, баг при попытке доступа к internal class для шаблонного параметра шаблонной функции.
(не исправлено MT5(build 2474)) **           Compile Error, баг касается возвращаемого значения шаблонной функции, когда возвращаемое значение - internal class, расположенный внутри шаблонного класса, тип параметра которого задается типом аргумента шаблонной функции.
(не исправлено MT5(build 2474)) **           Compile Error, баг связанный с пространством имен и области видимости в шаблонном конструкторе при вызове базового класса, когда используется одно и то же имя класса при наследовании и в internal class.
(не исправлено MT5(build 2474)) *            Compile Error, баг при вызове шаблонной функции с явным указанием типов аргументов, когда вызов выполняется из перегруженной нешаблонной функции.
(не исправлено MT5(build 2474))              Compile Error, баг при определении internal class - отсутствует возможность явно сослаться на глобальное пространство имен при указании базового класса.

(не исправлено MT5(build 2474)) *            Compile Error, при вызове оператора присвоения через явное указание базового класса. Проблема проявляется для шаблонного класса, у которого шаблонный параметр выступает базовым классом.
(исправлено MT5(build 2474))                       Compile Error, при использовании модификатора доступа по умолчанию при наследовании в шаблонном классе, когда шаблонный параметр выступает базовым классом.

(исправлено MT5(build 2474)) *         (new)   Compile Error, ошибка компиляции при наследовании от шаблонного класса из namespace.
(исправлено  MT5(build 2474)) **        (new)   Compile Error, отсутствует доступ к дефолтному operator= из объекта указателя.
(не исправлено MT5(build 2474)) ***  (new)   
Compile Error, ошибка компиляции для форвард декларации шаблонного метода класса .
(не исправлено MT5(build 2474)) **   (new)   Compile Error,  когда класс содержит указатель на класс-обертку, который использует данный класс как поле.


Дефекты связанные с несоответствием приоритетов вызовов перегруженных функций в MQL в сравнении с С++:
(не исправлено MT5(build 2474)) **           Compile Error, когда первая из перегруженных шаблонных функций использует полностью специализированный шаблонный базовый класс, а вторая - неспециализированный шаблонный базовый класс.
(не исправлено MT5(build 2474)) **           Compile Error, при генерации кода шаблонной функции возникает ошибка компиляции несмотря на то, что имеется перегруженная шаблонная функция с подходящей сигнатурой для передаваемых параметров.
(не исправлено MT5(build 2474)) *            Compile Error, "ambiguous call to overloaded function" при вызове перегруженных шаблонных функций с разным количеством шаблонных параметров.

( не исправлено  MT5(build 2474)) ***     Compile Error, ошибка в приоритетах вызова перегруженных шаблонных функций..
( не исправлено  MT5(build 2474)) **      Compile Error, при  вызове функции  для аргумента с типом данных color применяется implicit type conversation не смотря на то, что имеется подходящая по сигнатуре перегруженная шаблонная функция с типом данных color.
( не исправлено  MT5(build 2474)) *       Compile Error, не смотря на явную специализацию при вызове перегруженной шаблонной функции все равно происходит вызов шаблонной функции по умолчанию, что приводит к переполнению стека..
( не исправлено  MT5(build 2474)) *       Compile Error,  ошибка компиляции  при вызове функции через ее указатель, когда используется массив указателей на функцию.
( исправлено  MT5(build 2474)) *  (new) Compile Error, проблемы с приоритетом вызовом перегруженных в namespace функций.

Дефекты связанные с MetaEditor:
(не исправлено ME5(build 2474)) ***    Debuger, срабатывание точки останова в статическом методе структуры вызывает зависание МТ терминала.
(не исправлено ME5(build 2474)) **     Compilation, описание ошибки компиляции не влазит в лимит 256 символов и обрезается, в результате невозможно понять для какого типа данных возникает ошибка, так как необходимая часть была обрезана.
(исправлено ME5(build 2474)) **         Debuger, не работает StepInto (F11) и установленные breakpoints.
(исправлено ME5(build 2474)) *          Debuger, после срабатывания breakpoint вместо продолжения выполнения кода при нажатии (F5), в действительности повторно срабатывает тот же breakpoint без выполнения какого-либо кода.
(не исправлено ME5(build 2474)) *      Compilation, некорректная сигнатура шаблонного параметра функции в Error Description и Parameter info.
(не исправлено ME5(build 2474)) *      MetaEditor, не работает функциональность Replace (Сtrl + H) для включенного "In selection" вместе с "Backward direction", когда выделен необходимый участок применения, а не весь код.
(не исправлено ME5(build 2474)) * (new)  MetaEditor, срабатывание точки останова вводит пользователя в заблуждение, будто бы условие входа было выполнено, когда в действительности это может быть совсем не так.


Дефекты связанные с медленным выполнением функций, работой оптимизатора кода:
(исправлено MT5(build 2474)) **   (up)      Runtime, большой overhead при добавлении по одному элементу в массив с помощью ArrayResize, не смотря на то, что память для них была заранее зарезервирована, например для структур аж до 7-ми раз медленнее.


Предложения:
            - добавить в ME поиск/замену по текущему Project, а то при рефакторинге ходить по каждому из файлов и искать вхождение как-то не очень.
ссылка - в ME при компиляции заполнять пустые колонки File, Line, Column соответствующей информацией о файле источнике, из которого делался include.
ссылка - о внедрении поддержки intellisense для функциональности namespace на основе работы intellisense для статических методов в классах.
ссылка - о предоставлении возможности передавать литералы и временные переменные в виде const ref аргументов функции.
ссылка - при перемещении файлов проекта во вкладке "Project", для перемещаемых файлов, которые открыты и находятся во вкладках ME, автоматически обновлять их путь расположения.
ссылка - о необходимости введения в MQL typedef declaration функциональности.
ссылка - о предоставлении возможности принудительной генерации дефолтных конструкторов копирования и операторов присвоения.

 
Sergey Dzyublik :

С целью минимизации количества записей из прошлого "обзора" исправлений ранее исправленные дефекты не переносились:
...

Это в вашем списке? Если нет, не могли бы вы добавить это, пожалуйста.

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

Неправильный синтаксис MQL?

Дан Маринеску , 2020.05.27 22:47

Я определил универсальный интерфейс, и я хочу использовать его в другом классе. Я не могу понять, что не так с этим кодом:

 #property  strict

template < typename T> interface IGenericHandler {
     bool Handle(T &item);
};

#define  DOES_NOT_WORK

class GenericHandler {
     public :
#ifdef  DOES_NOT_WORK   
         template < typename T> bool Handle(T &val, IGenericHandler<T> *handler);
#else   
         template < typename T> bool Handle(T &val, IGenericHandler<T> *handler) { return false ; }
#endif        
 };

#ifdef  DOES_NOT_WORK
template < typename T> bool GenericHandler::Handle(T &val, IGenericHandler<T> *handler) { return false ; }
#endif 

Если DOES_NOT_WORK не определено, то все работает. Но когда DOES_NOT_WORK определен, компилятор говорит:

'Handle' - member function already defined with different parameters

Почему?


 
Alain Verleyen:

Это в вашем списке? Если нет, не могли бы вы добавить это, пожалуйста.

Спасибо за дополнение, да в списке есть описание данной проблемы:
(не исправлено MT5(build 2474)) ***  (new)   Compile Error, ошибка компиляции для форвард декларации шаблонного метода класса .

 
Sergey Dzyublik :

Спасибо за дополнение, да в списке есть описание данной проблемы:
( не исправлено  MT5(build 2474)) ***  (new)    Compile Error,  о шибка компиляции для форвард декларации шаблонного метода класса  .

Отлично, спасибо.
Причина обращения: