Сегодня сделал простенький эксперто-скрипт, который записывает в файл время обрывов соединения с сервером.
Почему "эксперто-скрипт"? Потомо что это мог быть скрипт, но тогда его пришлось бы "вешать" на график при каждом запуске терминала. Поэтому я сделал его в форме эксперта, и он запускается сам =)
Файл статистики _IsConnected.txt создаётся в папке .../MetaTrader 4/experts/files/logs и выглядит очень просто - разберётесь ;)
Почему "эксперто-скрипт"? Потомо что это мог быть скрипт, но тогда его пришлось бы "вешать" на график при каждом запуске терминала. Поэтому я сделал его в форме эксперта, и он запускается сам =)
Файл статистики _IsConnected.txt создаётся в папке .../MetaTrader 4/experts/files/logs и выглядит очень просто - разберётесь ;)
А совместно с другим работающим экспертом он, в смысле "эксперто-скрипт", нормально будет работать, в смысле сбоев у торгующего эксперта не будет? От чарта это ведь не зависит, вешать можно на любой график? А вообще это вещь нужная, у кого нет рекомендую. Благодарности komposter-у
Формально это - эксперт. Т.е. он на графике может работать только сам. Другого эксперта на график повесить нельзя.
Если не хочется добавлять ещё один открытый график, надо удалить из кода ф-цию init() и перенести его в директорию scripts - тогда (IsConnected) станет скриптом, и его можно будет цеплять в дополнение к эксперту.
НО тогда при каждом запуске терминала его (скрипт) придётся цеплять заново - как по мне, очень неудобно.
Если не хочется добавлять ещё один открытый график, надо удалить из кода ф-цию init() и перенести его в директорию scripts - тогда (IsConnected) станет скриптом, и его можно будет цеплять в дополнение к эксперту.
НО тогда при каждом запуске терминала его (скрипт) придётся цеплять заново - как по мне, очень неудобно.
Формально это - эксперт. Т.е. он на графике может работать только сам. Другого эксперта на график повесить нельзя.
Если не хочется добавлять ещё один открытый график, надо удалить из кода ф-цию init() и перенести его в директорию scripts - тогда (IsConnected) станет скриптом, и его можно будет цеплять в дополнение к эксперту.
НО тогда при каждом запуске терминала его (скрипт) придётся цеплять заново - как по мне, очень неудобно.
Если не хочется добавлять ещё один открытый график, надо удалить из кода ф-цию init() и перенести его в директорию scripts - тогда (IsConnected) станет скриптом, и его можно будет цеплять в дополнение к эксперту.
НО тогда при каждом запуске терминала его (скрипт) придётся цеплять заново - как по мне, очень неудобно.
understood
Обсуждения, обновления и вообще всё, что связанно с (IsConnected), переезжает
404. Страница не найдена!
Copyright © 2000–2005 MetaQuotes Software Corp. Авторские права защищены.
Copyright © 2000–2005 MetaQuotes Software Corp. Авторские права защищены.
404. Страница не найдена!
Copyright © 2000–2005 MetaQuotes Software Corp. Авторские права защищены.
у меня открывается =)Copyright © 2000–2005 MetaQuotes Software Corp. Авторские права защищены.
это, наверное, потому, что код ещё не проверен модератором mql4.com - надо подождать ;)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Почему "эксперто-скрипт"? Потомо что это мог быть скрипт, но тогда его пришлось бы "вешать" на график при каждом запуске терминала. Поэтому я сделал его в форме эксперта, и он запускается сам =)
Файл статистики _IsConnected.txt создаётся в папке .../MetaTrader 4/experts/files/logs и выглядит очень просто - разберётесь ;)
//+------------------------------------------------------------------+ //| (IsConnected).mq4 | //| Copyright © 2005, komposter | //| mailto:komposterius@mail.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, komposter" #property link "mailto:komposterius@mail.ru" bool first = true; bool Now_IsConnected = false; bool Pre_IsConnected = true; datetime Connect_Start = 0, Connect_Stop = 0; int init() { start(); return(0); } int start() { int handle = FileOpen( "logs\_IsConnected.txt", FILE_WRITE | FILE_READ, " " ); FileSeek( handle, 0, SEEK_END ); FileWrite( handle, "- - - - - - - - - - - Expert initialized - - - - - - - - - -" ); while ( !IsStopped() ) { Pre_IsConnected = Now_IsConnected; Now_IsConnected = IsConnected(); if ( first ) { Pre_IsConnected = !Now_IsConnected; } if ( Now_IsConnected != Pre_IsConnected ) { if ( Now_IsConnected ) { Connect_Start = LocalTime(); if ( !first ) { FileSeek( handle, -55, SEEK_CUR ); FileWrite( handle, "- - - OffLine- - - " + TimeToStr( Connect_Stop, TIME_DATE ) + " " + TimeToStr( Connect_Stop, TIME_SECONDS ) + " - " + TimeToStr( Connect_Start, TIME_SECONDS ) ); } if ( IsStopped() ) { break; } FileWrite( handle, "+ + + OnLine + + + " + TimeToStr( Connect_Start, TIME_DATE ) + " " + TimeToStr( Connect_Start, TIME_SECONDS ) + " - " ); } else { Connect_Stop = LocalTime(); if ( !first ) { FileSeek( handle, -55, SEEK_CUR ); FileWrite( handle, "+ + + OnLine + + + " + TimeToStr( Connect_Start, TIME_DATE ) + " " + TimeToStr( Connect_Start, TIME_SECONDS ) + " - " + TimeToStr( Connect_Stop, TIME_SECONDS ) ); } if ( IsStopped() ) { break; } FileWrite( handle, "- - - OffLine- - - " + TimeToStr( Connect_Stop, TIME_DATE ) + " " + TimeToStr( Connect_Stop, TIME_SECONDS ) + " - " ); } } first = false; FileFlush( handle ); Sleep(1000); } if ( Now_IsConnected ) { FileSeek( handle, -55, SEEK_CUR ); FileWrite( handle, "+ + + OnLine + + + " + TimeToStr( Connect_Start, TIME_DATE ) + " " + TimeToStr( Connect_Start, TIME_SECONDS ) + " - " + TimeToStr( LocalTime(), TIME_SECONDS ) ); } else { FileSeek( handle, -55, SEEK_CUR ); FileWrite( handle, "- - - OffLine- - - " + TimeToStr( Connect_Stop, TIME_DATE ) + " " + TimeToStr( Connect_Stop, TIME_SECONDS ) + " - " + TimeToStr( LocalTime(), TIME_SECONDS ) ); } FileWrite( handle, "- - - - - - - - - - - Expert was stoped - - - - - - - - - - -\n" ); FileClose( handle ); return(0); }