Возможно в библиотеке идёт напрямую коннект к базе и считывание а так как индикатор работает в потоке терминала, то данный процесс иногда занимает большее время то тормозит и роняет терминал из-за этого, в длл-ке нужно отдельный поток создавать и уже в нём конектится к базе.
Эмммм.... простите за глупый вопрос, в какой длл"ке, libmysql.dll? Я взял готовый хедер где-то на сайте mql4 и через него работаю
Не знаю устройства данной библиотеки, но когда начинал писать свои длл-ки то падало у меня как раз очень похоже. Из-за того что они тормозили терминал при длительных расчётах, то есть индикатор вызывает функцию из длл и терминал встаёт весь причём в ожидании ответа от неё и падает бывает.
Более опытные коллеги надеюсь поправят если я ошибаюсь.
Ну или возможно как вариант множественное подключение к базе под одним пользователем, то есть и советник и индикатор одновременно конектятся под одним логином к базе, если так то попробуйте в индикаторе под другим пользователем что ли подключаться или под гостем если доступ разрешен.
У меня стал падать на новом компе (win 7x64) от разных индикаторов
на XP такого не замечал
по совету пользователя установил терминал с сайта MQ, там стало получше, но проблема осталась.
Печалька :(
Походу, вы были правы. Не могу сказать конкретно, но начинаю замечать такую статистику, что когда лишний график подключается к бд и вызывает несколько подряд ошибок мускула, через некоторое время падает терминал. Когда я присёк такие подключения, крэши вроде как пропали. Возможно наложение этих 3х обстоятельств и были причиной. Но это предположение. Я боялся больше какой-то несовместимости с х64. Буду тестить - буду видеть. Если что-то новое замечу - напишу.
в try нужно заворачивать такие вызовы, особенно со сторонних длл-ок.
PozitiF:
в try нужно заворачивать такие вызовы, особенно со сторонних длл-ок.
в try нужно заворачивать такие вызовы, особенно со сторонних длл-ок.
Так нет же try-catch в mql4
https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa384274(v=vs.85).aspx
Я имел в виду что в самописной длл-ке вашей вызывается стандартная ntdll.dll вот вызовы функций из данной библиотеки и следовало бы обернуть. Хотя возможно оно так и есть а крах по причине первой что я озвучил выше.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте, начал вылетать терминал. В журнале вот что:
Имя сбойного приложения: terminal.exe, версия: 4.0.0.902, отметка времени: 0x00bc3e00
Имя сбойного модуля: ntdll.dll, версия: 6.1.7601.17725, отметка времени 0x4ec49b8f
Код исключения: 0xc0000005
Смещение ошибки: 0x0004ff2b
Идентификатор сбойного процесса: 0xf1c
Время запуска сбойного приложения: 0x01d111a89b439834
Путь сбойного приложения: C:\Program Files (x86)\MetaTrader 4\terminal.exe
Путь сбойного модуля: C:\Windows\SysWOW64\ntdll.dll
Закономерность появления не могу найти. Теоретически принцип работы такой:
Тестировал на 2х ОС: Windows 7 x64, Windows 10 x64. MetaTrader4 b.902
Появилась проблема только при наличие индикатора. Раньше, когда в базу лез только советник - все было норм. Смущает только то, что это случается как-то непредсказуемо.