Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
https://www.mql5.com/ru/docs/runtime/running
Выполнение программ я смотрел и раньше, но там о сервисах только общая информация. А если набрать в поиске "сервисы", то там появляются ссылки на любые источники (например, такие как Сервис сигналы), но нет ссылки, где отдельно рассказано о сервисах, с примерами, как информация обычно приводится в документации...
Информация есть, но ничего важного нет и не требуется. Это просто скрипт с автозапуском. Пишите как скрипт (без доступа к чарту). Чтобы работать с отладчиком, запускайте как скрипт, а не сервис.
В цикле ждёте нового задания (из выбранного входа), обрабатываете и выводите результат на выбранный выход. Для простоты - через файлы. Разруливайте общий доступ к ресурсам (к файлам в данном случае).
Информация есть, но ничего важного нет и не требуется. Это просто скрипт с автозапуском. Пишите как скрипт (без доступа к чарту). Чтобы работать с отладчиком, запускайте как скрипт, а не сервис.
В цикле ждёте нового задания (из выбранного входа), обрабатываете и выводите результат на выбранный выход. Для простоты - через файлы. Разруливайте общий доступ к ресурсам (к файлам в данном случае).
Прочитал на форуме, что работает только OnStart. Не OnTimer, не OnTick, не работают. Получается, есть единственный вариант, это зациклить обработку с помощью while?...
Еще, хочу разобраться, как лучше передавать/отправлять данные? С помощью файлов, это не очень хороший вариант, так как придётся постоянно писать данные на жесткий диск. При больших объемах данных, а также большом количестве запущенных процессов, это может превратиться в катастрофу... Плюс, преждевременный износ жесткого диска, также возможен...
Еще, сервис запускается вручную, с помощью команды Добавить сервис, на сколько я понял... Но хорошо бы если бы была возможность запускать его программно. Тогда, не было бы никаких препятствий многопоточности.Прочитал на форуме, что работает только OnStart. Не OnTimer, не OnTick, не работают.
Это просто скрипт
Получается, есть единственный вариант, это зациклить обработку с помощью while?...
В цикле ждёте нового задания
Еще, хочу разобраться, как лучше передавать/отправлять данные? С помощью файлов, это не очень хороший вариант, так как придётся постоянно писать данные на жесткий диск. При больших объемах данных, а также большом количестве запущенных процессов, это может превратиться в катастрофу... Плюс, преждевременный износ жесткого диска, также возможен...
1) Если это задача оптимизации, мастер даёт большой пакет заданий, и это надолго. Не будет большой нагрузки на диск.
2) Для начала, чтобы не плясать одновременно на двух граблях, освойте через файлы. С другими способами обмена - отдельная тема. Освоите на следующем этапе.
Еще, сервис запускается вручную, с помощью команды Добавить сервис, на сколько я понял... Но хорошо бы если бы была возможность запускать его программно. Тогда, не было бы никаких препятствий многопоточности.
Вы как будто невнимательно читаете сообщения. Сервис запускается автоматически с запуском терминала. В этом его суть. Поэтому сервисы готовы к Вашей многопоточности до остановки кнопкой или по ошибке.
Если они нужны часто, пусть работают. Между проверками наличия заданий пусть спят недолго. Много процессора не скушают. Сами убедитесь.
Если долго не нужны, остановите.
А то замените на скрипты или экспертов и запускайте автоматом. Ваш выбор.
Много вопросов были просто риторическими, для уточнения. Такие ответы, как "Это просто скрипт" и "В цикле ждёте нового задания" мне и так понятны. Просто хотел уточнить как работает обработчик OnStart в службах (оказалось, в точности, как в скрипте). И он будет ждать команд только в том случае, если методы их получения зациклить. В остальных случаях OnStart просто отработает и всё, на сколько я понял. При чём, будет ли при этом оставаться работающей служба или завершит свою работу, не очень понятно... Если провести полную аналогию со скриптом, как Вы выше заметили, то, получается, что служба завершит работу...
1) Если это задача оптимизации, мастер даёт большой пакет заданий, и это надолго. Не будет большой нагрузки на диск.
2) Для начала, чтобы не плясать одновременно на двух граблях, освойте через файлы. С другими способами обмена - отдельная тема. Освоите на следующем этапе.
Жёсткий диск не рассчитан на такое обращение с ним! Поэтому, мне нужны способы здорового человека!...
Если они нужны часто, пусть работают. Между проверками наличия заданий пусть спят недолго. Много процессора не скушают. Сами убедитесь.
Если долго не нужны, остановите.
А то замените на скрипты или экспертов и запускайте автоматом. Ваш выбор.
Проблема в том, что мне придется проводить целый инструктаж тем, кто будет пользоваться моей программой... :) Поэтому, нужно чтобы всё создавалось и запускалось автоматически. От пользователя требуется только нажать на кнопку. "Нажми на кнопку, получишь результат..." :) Поэтому для создания потоков мне подойдут скрипты или эксперты. Но для них нужно создавать чарты... Это проблема, хоть и не очень существенная... Правда, я не помню, можно ли создавать чарты программно!...
Много вопросов были просто риторическими, для уточнения. Такие ответы, как "Это просто скрипт" и "В цикле ждёте нового задания" мне и так понятны. Просто хотел уточнить как работает обработчик OnStart в службах (оказалось, в точности, как в скрипте). И он будет ждать команд только в том случае, если методы их получения зациклить. В остальных случаях OnStart просто отработает и всё, на сколько я понял. При чём, будет ли при этом оставаться работающей служба или завершит свою работу, не очень понятно... Если провести полную аналогию со скриптом, как Вы выше заметили, то, получается, что служба завершит работу...
Жёсткий диск не рассчитан на такое обращение с ним! Поэтому, мне нужны способы здорового человека!...
Проблема в том, что мне придется проводить целый инструктаж тем, кто будет пользоваться моей программой... :) Поэтому, нужно чтобы всё создавалось и запускалось автоматически. От пользователя требуется только нажать на кнопку. "Нажми на кнопку, получишь результат..." :) Поэтому для создания потоков мне подойдут скрипты или эксперты. Но для них нужно создавать чарты... Это проблема, хоть и не очень существенная... Правда, я не помню, можно ли создавать чарты программно!...
не такой уж он и жёсткий и не обязательно его насиловать ради пары мегабайт :-)
RAM-диск прикрутить в Files/RAM и всё делов. ОБмен данными через него, привычными интерфейсами и с непривычной скоростью..
Много вопросов были просто риторическими, для уточнения. Такие ответы, как "Это просто скрипт" и "В цикле ждёте нового задания" мне и так понятны. Просто хотел уточнить как работает обработчик OnStart в службах (оказалось, в точности, как в скрипте). И он будет ждать команд только в том случае, если методы их получения зациклить. В остальных случаях OnStart просто отработает и всё, на сколько я понял. При чём, будет ли при этом оставаться работающей служба или завершит свою работу, не очень понятно... Если провести полную аналогию со скриптом, как Вы выше заметили, то, получается, что служба завершит работу...
Лучший совет тем, кто желает начать: Начните!
не такой уж он и жёсткий и не обязательно его насиловать ради пары мегабайт :-)
RAM-диск прикрутить в Files/RAM и всё делов. ОБмен данными через него, привычными интерфейсами и с непривычной скоростью..
Решение хорошее. Но его не сделать средствами MQL. Глобальные переменные также пишут на диск (почти тоже что и использование файлов). Остаются графические объекты OBJ_BITMAP и OBJ_BITMAP_LABEL. Можно осуществлять обмен данными с помощью целого массива байтов, которые находятся в ОЗУ. И не нужны сложности с созданием RAM-диска... Пожалуй, этот вариант мне подходит наилучшим образом.
Еще, Едгар мне советовал использование ресурсов... Но как можно обратиться напрямую к ресурсу запущенного эксперта из другого эксперта или скрипта?
Проблема в том, что мне придется проводить целый инструктаж тем, кто будет пользоваться моей программой... :) Поэтому, нужно чтобы всё создавалось и запускалось автоматически. От пользователя требуется только нажать на кнопку. "Нажми на кнопку, получишь результат..." :) Поэтому для создания потоков мне подойдут скрипты или эксперты. Но для них нужно создавать чарты... Это проблема, хоть и не очень существенная... Правда, я не помню, можно ли создавать чарты программно!...
Выше я давал ссылку на готовое решение.
Выше я давал ссылку на готовое решение.
Спасибо! Изучил материал. Если появятся вопросы, то задам их в обсуждении статьи.