Ошибки, баги, вопросы - страница 1509
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
OnDeinit - обыкновенная функция в программе MQL4/5, которая вызывается в определённых ситуациях. Тут как запрограммируете, так и будет
Конкретизируйте вопрос. Что именно Вас интересует?
С объектами, которые явно удаляются (созданные в выделенной памяти) все понятно. Интересует процесс освобождения памяти и удаления объектов созданных в автоматической памяти.
Т.е. есть к примеру два объекта и переменная фундаментального типа:
Интересует какой будет порядок освобождения памяти и удаления всех объектов, при удалении программы.
...
В каких случаях терминал может зависнуть? - по видимому существуют штатные ситуации, в которых терминалу положено виснуть.
По моим наблюдениям виснет (подвисает на неопределённое время) всегда при:
1. Подключении к серверу.
2. П1. при переключении между счетами.
3. Во время запуска терминала.
В последний раз вот при запуске терминал завис. Я заглянул в диспетчер задач, терминал байт за байтом жрет память, через пару минут сожрал все 8Гб памяти и операционная система зависла напару с терминалом. Пришлось жать кнопку "ресет" на системном блоке.
После перезагрузки компьютера запустил терминал - история с зависанием повторилась, система перестала отвечать на мои бойкие попытки её разбудить вместе с терминалом.
После перезапуска компьютера я удалил все конфигурационные файлы терминала, запустил - история с зависанием повторилась.
После перезапуска компьютера я удалил все файлы истории торговых серверов и только после этого терминал соизволил работать нормально, и то после некоторого раздумья минуты 3.
Терминал виснит из билда в билд. Win10x64.
В каких случаях терминал может зависнуть? - по видимому существуют штатные ситуации, в которых терминалу положено виснуть.
По моим наблюдениям виснет (подвисает на неопределённое время) всегда при:
1. Подключении к серверу.
2. П1. при переключении между счетами.
3. Во время запуска терминала.
В последний раз вот при запуске терминал завис. Я заглянул в диспетчер задач, терминал байт за байтом жрет память, через пару минут сожрал все 8Гб памяти и операционная система зависла напару с терминалом. Пришлось жать кнопку "ресет" на системном блоке.
После перезагрузки компьютера запустил терминал - история с зависанием повторилась, система перестала отвечать на мои бойкие попытки её разбудить вместе с терминалом.
После перезапуска компьютера я удалил все конфигурационные файлы терминала, запустил - история с зависанием повторилась.
После перезапуска компьютера я удалил все файлы истории торговых серверов и только после этого терминал соизволил работать нормально, и то после некоторого раздумья минуты 3.
Терминал виснит из билда в билд. Win10x64.
Как разбить код на части и включаемые файлы правильно, первый раз с таким сталкиваюсь по этому задаю вопрос к опытным спецам
Вот пример
ТО есть класс наследуется от другого класса и содержит структуру, в примере структуру я сократил, далее идут методы по работе с массивом структуры
этих методов штук 40-50 может больше пока не знаю.
Хочу каждый метод Вынести во включаемый файл или иначе как то организовать структуру кода что бы в самом советнике не городить 10 000 -20 000 строк кода в которых потом затруднен поиск.
Единственное что на текущий момент вижу это отправлять массив структуры по ссылке
типа
Мне кажется это не самый удачный выбор.
Что можно сделать ?
С объектами, которые явно удаляются (созданные в выделенной памяти) все понятно. Интересует процесс освобождения памяти и удаления объектов созданных в автоматической памяти.
Т.е. есть к примеру два объекта и переменная фундаментального типа:
Интересует какой будет порядок освобождения памяти и удаления всех объектов, при удалении программы.
OnDeinit к этому никакого отношения не имеет.
Вы читали документацию?
Такая же винда, терминал запускается только от админа, и все файлы типа метаедитор так же от админа, проблем нет.
Как разбить код на части и включаемые файлы правильно, первый раз с таким сталкиваюсь по этому задаю вопрос к опытным спецам
Вот пример
ТО есть класс наследуется от другого класса и содержит структуру, в примере структуру я сократил, далее идут методы по работе с массивом структуры
этих методов штук 40-50 может больше пока не знаю.
Хочу каждый метод Вынести во включаемый файл или иначе как то организовать структуру кода что бы в самом советнике не городить 10 000 -20 000 строк кода в которых потом затруднен поиск.
Единственное что на текущий момент вижу это отправлять массив структуры по ссылке
типа
Мне кажется это не самый удачный выбор.
Что можно сделать ?
Если классы емкие, то лучше под каждый класс создать отдельный листинг, а в коде где используются объекты этого класса, подключить листинг класса через #include. То же самое и структур касается и библиотек функций. Если классы и структуры не емкие, то их можно в один листинг включить. Так же можно создать листинг общих дефайнов и макросов.
И не бойтесь, что у вас будет целое семейство листингов, имеющих отношение к одной программе, это обычное явление, у меня в торговых системах используется 15-20 листингов, плюс каталоги с .bmp и .gif для интерфейса. Все листинги распределяю по отдельным каталогам. Так проще ориентироваться при отлове ошибок и модернизации.
В каких случаях терминал может зависнуть? - по видимому существуют штатные ситуации, в которых терминалу положено виснуть.
По моим наблюдениям виснет (подвисает на неопределённое время) всегда при:
1. Подключении к серверу.
2. П1. при переключении между счетами.
3. Во время запуска терминала.
В последний раз вот при запуске терминал завис. Я заглянул в диспетчер задач, терминал байт за байтом жрет память, через пару минут сожрал все 8Гб памяти и операционная система зависла напару с терминалом. Пришлось жать кнопку "ресет" на системном блоке.
После перезагрузки компьютера запустил терминал - история с зависанием повторилась, система перестала отвечать на мои бойкие попытки её разбудить вместе с терминалом.
После перезапуска компьютера я удалил все конфигурационные файлы терминала, запустил - история с зависанием повторилась.
После перезапуска компьютера я удалил все файлы истории торговых серверов и только после этого терминал соизволил работать нормально, и то после некоторого раздумья минуты 3.
Терминал виснит из билда в билд. Win10x64.
Нет никаких штатных ситуаций, в которых терминалу положено виснуть.
Не должен терминал виснуть.
Все подключения к серверу, переключения между счетами производится в отдельных потоках. Зависание означает, что что-то тормозит интерфейсный поток
Подгрузка истории, кстати, тоже производится в отдельном потоке
от админа? а может терминалу ещё дать шапку с крестом, золотое яблоко, посох и величать его не иначе как Предобрейший Царь Всея Русси?
Нет никаких штатных ситуаций, в которых терминалу положено виснуть.
Не должен терминал виснуть.
Все подключения к серверу, переключения между счетами производится в отдельных потоках. Зависание означает, что что-то тормозит интерфейсный поток
Подгрузка истории, кстати, тоже производится в отдельном потоке
Это не терминалу нужно давать а винде 10, Ваши проблемы не из-за терминала а из-за винды...