Дефекты в работе шаблонной функции/класса: (не исправлено 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 функциональности. ссылка - о предоставлении возможности принудительной генерации дефолтных конструкторов копирования и операторов присвоения.
Это в вашем списке? Если нет, не могли бы вы добавить это, пожалуйста.
Спасибо за дополнение, да в списке есть описание данной проблемы: (не исправлено MT5(build 2474)) *** (new) Compile Error, ошибка компиляции для форвард декларации шаблонного метода класса .
Спасибо за дополнение, да в списке есть описание данной проблемы: ( не исправлено MT5(build 2474)) *** (new) Compile Error, ошибка компиляции для форвард декларации шаблонного метода класса .
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
Здравствуйте! Есть индикатор для MT5 "Grid Builder", он рисует горизонтальные линии с шагом цены. Можно выбрать например 100п, 200п и тд. И строится горизонтальная сетка вверх и вниз с заданным шагом. Но у него одна проблема, например, когда я на таймфрейме H4 рисую свою графические горизонтальные уровни( ставлю горизонтальные линии из инструментов рисования в терминале) и переключаю на любой другой таймфрейм, все мои линии удаляются. А остаются только горизонтальные уровни индикатора. Как в коде исправить эту ошибку? Чтобы мои горизонтальные уровни никогда не удалялись. Вот код индикатора.
//+------------------------------------------------------------------+//| GridBuilder.mq5 |//| Copyright 2015, AM2 |//| https://www.forexsystems.biz |//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link "https://www.forexsystems.biz"
#property version "1.00"
#property indicator_chart_window
//---- для расчёта и отрисовки индикатора использовано ноль буферов
#property indicator_buffers 0//---- использовано всего ноль графических построений
#property indicator_plots 0//--- входные параметры
input int count = 50; //количество линий вверх вниз от цены
input int step = 333; //шаг линий
input double pr = 1.4622; //цена от которой пляшем//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int OnInit()
{
//--- indicator buffers mapping
ObjectsDeleteAll(0,0,OBJ_HLINE);
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+void OnDeinit(constint reason)
{
Comment("");
ObjectsDeleteAll(0,0,OBJ_HLINE);
}
//+------------------------------------------------------------------+ //| Создает горизонтальную линию | //+------------------------------------------------------------------+ bool HLine(conststring name="HLine",double price=0)
{
//--- создадим горизонтальную линию if(!ObjectCreate(0,name,OBJ_HLINE,0,0,price))
{
Print(__FUNCTION__,
": не удалось создать горизонтальную линию! Код ошибки = ",GetLastError());
return(false);
}
//--- установим цвет линии
ObjectSetInteger(0,name,OBJPROP_COLOR,clrGreen);
ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
return(true);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+int OnCalculate(constint rates_total,
constint prev_calculated,
const datetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
double price=pr;
//--- создадим горизонтальную линию for(int i=0;i<=count;i++)
{
HLine("HLine"+(string)i,price+step*i*_Point);
HLine("HLine"+(string)(i+count+1),price-step*i*_Point);
}
//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
Здравствуйте! Есть индикатор для MT5 "Grid Builder", он рисует горизонтальные линии с шагом цены. Можно выбрать например 100п, 200п и тд. И строится горизонтальная сетка вверх и вниз с заданным шагом. Но у него одна проблема, например, когда я на таймфрейме H4 рисую свою графические горизонтальные уровни( ставлю горизонтальные линии из инструментов рисования в терминале) и переключаю на любой другой таймфрейм, все мои линии удаляются. А остаются только горизонтальные уровни индикатора. Как в коде исправить эту ошибку? Чтобы мои горизонтальные уровни никогда не удалялись. Вот код индикатора.
Теперь вы можете не только читать статьи и скачивать программы на языке MQL5, но и участвовать в обсуждении интересующих вас тем на Форуме, оставлять комментарии к статьям и опубликованным кодам. Кроме того, вы можете не только выкладывать собственные разработки в Code Base, но и публиковать Статьи, за которые мы предлагаем вознаграждение...
может разработчики добавят возможность смотреть в отладчике из функции 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 функциональности.
ссылка - о предоставлении возможности принудительной генерации дефолтных конструкторов копирования и операторов присвоения.
С целью минимизации количества записей из прошлого "обзора" исправлений ранее исправленные дефекты не переносились:
...
Это в вашем списке? Если нет, не могли бы вы добавить это, пожалуйста.
Форум по трейдингу, автоматизированным торговым системам и тестированию торговых стратегий
Неправильный синтаксис MQL?
Дан Маринеску , 2020.05.27 22:47
Я определил универсальный интерфейс, и я хочу использовать его в другом классе. Я не могу понять, что не так с этим кодом:
Если DOES_NOT_WORK не определено, то все работает. Но когда DOES_NOT_WORK определен, компилятор говорит:
Почему?
Это в вашем списке? Если нет, не могли бы вы добавить это, пожалуйста.
Спасибо за дополнение, да в списке есть описание данной проблемы:
(не исправлено MT5(build 2474)) *** (new) Compile Error, ошибка компиляции для форвард декларации шаблонного метода класса .
Спасибо за дополнение, да в списке есть описание данной проблемы:
( не исправлено MT5(build 2474)) *** (new) Compile Error, о шибка компиляции для форвард декларации шаблонного метода класса .
Здравствуйте! Есть индикатор для MT5 "Grid Builder", он рисует горизонтальные линии с шагом цены. Можно выбрать например 100п, 200п и тд. И строится горизонтальная сетка вверх и вниз с заданным шагом. Но у него одна проблема, например, когда я на таймфрейме H4 рисую свою графические горизонтальные уровни( ставлю горизонтальные линии из инструментов рисования в терминале) и переключаю на любой другой таймфрейм, все мои линии удаляются. А остаются только горизонтальные уровни индикатора. Как в коде исправить эту ошибку? Чтобы мои горизонтальные уровни никогда не удалялись. Вот код индикатора.
Здравствуйте! Есть индикатор для MT5 "Grid Builder", он рисует горизонтальные линии с шагом цены. Можно выбрать например 100п, 200п и тд. И строится горизонтальная сетка вверх и вниз с заданным шагом. Но у него одна проблема, например, когда я на таймфрейме H4 рисую свою графические горизонтальные уровни( ставлю горизонтальные линии из инструментов рисования в терминале) и переключаю на любой другой таймфрейм, все мои линии удаляются. А остаются только горизонтальные уровни индикатора. Как в коде исправить эту ошибку? Чтобы мои горизонтальные уровни никогда не удалялись. Вот код индикатора.
Пожалуйста, старайтесь вставить код правильно.
Всем бобра.
При смене таймфрейма, который долго был не задействован, подвисает индикатор. Направьте меня, пожалуйста, где собака зарыта. Спасибо!