можно посмотреть список объектов того что на графике чтоб посмотреть что остаётся - Графики -> Объекты -> Список объектов (все)
Пожалуйста.
На 20 тысяч строк такую хрень написать и упереться в артефакты. Сочувствую.
Там более 50 000 строк.
Я, кажется, немного начинаю понимать, где собака порылась. Удаление объекта, возможно, связано с вот этим:
// включение сообщений об удалении объекта ChartSetInteger(0,CHART_EVENT_OBJECT_DELETE,0,true);Потихоньку продумываю, как поаккуратнее эту функцию применять.
Там более 50 000 строк.
NEN, я в курсе, что у Вас всё очень большое.
Там более 50 000 строк.
Я, кажется, немного начинаю понимать, где собака порылась. Удаление объекта, возможно, связано с вот этим:
Потихоньку продумываю, как поаккуратнее эту функцию применять.Просто, всё удалите внутри программы. Хуже не будет.
NEN, я в курсе, что у Вас всё очень большое.
Этой весной дочитал книгу Далай Ламы https://royallib.com/book/gyatso_tenzin/vselennaya_v_odnom_atome_nauka_i_duhovnost_na_slugenii_miru.html
Там есть очень интересные идеи.
- royallib.com
Просто, всё удалите внутри программы. Хуже не будет.
Попробую все-таки реализовать задуманное.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Столкнулся с двумя, возможно, недокументированными явлениями МТ4. На мой взгляд, они между собой связаны.
1) В терминале на графике запускаю один индикатор. Вывожу панель графического интерфейса. Зеленые значки в верхнем левом углу:
Удаляю индикатор с графика. При этом удаляются все, созданные индикатором файлы, которые могут влиять на повторный запуск индикатора. Удаляются все глобальные переменные. Никакие индикаторы, советники, скрипты не загружены ни на один из открытых графиков.
При повторном запуске индикатора автоматически выводится панель графического интерфейса.
Если удалю эту панель и затем удалю индикатор с графика, при повторном запуске панель также не выводится. Есть алгоритм в программе, который при перезагрузке, перекомпиляции и т.д. выводит индикатор с ранее открытыми окнами. Но для этого необходимо загрузить специально созданный файл, который при удалении индикатора с графика удаляется с диска компьютера. Индикатор прибирает за собой весь мусор.
ЧТО ВЫЗЫВАЕТ СОХРАНЕНИЕ ПАРАМЕТРОВ ЗАПУСКА? ЧТО-ТО ОСТАЕТСЯ В ПАМЯТИ?
2) Возможно, это как-то связано с выше описанным явлением.
Я взял некоторые маленькие программы из документации и вставил их в программу. Речь пойдет про ButtonCreate(.....)
Перед выведением какой-либо кнопки в программе проверяется наличие этой кнопки на графике. Если она есть, то удаляется и выводится по-новой.
Все ранее работало прекрасно. Кнопка удалялась без проблем. В последние несколько дней столкнулся со следующим явлением. Кнопка в виде восклицательного знака, на картинке выше в левом верхнем углу, перестала иногда удаляться. Точнее так. Кнопка удаляется, а при запуске ButtonCreate(.....) выводится ошибка 4200 - объект не создан, так как он уже существует.
Перелопатил все. Нашел место, в котором возникает ошибка. Делаю удаление с помощью if (ObjectFind(name_znak)) ObjectDelete(name_znak); . Функция ObjectFind объект не находит, а ButtonCreate(.....) выводит ошибку 4200.
Модифицировал функцию ButtonCreate(.....), чтобы выводилось больше информации о месте в программе, где происходит ошибка.
Выводится такое:
2021.05.10 15:51:00.366 ZUP GBPUSD,H1: 26955 ButtonCreate: не удалось создать кнопку! Код ошибки = 4200 В строке: 19595 ExtSet = 151
Такие чудеса.
Что-то в памяти терминала остается. Знать бы, что. И как это учитывать в разработке?
Версия МТ4 - 1330 от 19 марта 2021.
====================
Добавлю следующее. На компьютере запущены 5 терминалов от пяти брокеров. На других терминалах, где разработка не ведется, данная программа запущена. Может, это как-то связано с возникшими чудесами?