Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1444
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Понятно. Это печатается при попытке работать с db. Надо посмотреть есть-ли проверка валидности хендла db перед использованием базы.
Вот вы вызвали функцию
Попытались открыть db, получили ошибку, отправили сообщение в телеграмм…
А где используете переменную dbmt там проверяете её значение?
или так
Думаю, сама библиотека работы с базой шлет ошибку и, похоже, в ней нет обработки ситуации когда база залочена.
В Python такая проблема не возникает, видимо в нем заложено создание очереди и ожидание.
Спасибо за ответы.
Да, в db_exe() проверяю так и отправляю на повторную попытку. А db_exe() вернет False если 10 раз не получилось (ни разу не возвращал).
Думаю, сама библиотека работы с базой шлет ошибку и, похоже, в ней нет обработки ситуации когда база залочена.
В Python такая проблема не возникает, видимо в нем заложено создание очереди и ожидание.
Спасибо за ответы.
1. Если хендл базы не получен, то базу закрывать не надо.
2. Если получен INVALID_HANDLE то зачем продолжать выполнение программы? Я думаю в этом случае лучше прервать, return
Я сейчас уже неоднократно пытаюсь открыть и закрыть несуществующую базу и никак не могу получить распечатку ошибки. Думаю, что эта печать идёт в момент создания запросов к базе, которую открыть не получилось.
1. Если хендл базы не получен, то базу закрывать не надо.
2. Если получен INVALID_HANDLE то зачем продолжать выполнение программы? Я думаю в этом случае лучше прервать, return
Я сейчас уже неоднократно пытаюсь открыть и закрыть несуществующую базу и никак не могу получить распечатку ошибки. Думаю, что эта печать идёт в момент создания запросов к базе, которую открыть не получилось.
Сделаю минимальный тестовый эксперт который будет каждую секунду обновлять запись в базе. Запустим его на 10 парах и все будет понятно. Выложу здесь...
Интересно. Буду ждать…
Интересно. Буду ждать…
Вот эксперт. Он создает базу (если уже нет) и раз в секунду пишет в нее текущее время.
В коде нет ни одного Print().
Запустил на 10 парах, пошли ошибки:
Что бы получить ошибку надо закрыть и заново запустить MT5 тогда все эксперты начинают работать синхронно.
Хорошо бы:
1. Понять как избавиться от вывода этой ошибки.
2. Придумать шаблонный механизм который бы ставил в очередь в случае недоступности базы.
п.2 я решил тем, что добавил Sleep() с рандомным временем, но это похоже на костыль.
UPDATE: перезалил фаил, первый был с ошибкой
Вот эксперт. Он создает базу (если уже нет) и раз в секунду пишет в нее текущее время.
В коде нет ни одного Print().
Запустил на 10 парах, пошли ошибки:
Что бы получить ошибку надо закрыть и заново запустить MT5 тогда все эксперты начинают работать синхронно.
Хорошо бы:
1. Понять как избавиться от вывода этой ошибки.
2. Придумать шаблонный механизм который бы ставил в очередь в случае недоступности базы.
п.2 я решил тем, что добавил Sleep() с рандомным временем, но это похоже на костыль.
UPDATE: перезалил фаил, первый был с ошибкой
Увы, моих знаний не хватает. Хватило только на то, чтобы понять, что ошибка печатается
DatabaseExecute(db, sql);Возможность проверить доступность перед созданием запроса, увы отсутствует.
Базу открывает, а запрос создать нет возможности.
Не открываются ордера на сервере, стопов и тейков нет, режимы алго включены и команда на установку проходит, а журналы молчат CTrade class . В тестере работает на реальной торговле молчок. Что проверить?
журнал терминала
журнал терминала
Догадался включил логи, не может лот рассчитать. Не понимаю почему на реале не хочет считать?
Догадался включил логи, не может лот рассчитать. Не понимаю почему на реале не хочет считать?
Логов нет, поэтому догадок может быть в разы больше.
Как вариант, при торговле кроссами если в обзоре рынка не выбрана пара с валютой депозита, торговать не будет.
Например торгуем EURJPY, валюта депозита USD, в обзоре рынка должны присутствовать EURUSD и USDJPY.