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

Alain Verleyen #:

Сложно понять, чего вы пытаетесь добиться?

Узнать, смогу ли через CopyRates получить все исторические бары.

(Этот код не компилируется).

Забыл добавить.

datetime GetMonth( const datetime time )
{
  MqlDateTime sTime;
  
  TimeToStruct(time, sTime);
  
  const MqlDateTime sTime2 = {sTime.year, sTime.mon, 1};
  
  return(StructToTime(sTime2));
}
Обнаружил странное поведение при использовании iCustom в эксперте, которое больше похоже на баг, а не на фичу. Причем супер баг! Так как ведет к неконтроллируемуму размножению индикатора, и как следствие неконтролируемой утечки памяти и CPU ресурсов. 
Для воспроизведения скачиваем прилагаемый индикатор и эксперт. Запускаем эксперт и начинаем переключать таймфреймы в окне. Видно что для каждого старого предыдущего тайфрейма будет жить и работать свой индикатор, который никак не обнаруживается кроме как через пользовательские прерывания и принтовку из самого индикатора. 

2026.02.26 15:22:23.796 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M10,  Total indicators = 0
2026.02.26 15:22:23.796 Test_Ind (EURUSD,M12)   Size = 847966
2026.02.26 15:22:23.797 Test_Ind (EURUSD,M12)   From Ind: Current TF = PERIOD_M12,  Total indicators = 0
2026.02.26 15:22:23.797 Test_Ind (EURUSD,M15)   Size = 680072
2026.02.26 15:22:23.797 Test_Ind (EURUSD,M15)   From Ind: Current TF = PERIOD_M15,  Total indicators = 0
2026.02.26 15:22:23.797 Test_Ind (EURUSD,H1)    Size = 175718
2026.02.26 15:22:23.797 Test_Ind (EURUSD,H1)    From Ind: Current TF = PERIOD_H1,  Total indicators = 0
2026.02.26 15:22:23.797 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M12,  Total indicators = 0
2026.02.26 15:22:23.809 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M15,  Total indicators = 0
2026.02.26 15:22:23.811 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_H1,  Total indicators = 0
2026.02.26 15:22:25.691 Test_Ind (EURUSD,M1)    Size = 9838775
2026.02.26 15:22:25.691 Test_Ind (EURUSD,M1)    From Ind: Current TF = PERIOD_M1,  Total indicators = 0
2026.02.26 15:22:25.692 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M1,  Total indicators = 0
2026.02.26 15:22:25.693 Test_Ind (EURUSD,M4)    Size = 2519904
2026.02.26 15:22:25.693 Test_Ind (EURUSD,M4)    From Ind: Current TF = PERIOD_M4,  Total indicators = 0
2026.02.26 15:22:25.694 Test_Ind (EURUSD,M10)   Size = 1015776
2026.02.26 15:22:25.694 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M4,  Total indicators = 0
2026.02.26 15:22:25.694 Test_Ind (EURUSD,M10)   From Ind: Current TF = PERIOD_M10,  Total indicators = 0
2026.02.26 15:22:25.695 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M10,  Total indicators = 0
2026.02.26 15:22:25.695 Test_Ind (EURUSD,M12)   Size = 847966
2026.02.26 15:22:25.695 Test_Ind (EURUSD,M12)   From Ind: Current TF = PERIOD_M12,  Total indicators = 0
2026.02.26 15:22:25.695 Test_Ind (EURUSD,M15)   Size = 680072
2026.02.26 15:22:25.695 Test_Ind (EURUSD,M15)   From Ind: Current TF = PERIOD_M15,  Total indicators = 0
2026.02.26 15:22:25.695 Test_Ind (EURUSD,H1)    Size = 175718
2026.02.26 15:22:25.696 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M12,  Total indicators = 0
2026.02.26 15:22:25.696 Test_Ind (EURUSD,H1)    From Ind: Current TF = PERIOD_H1,  Total indicators = 0
2026.02.26 15:22:25.707 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M15,  Total indicators = 0
2026.02.26 15:22:25.708 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_H1,  Total indicators = 0
2026.02.26 15:22:25.891 Test_Ind (EURUSD,M1)    Size = 9838775
2026.02.26 15:22:25.892 Test_Ind (EURUSD,M1)    From Ind: Current TF = PERIOD_M1,  Total indicators = 0
2026.02.26 15:22:25.892 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M1,  Total indicators = 0
2026.02.26 15:22:25.893 Test_Ind (EURUSD,M4)    Size = 2519904
2026.02.26 15:22:25.911 Test_Ind (EURUSD,M4)    From Ind: Current TF = PERIOD_M4,  Total indicators = 0
2026.02.26 15:22:25.912 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M4,  Total indicators = 0
2026.02.26 15:22:25.912 Test_Ind (EURUSD,M10)   Size = 1015776
2026.02.26 15:22:25.920 Test_Ind (EURUSD,M10)   From Ind: Current TF = PERIOD_M10,  Total indicators = 0
2026.02.26 15:22:25.920 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M10,  Total indicators = 0
2026.02.26 15:22:25.921 Test_Ind (EURUSD,M12)   Size = 847966
2026.02.26 15:22:25.921 Test_Ind (EURUSD,M12)   From Ind: Current TF = PERIOD_M12,  Total indicators = 0
2026.02.26 15:22:25.922 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M12,  Total indicators = 0
2026.02.26 15:22:25.922 Test_Ind (EURUSD,M15)   Size = 680072
2026.02.26 15:22:25.923 Test_Ind (EURUSD,M15)   From Ind: Current TF = PERIOD_M15,  Total indicators = 0
2026.02.26 15:22:25.923 Test_Ind (EURUSD,H1)    Size = 175718
2026.02.26 15:22:25.924 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M15,  Total indicators = 0
2026.02.26 15:22:25.924 Test_Ind (EURUSD,H1)    From Ind: Current TF = PERIOD_H1,  Total indicators = 0
2026.02.26 15:22:25.934 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_H1,  Total indicators = 0
2026.02.26 15:22:26.393 Test_Ind (EURUSD,M1)    Size = 9838775
2026.02.26 15:22:26.394 Test_Ind (EURUSD,M1)    From Ind: Current TF = PERIOD_M1,  Total indicators = 0
2026.02.26 15:22:26.394 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M1,  Total indicators = 0
2026.02.26 15:22:26.396 Test_Ind (EURUSD,M4)    Size = 2519904
2026.02.26 15:22:26.399 Test_Ind (EURUSD,M4)    From Ind: Current TF = PERIOD_M4,  Total indicators = 0
2026.02.26 15:22:26.400 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M4,  Total indicators = 0
2026.02.26 15:22:26.400 Test_Ind (EURUSD,M10)   Size = 1015776
2026.02.26 15:22:26.400 Test_Ind (EURUSD,M10)   From Ind: Current TF = PERIOD_M10,  Total indicators = 0
2026.02.26 15:22:26.401 Test_Ind (EURUSD,M12)   Size = 847966
2026.02.26 15:22:26.401 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M10,  Total indicators = 0
2026.02.26 15:22:26.401 Test_Ind (EURUSD,M12)   From Ind: Current TF = PERIOD_M12,  Total indicators = 0
2026.02.26 15:22:26.402 Test_Ind (EURUSD,M15)   Size = 680072
2026.02.26 15:22:26.402 Test_Ind (EURUSD,M15)   From Ind: Current TF = PERIOD_M15,  Total indicators = 0
2026.02.26 15:22:26.402 Test_Ind (EURUSD,H1)    Size = 175718
2026.02.26 15:22:26.402 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M12,  Total indicators = 0
2026.02.26 15:22:26.402 Test_Ind (EURUSD,H1)    From Ind: Current TF = PERIOD_H1,  Total indicators = 0
2026.02.26 15:22:26.415 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M15,  Total indicators = 0
2026.02.26 15:22:26.415 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_H1,  Total indicators = 0
2026.02.26 15:22:27.396 Test_Ind (EURUSD,M1)    Size = 9838775
2026.02.26 15:22:27.397 Test_Ind (EURUSD,M1)    From Ind: Current TF = PERIOD_M1,  Total indicators = 0
2026.02.26 15:22:27.398 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M1,  Total indicators = 0
2026.02.26 15:22:27.399 Test_Ind (EURUSD,M4)    Size = 2519904
2026.02.26 15:22:27.399 Test_Ind (EURUSD,M4)    From Ind: Current TF = PERIOD_M4,  Total indicators = 0
2026.02.26 15:22:27.400 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M4,  Total indicators = 0
2026.02.26 15:22:27.400 Test_Ind (EURUSD,M10)   Size = 1015776
2026.02.26 15:22:27.401 Test_Ind (EURUSD,M10)   From Ind: Current TF = PERIOD_M10,  Total indicators = 0
2026.02.26 15:22:27.402 Test_Ind (EURUSD,M12)   Size = 847966
2026.02.26 15:22:27.402 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M10,  Total indicators = 0
2026.02.26 15:22:27.403 Test_Ind (EURUSD,M12)   From Ind: Current TF = PERIOD_M12,  Total indicators = 0
2026.02.26 15:22:27.403 Test_Ind (EURUSD,M15)   Size = 680072
2026.02.26 15:22:27.403 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M12,  Total indicators = 0
2026.02.26 15:22:27.404 Test_Ind (EURUSD,M15)   From Ind: Current TF = PERIOD_M15,  Total indicators = 0
2026.02.26 15:22:27.404 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_M15,  Total indicators = 0
2026.02.26 15:22:27.404 Test_Ind (EURUSD,H1)    Size = 175718
2026.02.26 15:22:27.404 Test_Ind (EURUSD,H1)    From Ind: Current TF = PERIOD_H1,  Total indicators = 0
2026.02.26 15:22:27.415 Test_Exp (EURUSD,H1)    From Exp: Current TF = PERIOD_H1, TF(ind) = PERIOD_H1,  Total indicators = 0

Да, это лечится с помощью IndicatorRelease(handle); в OnDeinit эксперта. Но это не очевидно и нигде не написано в документации. Уверен что подавляющее большинство использует iCustom в своих экспертах без IndicatorRelease, что ведет к постоянной утечке ресурсов при переключении таймфреймов.

ЗЫ На выходных на закрытом рынке не сможете это воспроизвести

Файлы:
Test_Exp.mq5  3 kb
Test_Ind.mq5  3 kb
Nikolai Semko #:
Обнаружил странное поведение при использовании iCustom в эксперте, которое больше похоже на баг, а не на фичу. Причем супер баг! Так как ведет к неконтроллируемуму размножению индикатора, и как следствие неконтролируемой утечки памяти и CPU ресурсов. 
Для воспроизведения скачиваем прилагаемый индикатор и эксперт. Запускаем эксперт и начинаем переключать таймфреймы в окне. Видно что для каждого старого предыдущего тайфрейма будет жить и работать свой индикатор, который никак не обнаруживается кроме как через пользовательские прерывания и принтовку из самого индикатора. 

Да, это лечится с помощью IndicatorRelease(handle); в OnDeinit эксперта. Но это не очевидно и нигде не написано в документации. Уверен что подавляющее большинство использует iCustom в своих экспертах без IndicatorRelease, что ведет к постоянной утечке ресурсов при переключении таймфреймов.

ЗЫ На выходных на закрытом рынке не сможете это воспроизвести

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

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

Если не использовать IndicatorRelease, то индикатор iCustom держится в памяти если к нему не обращались, вроде 7 минут (не точно), потом выгружается.

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

Nikolai Semko # :
Обнаружил странное поведение при использовании iCustom в эксперте, которое больше похоже на баг, а не на фичу. Причем супер баг! Так как ведет к неконтроллируемуму размножению индикатора, и как следствие неконтролируемой утечки памяти и CPU ресурсов. 
Для воспроизведения скачиваем прилагаемый индикатор и эксперт. Запускаем эксперт и начинаем переключать таймфреймы в окне. Видно что для каждого старого предыдущего тайфрейма будет жить и работать свой индикатор, который никак не обнаруживается кроме как через пользовательские прерывания и принтовку из самого индикатора. 

Да, это лечится с помощью  IndicatorRelease (handle); в OnDeinit эксперта. Но это не очевидно и нигде не написано в документации. Уверен что подавляющее большинство использует iCustom в своих экспертах без IndicatorRelease, что ведет к постоянной утечке ресурсов при переключении таймфреймов.

ЗЫ На выходных на закрытом рынке не сможете это воспроизвести

Документация iCustom :

Возвращаемое значение

Возвращает хэндл указанного технического индикатора, в случае неудачи возвращает INVALID_HANDLE . Для освобождения памяти компьютера от неиспользуемого больше индикатора служит функция IndicatorRelease() , которой передается хэндл этого индикатора.

Документация по MQL5: iCustom / Технические индикаторы
Документация по MQL5: iCustom / Технические индикаторы
  • www.mql5.com
Возвращает хэндл указанного пользовательского индикатора. Параметры symbol [in]  Символьное имя инструмента, на данных которого будет...
Да это понятно, но абсолютно не очевидно, что при переключении ТФ индикатор будет размножаться, если не позаботится о принудительном IndicatorRelease в OnDeinit.
Речь о бесконтрольном размножении, а не про освобождении памяти в случае, когда индикатор больше не нужен. 

Подскажите, как в браузере открыть запись Блога, чтобы не было ненужной информации слева и справа?


Работа MT5-тестера с RAM/Disk.
Работа MT5-тестера с RAM/Disk.
  • 2025.09.01
  • www.mql5.com
Многоядерный MT5-тестер имеет свои особенности работы с памятью и диском, знание которых дает понимание его ограничений на запускаемых конфигурациях и объясняет некоторые возникающие ошибки во время
fxsaber #:

Подскажите, как в браузере открыть запись Блога, чтобы не было ненужной информации слева и справа?


в Opera и других есть режим Чтения 


второй способ который не приветствуется в личку скинул


но блог остается таким же узким по ширине

lynxntech #:

в Opera и других есть режим Чтения 

Поищу такое в хроме.

второй способ который не приветствуется в личку скинул

но блог остается таким же узким по ширине

Да, удаление элементов не влияет на ширину, к сожалению.

fxsaber #:

Поищу такое в хроме.

Да, удаление элементов не влияет на ширину, к сожалению.

Можно пожаловаться, что сайт mql5.com не соответствует российскому ГОСТу ГОСТ Р 52872-2019. В части отсутствия версии для слабовидящих.

Ему выставят требование в определённые сроки исправить. Если не исправят, то их будут штрафовать, долго и упорно, пока не вступят в силу новые, пока ещё только готовящиеся требования, после их вступления в силу этот сайт просто забанят в России.


ЗЫ. пока тапками не закидали, это если чё шутка. Этот ГОСТ пока только для госсайтов. А вот готовящиеся исправления хз.

ЗЫЫ. В яндекс браузере режим чтения включается alt+b

Почему-то эта тема не отображается на главной.


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


Библиотеки: MultiTester
Библиотеки: MultiTester
  • 2026.02.28
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: MultiTester