Кто разобрался, прошу показать реализацию такой задачи.
- Есть два Терминала.
- Нужно котиры одного символа с Терминала1 перекидывать реал-тайм в соответствующий кастомный символ Терминала2.
Кто разобрался, прошу показать реализацию такой задачи.
- Есть два Терминала.
- Нужно котиры одного символа с Терминала1 перекидывать реал-тайм в соответствующий кастомный символ Терминала2.
В рамках этой задачи правильно ли понимаю, что в обоих случаях (при чтении базы на Терминале2 и записи в базу в Терминале1) нужно ее блокировать через механизм транзакций?
Как наиболее дешево определить, что база данных была обновлена?
В рамках этой задачи правильно ли понимаю, что в обоих случаях (при чтении базы на Терминале2 и записи в базу в Терминале1) нужно ее блокировать через механизм транзакций?
Нет, это другая блокировка. Если база уже открыта в другой MQL5-программе или MetaEditor, то при попытках модификации вы получите ошибку
5124.
Нет, это другая блокировка. Если база уже открыта в другой MQL5-программе или MetaEditor, то при попытках модификации вы получите ошибку 5124.
Получается, что обмен данными имеет меньше возможностей, чем через файлы?
Получается, что обмен данными имеет меньше возможностей, чем через файлы?
зависит от самой реализации БД
с файлами всегда неудобно - последовательный доступ и те же проблемы при работе с одним файлом
Получается, что обмен данными имеет меньше возможностей, чем через файлы?
SQLite - это не серверная база данных, а встраиваемая. Поэтому она не может обеспечить совместное И одновременное использование из разных процессов.
Ее предназначение - для внутреннего использования в MQL5 и обмена(не одновремененного использования)/переноса с другими системами.
Преимущество встроенной штатной базы в том, что она доступна в любых агентах и позволяет удобно работать с данными удаленно и в тестере стратегий.
В рамках разных MQL5 экспертов, запущенных в одном терминале, можно совместно использовать одну и ту же базу данных.
SQLite - это не серверная база данных, а встраиваемая. Поэтому она не может обеспечить совместное И одновременное использование из разных процессов.
В рамках разных экспертов, запущенных в одном терминале, можно совместно использовать одну и ту же базу данных.
Теперь понятно, спасибо.
То, что описывается для мкл5, возможно использовать в мкл4?
Функции и работа с библиотеками совместимы? или это только для мкл5?
То, что описывается для мкл5, возможно использовать в мкл4?
Функции и работа с библиотеками совместимы? или это только для мкл5?
Родная поддержка SQLite только в MetaTrader 5 & MQL5.
Это не библиотека, а штатный функционал MQL5 с глубокой интеграцией во всю систему, включая агентов тестирования стратегий.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья SQLite: нативная работа с базами данных на SQL в MQL5:
Разработка торговых стратегий связана с обработкой больших объемов данных. Теперь прямо в MQL5 вы можете работать с базами данных с помощью SQL-запросов на основе SQLite. Важным преимуществом данного движка является то, что вся база данных содержится в единственном файле, который находится на компьютере пользователя.
Отладка SQL-запросов в MetaEditor
Все функции для работы с базой данных возвращают код ошибки в случае неуспешного вызова. Работа с ними не вызывает проблем, если придерживаться 4-х простых правил:
Самое сложное при этом — понять в чем состоит ошибка, если запрос не создался. MetaEditor позволяет открывать файлы *.sqlite и работать с ними с помощью SQL-запросов. Покажем как это делается на примере созданного файла company.sqlite:
Автор: MetaQuotes