Ошибки, баги, вопросы - страница 2794
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У меня индикатор стал почему-то терять графические объекты и не удаляет их. Использую автоматическое удаление в деструкторе класса. Вызываю:
В результате получаю фальш. Вызываю GetLastError() и получаю ошибку 4101 ("Ошибочный идентификатор графика"). Допустим... Сравниваю chartID удаляемого графического объекта с результатом функции ChartID() и они абсолютно одинаковы. В чём может быть причина не удаления объекта с графика и как это можно обойти?
Решил попробовать по-другому. Во время создания все объекты чарта добавляю в список, а при удалении индикатора удаляю все объекты с помощью цикла. Теперь функция GetLastError() даёт ошибку 4001 после вызова функции ObjectDelete и по прежнему некоторые объекты чарта остаются на графике.
У меня индикатор стал почему-то терять графические объекты и не удаляет их. Использую автоматическое удаление в деструкторе класса. Вызываю:
В результате получаю фальш. Вызываю GetLastError() и получаю ошибку 4101 ("Ошибочный идентификатор графика"). Допустим... Сравниваю chartID удаляемого графического объекта с результатом функции ChartID() и они абсолютно одинаковы. В чём может быть причина не удаления объекта с графика и как это можно обойти?
Действия для демонстрации бага.
1. Бросить индикатор на график.
2. Удалить индикатор с графика.
3. Нажать Ctrl+B, затем в окне нажать кнопку "List all" и увидеть не удаленные объекты.
У меня их осталось аж 294 из 100000.
Если уменьшить значение входного параметра nBars, то баг не проявляется.
Доброго времени суток.
Долго резину тянул с переходом с Windows 7 на 10, но на неделе переустановил.
Теперь у меня проблема, не могу скачать демо версии экспертов индикаторов своих и чужих,
нажимаю на кнопку скачать и нечего не происходит, при открытом и закрытом терминале пробывал!?
Пробую скачать для терминала МТ4, на МТ5 пока не побывал.
Что за фигня?
Сделал исходник, где возникает данный баг:
А что происходит при удалении указателя?
Идет команда графику на удаление графического объекта? Смотрите примечание к ObjectDelete
У меня их осталось аж 294 из 100000.
Если уменьшить значение входного параметра nBars, то баг не проявляется.
А не может получиться так, что цикл длится дольше чем отведено времени на выполнение OnDeinit?
Ведь у вас в примере все объекты имеют префикс "trend" почему-бы не воспользоваться этим и отказаться от цикла?
А что происходит при удалении указателя?
Идет команда графику на удаление графического объекта? Смотрите примечание к ObjectDelete
Я конечно же думал раньше об этом примечании. Но потом почему-то решил что это баг терминала. За что приношу свои извинения. Получается, это моя недоработка.
Но я не знаю, что в данном случае делать. Вызывать ObjectDelete, а потом ObjectFind и дожидаться пока он отработает, чтобы узнать, удален ли на самом деле объект. Исходя из того же примечания, это слишком затратно по времени. Да и не знаю, сработает ли повторное удаление (в своем индикаторе я пытался вызывать ObjectDelete два раза подряд и безрезультатно). А функция Sleep в индикаторах не работает, чтобы дать графику немного времени на удаление каждого объекта. Возможно где-нибудь есть примеры, как это обойти?
А не может получиться так, что цикл длится дольше чем отведено времени на выполнение OnDeinit?
Ведь у вас в примере все объекты имеют префикс "trend" почему-бы не воспользоваться этим и отказаться от цикла?
Это только в примере. В индикаторе же, над которым я работаю довольно сложные имена. А пример я сделал просто для демонстрации.
Я конечно же думал раньше об этом примечании. Но потом почему-то решил что это баг терминала. За что приношу свои извинения. Получается, это моя недоработка.
Но я не знаю, что в данном случае делать. Вызывать ObjectDelete, а потом ObjectFind и дожидаться пока он отработает, чтобы узнать, удален ли на самом деле объект. Исходя из того же примечания, это слишком затратно по времени. Да и не знаю, сработает ли повторное удаление (в своем индикаторе я пытался вызывать ObjectDelete два раза подряд и безрезультатно). А функция Sleep в индикаторах не работает, чтобы дать графику немного времени на удаление каждого объекта. Возможно где-нибудь есть примеры, как это обойти?
Вы же по-моему добавляете все указатели в список. Подсистема терминала сама удаляет такие объекты, указатели на которые лежат в списке CArrayObj
После завершения работы терминала после индикатора остаются объекты на чарте. И когда я снова запускаю терминал, то эти объекты видны и портят весь вид.
После завершения работы терминала после индикатора остаются объекты на чарте. И когда я снова запускаю терминал, то эти объекты видны и портят весь вид.