IsConnected - собираем статистику подключения терминала к серверу ;)

 
Сегодня сделал простенький эксперто-скрипт, который записывает в файл время обрывов соединения с сервером.
Почему "эксперто-скрипт"? Потомо что это мог быть скрипт, но тогда его пришлось бы "вешать" на график при каждом запуске терминала. Поэтому я сделал его в форме эксперта, и он запускается сам =)

Файл статистики _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);
}
 
Сегодня сделал простенький эксперто-скрипт, который записывает в файл время обрывов соединения с сервером.
Почему "эксперто-скрипт"? Потомо что это мог быть скрипт, но тогда его пришлось бы "вешать" на график при каждом запуске терминала. Поэтому я сделал его в форме эксперта, и он запускается сам =)

Файл статистики _IsConnected.txt создаётся в папке .../MetaTrader 4/experts/files/logs и выглядит очень просто - разберётесь ;)


А совместно с другим работающим экспертом он, в смысле "эксперто-скрипт", нормально будет работать, в смысле сбоев у торгующего эксперта не будет? От чарта это ведь не зависит, вешать можно на любой график? А вообще это вещь нужная, у кого нет рекомендую. Благодарности komposter-у
 
Формально это - эксперт. Т.е. он на графике может работать только сам. Другого эксперта на график повесить нельзя.
Если не хочется добавлять ещё один открытый график, надо удалить из кода ф-цию init() и перенести его в директорию scripts - тогда (IsConnected) станет скриптом, и его можно будет цеплять в дополнение к эксперту.

НО тогда при каждом запуске терминала его (скрипт) придётся цеплять заново - как по мне, очень неудобно.
 
Формально это - эксперт. Т.е. он на графике может работать только сам. Другого эксперта на график повесить нельзя.
Если не хочется добавлять ещё один открытый график, надо удалить из кода ф-цию init() и перенести его в директорию scripts - тогда (IsConnected) станет скриптом, и его можно будет цеплять в дополнение к эксперту.

НО тогда при каждом запуске терминала его (скрипт) придётся цеплять заново - как по мне, очень неудобно.

understood
 
Обсуждения, обновления и вообще всё, что связанно с (IsConnected), переезжает
 
404. Страница не найдена!
Copyright © 2000–2005 MetaQuotes Software Corp. Авторские права защищены.
 
404. Страница не найдена!
Copyright © 2000–2005 MetaQuotes Software Corp. Авторские права защищены.
у меня открывается =)
это, наверное, потому, что код ещё не проверен модератором mql4.com - надо подождать ;)
Причина обращения: