Сервисы на подобие скриптов, только работают в фоновом режиме и в бесконечном цикле.
Пишите в сервисе любую логику для вашего мониторинга, запускаете и забываете.
можно обойтись админским средствами
1. терминал пишет текстовые журналы. Софта который умеет читать журналы и выдавать оповещения по заданным шаблонам - воз и маленькая тележка. Вы просто не задавались таким вопросом.
2. о проблемах на самом VDS сообщает провайдер. У них у всех можно настроить оповещения. Если хостер убог (перепродажник) и у него нет такого, то существуют внешние мониторинговые сервисы.
А можно где то посмотреть список всех ошибок которые может генерировать терминал?
В документации описаны все ошибки.
https://www.mql5.com/ru/docs/constants/errorswarnings/enum_trade_return_codes
- www.mql5.com
Можно поподробнее про эти сервисы в MT5
В документации есть краткое описание.
Краткое, потому что тот же принцип как и скриптов, не чего сложного в понимании.
- www.mql5.com
Без внешнего сервера, принимающего особый прикладной пинг от терминала (самописный, например на MQL сокетах или webrequest-е), данную задачу не решить.
Сервисы, которые в папке MQL/Services, сами по себе ничем не помогут (это очень ограниченная вещь, не способная нормально общаться с другими MQL-программами и чартами).
Журналы терминал кеширует в памяти, так что в файл они сбрасываются с ооочень большим запаздыванием, и тоже оперативно отловить неполадку не дадут.
Журналы терминал кеширует в памяти, так что в файл они сбрасываются с ооочень большим запаздыванием, и тоже оперативно отловить неполадку не дадут.
Журнал можно читать с помощью Win API.
Без внешнего сервера, принимающего особый прикладной пинг от терминала (самописный, например на MQL сокетах или webrequest-е), данную задачу не решить.
А зачем костылить свой пинг понг? Когда можно обойтись штатными средствами.
Вот написал, по быстрому особо не вникая.
Попробуйте сымитировать потерю связи, отрубив интернет.
void OnStart() { bool isConnected = false; bool state = false; while(!_StopFlag) { isConnected = TerminalInfoInteger(TERMINAL_CONNECTED) ? true : false; if(isConnected && !state) { state = true; Print("Terminal Connected to ServerMT5: "+(string)TimeGMT()+" GMT"); //Заменяем на SendMail() } else if(!isConnected && state) { state = false; Print("Terminal Disconnected to ServerMT5: "+(string)TimeGMT()+" GMT"); //Заменяем на SendMail() } Sleep(5000); } } Написал и понял что тупанул. Интернета нет, какой SendMail? :)) Но если это обрыв с сервером а инет есть, то работать будет. На VPS нет проблем с инетом, проблема скорее будет в отвале сервера, так что покатит.
Сервисы, которые в папке MQL/Services, сами по себе ничем не помогут (это очень ограниченная вещь, не способная нормально общаться с другими MQL-программами и чартами).
Насчёт общения с другими mql-программами, это не так. Куча инструментов для этого есть.
export функции, глобальные переменные, умудряются ресурсы заюзать, mmf файлы, и другая экзотика в достатке.
Насчёт чартов, тут согласен есть затыки. Но возможно из-за того что не придумали как решить это.
Коммент на чарт передаёт, значит с чартом работать можно. Просто уж тяжко без официальной документации, и примеров.
Но пока такая задача не стояла, по этому сильно не вникал в работу с чартами.
bool ChartCommentSet(const string str, const long chart_ID=0) { //сбросим значение ошибки ResetLastError(); //установим значение свойства if(!ChartSetString(chart_ID, CHART_COMMENT, str)) { //выведем сообщение об ошибке в журнал "Эксперты" Print(__FUNCTION__+", Error Code = ", GetLastError()); return(false); } ChartRedraw(chart_ID); return(true); } //------------------------------------------------------------------ void OnStart() { ChartCommentSet("Hello Service", ChartFirst()); Sleep(15000); ChartCommentSet("", ChartFirst()); }
Журналы терминал кеширует в памяти, так что в файл они сбрасываются с ооочень большим запаздыванием, и тоже оперативно отловить неполадку не дадут.
С журналами даже не знаю с чем едят их. Но как Сергей написал выше с WinAPI решается.
Если бы он показал конкретные примеры, было бы очень полезно.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Поясню: на терминале работает автоматический торговый советник, мне надо как то мониторить ситуации когда терминал например теряет соединение с брокером, или при выставление ордера возникает ошибка, или вообще когда в терминале возникает нештатная ситуация — что бы мне на почту приходило сообщение.
Что рассматривается:
Что НЕ рассматривается: