Спасибо за пояснение. Воспроизвели - нет сообщения об утечке и вот почему:
Тут перестарался оптимизатор, т.к. нет операций с памятью или указателем, которые были созданы в операторе new, то аллокация этой памяти была удалена.
Мы подумаем над тем, стоит ли исправлять эту "фичу" оптимизатора или улучшить его, чтобы сохранение указателя в неиспользуемую переменную не блокировало удаление операции new.
День добрый. Разработчики подскажите почему в MQL4 и MQL5 функция удаления подокна индикатора из эксперта есть, а функции создания окна индикатора нет. Приходится подьзоватся шаблонами, либо запускать оконный идикатор в ручную, а это не удобно т.к. теряется информация нанесенная на график. Да и хотелось бы иметь возможность запускать и отображать индикаторы из файла ресурсов. Или подскажите как это организовать.
voidOnStart()
{
double dPrice = 1.08249;
int iPrice = (int)((dPrice / _Point) + 0.1);
double dNewPrice = iPrice * _Point; // При этом нормализации это значение не требует в OrderSendif (dPrice != dNewPrice)
Print((string)(dPrice - dNewPrice));
}
Если открыть ордер по цене Integer * Point (без нормализации) и потом запросить цену открытия, то она будет отличаться от ненормализованного Integer * Point.
Почему в OrderSEnd ВСЕГДА прокатывают ненормализованные цены вида Integer * Point?
Dmitry Voronkov: День добрый. Разработчики подскажите почему в MQL4 и MQL5 функция удаления подокна индикатора из эксперта есть, а функции создания окна индикатора нет. Приходится подьзоватся шаблонами, либо запускать оконный идикатор в ручную, а это не удобно т.к. теряется информация нанесенная на график. Да и хотелось бы иметь возможность запускать и отображать индикаторы из файла ресурсов. Или подскажите как это организовать.
Я тут ещё раз прогнал тестер и увидел фокус: High перерисовывается О_о по мере формирования свечи. В какой-то момент он меняет значение на меньшее, падает в диапазон Open/Close и далее внутри этого диапазона меняет своё значение.
OHLC на М1
Нашли и исправили. Спасибо за сообщение.
Пока нет исправленного билда, этот баг можно обойти, тестируя на дневном (а не недельном) таймфрейме. При этом все недельки формируются правильно
Упрощенный пример
Результат:
2016.08.15 14:17:39.093 Script1 (GBPUSD,M15) A::A
Вывод: деструктор не вызывается и одновременно нет сообщения об утечке памяти (как в следующем примере)
Результат:
2016.08.15 14:26:27.993 Script2 (GBPUSD,M15) 16 bytes of leaked memory
2016.08.15 14:26:27.993 Script2 (GBPUSD,M15) 1 object of type A left
2016.08.15 14:26:27.993 Script2 (GBPUSD,M15) 1 undeleted objects left
2016.08.15 14:26:27.992 Script2 (GBPUSD,M15) A::A
Тут перестарался оптимизатор, т.к. нет операций с памятью или указателем, которые были созданы в операторе new, то аллокация этой памяти была удалена.
Мы подумаем над тем, стоит ли исправлять эту "фичу" оптимизатора или улучшить его, чтобы сохранение указателя в неиспользуемую переменную не блокировало удаление операции new.
Разработчики подскажите почему в MQL4 и MQL5 функция удаления подокна индикатора из эксперта есть, а функции создания окна индикатора нет.
Приходится подьзоватся шаблонами, либо запускать оконный идикатор в ручную, а это не удобно т.к. теряется информация нанесенная на график.
Да и хотелось бы иметь возможность запускать и отображать индикаторы из файла ресурсов.
Или подскажите как это организовать.
А это не Вы ли устраивали "лайфхак с визуализацией"?
С чего Вы решили, что это - баг? Название папки соответствует номеру порта, по которому произошло соединение
Небольшое для себя открытие сделал
Если открыть ордер по цене Integer * Point (без нормализации) и потом запросить цену открытия, то она будет отличаться от ненормализованного Integer * Point.
Почему в OrderSEnd ВСЕГДА прокатывают ненормализованные цены вида Integer * Point?
Уберите кавычки из тела макроса
Чтобы преобразовать параметр макроса в строку следует использовать #:
#define MACROS(A) #A## используется для склеивания токеновДень добрый.
Разработчики подскажите почему в MQL4 и MQL5 функция удаления подокна индикатора из эксперта есть, а функции создания окна индикатора нет.
Приходится подьзоватся шаблонами, либо запускать оконный идикатор в ручную, а это не удобно т.к. теряется информация нанесенная на график.
Да и хотелось бы иметь возможность запускать и отображать индикаторы из файла ресурсов.
Или подскажите как это организовать.
Создать подокно графика можно при помощи функции ChartIndicatorAdd
Про индикаторы из ресурсов написано здесь https://www.mql5.com/ru/docs/runtime/resources в самом конце - "Работа с пользовательскими индикаторами, подключенными в качестве ресурсов"
Создать подокно графика можно при помощи функции ChartIndicatorAdd
Про индикаторы из ресурсов написано здесь https://www.mql5.com/ru/docs/runtime/resources в самом конце - "Работа с пользовательскими индикаторами, подключенными в качестве ресурсов"
Спасибо за помощь.
Но в четверке этой функции к сожалению нет. Обыдно :)
Косяк тестера МТ5: не совпадают OHLC в тестере и самом МТ5, более того, High и Low находятся внутри диапазона Open/Close :(
Эта свеча, к сожалению, не единственная. И чего делать? Подскажите, как разработчикам написать, ребята!
Я тут ещё раз прогнал тестер и увидел фокус: High перерисовывается О_о по мере формирования свечи. В какой-то момент он меняет значение на меньшее, падает в диапазон Open/Close и далее внутри этого диапазона меняет своё значение.
OHLC на М1
Нашли и исправили. Спасибо за сообщение.
Пока нет исправленного билда, этот баг можно обойти, тестируя на дневном (а не недельном) таймфрейме. При этом все недельки формируются правильно