(IsConnected)





//+------------------------------------------------------------------+
//|                                                (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( "_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);
}



Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features:

Uses files from the file system

It writes information to file