Renat, будет ли возможность в сервисе реализовывать кастомный стакан? В документации говориться, что обработчик OnBookEvent вызывается в индикаторах и экспертах. А как же сервисы? Как запустить стаканы в сервисе? Хотелось бы иметь возможность запускать свои кастомные стаканы, в сервисе. По вашим словам сервисы не поддерживают других обработчиков кроме OnStart, и это становиться проблемой. Дело в том, что сервисы обрабатываются гораздо быстрее системного OnTimer в индикаторах и экспертах. И для построения кастомных стаканов лучше использовать сервисы.
p.s. Почитал ветку, удивлен что маститые програмеры не могут найти применение сервисам. Сервисы это крутая штука, в которых можно реализовать многое чего, вплоть до асинхронного выполнения всего проекта, раскидав логику задач по сервисам. Но более логичнее было бы лучше, добавить в язык функцию Thread(params), которая бы реализовывала распараллеливание потоков, для переданных аргументов в функции. Ну а если будут потоки, то с ними рядом идут и процессы, в виде функции Process(params).
Одно из важных преимуществ, сервис обрабатывается быстрее системного времени, т.е. обрабатывается всего за 1мс, а возможно и меньше. Так как я принудительно в цикле While() поставил ограничение Sleep(1). А системный OnTimer() с событием EventSetMillisecondTimer(1), в экспертах и индикаторах обрабатывается за ~ 20мс. Не хилый такой себе прирост в сервисах, по производительности обработки. Печально, что в сервисе не поддерживаются обработчики экспертов, что сильно ограничивает в возможных решениях. Как то давно пользователи просили реализовать запуск экспертов без графиков, сервисы как раз бы решали эту задачу. Судя по кнопке "Автоматическая торговля" в меню сервиса, возможность торговли есть. Но с одним обработчиком OnStart не построишь полноценное торговое решение.
Перезагрузил комп и забыл про RAMDrive. Запускаю MT5, а он сразу сообщает о проблеме.
А не проще исользовать RamDisk с функциями automount + junction + dynamic allocation? При старте ПК автоматом все монтирует и линкует, а если на диске не достаточно места то и его самостоятельно добавит из оперативки.
А не проще исользовать RamDisk с функциями automount + junction + dynamic allocation? При старте ПК автоматом все монтирует и линкует, а если на диске не достаточно места то и его самостоятельно добавит из оперативки.
Не всегда нужен, поэтому создание пи старте не делал.
Подскажите, как из программы сервис, можно вывести коммент на активный график? Да и вообще, можно ли любую другую графику выводить?
//+------------------------------------------------------------------+//| Service program start function |//+------------------------------------------------------------------+intOnStart()
{
Comment("text");
return(0);
}
intOnStart()
{
ChartCommentSet("Hello Service", ChartFirst());
return(0);
}
//+------------------------------------------------------------------+ //| Функция устанавливает текст комментария в левом верхнем углу | //| графика. | //+------------------------------------------------------------------+ bool ChartCommentSet(conststring str, constlong chart_ID=0)
{
//сбросим значение ошибки ResetLastError();
//установим значение свойства if(!ChartSetString(chart_ID, CHART_COMMENT, str))
{
//выведем сообщение об ошибке в журнал "Эксперты" Print(__FUNCTION__+", Error Code = ", GetLastError());
return(false);
}
//успешное выполнение return(true);
}
//+------------------------------------------------------------------+//| Service program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---
ChartCommentSet("Hello Service", ChartFirst());
return;
}
//+------------------------------------------------------------------+//| Функция устанавливает текст комментария в левом верхнем углу |//| графика. |//+------------------------------------------------------------------+bool ChartCommentSet(conststring str, constlong chart_ID=0)
{
//сбросим значение ошибкиResetLastError();
//установим значение свойстваif(!ChartSetString(chart_ID, CHART_COMMENT, str))
{
//выведем сообщение об ошибке в журнал "Эксперты"Print(__FUNCTION__+", Error Code = ", GetLastError());
return(false);
}
//успешное выполнениеreturn(true);
}
//+------------------------------------------------------------------+
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Renat, будет ли возможность в сервисе реализовывать кастомный стакан?
В документации говориться, что обработчик OnBookEvent вызывается в индикаторах и экспертах.
А как же сервисы? Как запустить стаканы в сервисе?
Хотелось бы иметь возможность запускать свои кастомные стаканы, в сервисе.
По вашим словам сервисы не поддерживают других обработчиков кроме OnStart, и это становиться проблемой.
Дело в том, что сервисы обрабатываются гораздо быстрее системного OnTimer в индикаторах и экспертах.
И для построения кастомных стаканов лучше использовать сервисы.
p.s.
Почитал ветку, удивлен что маститые програмеры не могут найти применение сервисам.
Сервисы это крутая штука, в которых можно реализовать многое чего, вплоть до асинхронного выполнения всего проекта, раскидав логику задач по сервисам.
Но более логичнее было бы лучше, добавить в язык функцию Thread(params), которая бы реализовывала распараллеливание потоков, для переданных аргументов в функции.
Ну а если будут потоки, то с ними рядом идут и процессы, в виде функции Process(params).
Одно из важных преимуществ, сервис обрабатывается быстрее системного времени, т.е. обрабатывается всего за 1мс, а возможно и меньше.
Так как я принудительно в цикле While() поставил ограничение Sleep(1).
А системный OnTimer() с событием EventSetMillisecondTimer(1), в экспертах и индикаторах обрабатывается за ~ 20мс.
Не хилый такой себе прирост в сервисах, по производительности обработки.
Печально, что в сервисе не поддерживаются обработчики экспертов, что сильно ограничивает в возможных решениях.
Как то давно пользователи просили реализовать запуск экспертов без графиков, сервисы как раз бы решали эту задачу.
Судя по кнопке "Автоматическая торговля" в меню сервиса, возможность торговли есть.
Но с одним обработчиком OnStart не построишь полноценное торговое решение.
Действительно, очень удобно.
Перезагрузил комп и забыл про RAMDrive. Запускаю MT5, а он сразу сообщает о проблеме.
А не проще исользовать RamDisk с функциями automount + junction + dynamic allocation?
При старте ПК автоматом все монтирует и линкует, а если на диске не достаточно места то и его самостоятельно добавит из оперативки.
А не проще исользовать RamDisk с функциями automount + junction + dynamic allocation?
При старте ПК автоматом все монтирует и линкует, а если на диске не достаточно места то и его самостоятельно добавит из оперативки.
Не всегда нужен, поэтому создание пи старте не делал.
При перезагрузке Терминал любит менять свойства кастомных символов. Например, его валюты.
Здесь могут прийти на выручку Сервисы. При запуске исправляют самовольное поведение Тестера.
Да и вообще, можно ли любую другую графику выводить?
Отвечаю сам себе ))
Отвечаю сам себе ))
да- всё пишет в левом верхнем углу
При перезагрузке Терминал любит менять свойства кастомных символов. Например, его валюты.
Здесь могут прийти на выручку Сервисы. При запуске исправляют самовольное поведение Тестера.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Пользовательские символы. Ошибки, баги, вопросы, предложения.
fxsaber, 2019.09.15 22:30
Решение проблемы автоматического изменения валют кастомного символа после перезагрузки Терминала.
Добавьте в сервисы возможность запуска автооптимизации советников.
Ну и функционал различный например чтобы можно было узнать что оптимизация\прогон завершен