Меню

YURAZ_Monitoring

  •    Автор:  TTraders
Автор: YURAZ 

Описание:
Скрипт предназначен для решения оперативных задач,
в основном поддержке связи при замирающих графиках при оборвавах связи
так же можно добавить вывод в безубыток любых ордеров например при 50п или 100п

скрипт логирует обрыв связи в интервале, кратковременные обрывы менее gSleep в не фиксируются.

extern int gSleep = 60000; // один раз в 60 секунд проверяем связь
 
Скрипт необходимо повесть на отдельный график, скрипт зацикленный, при перезагрузке МТ4, скрипт необходимо загрузить заново.
 
Код:
 
// (C) YURAZ_Monitoring 2009 
//
// Мониторинг связи и других событий
//
// Если вдруг связь оборвалась
// скрпипт  пытается проконектится по любому из доступных IP адресов
// что повышает надежность и вероятность коннекта возрастает
// т к у дилингов могут быть проблемы на определенном IP адресе ( сервере )
// но на другом все нормально работать
//
// путем несложной модификации можно к примеру еще выводить ордера в безубыток
// по любой паре
//

#define WM_COMMAND                     0x0111
#define MT4_COMMAND_SCAN_SERVER        37400


#import "user32.dll"
   int      SendMessageA(int hWnd,int Msg,int wParam,int lParam);
   int      GetAncestor(int hWnd, int gaFlags);
#import


extern int gSleep = 60000; // один раз в 60 секунд проверяем связь

static   int fConnect = 1;
static int fBeg = 0;

void init()
{
   if (  IsConnected( )  == false )
   {
      fConnect = 0;
   }
   else 
   {
      fConnect = 1;
   }
   Print(" Init ok ");
}

void start()
{

   if ( fBeg == 0 )
   {
    fBeg = 1;  
    //  тут сделаем черные дела при первом входе
    Print(" Start ok "); 
   }
   while ( true )
   {
       Sleep( gSleep );
       if (  IsConnected( )  == false )
       {
           if ( fConnect == 1 )
           {
              fConnect = 0;
              Comment ( "НЕТ СВЯЗИ ");
              Print("Нет связи "+TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES|TIME_SECONDS ) );
           }

           // пытаемся 
           int hMetaTrader = GetAncestor(WindowHandle(Symbol(),Period()),2);  // дескриптор основного окна терминала
           SendMessageA (hMetaTrader, WM_COMMAND, MT4_COMMAND_SCAN_SERVER , 0);                  // команда пересканировать все серверы
        
       }
       else
       {
           if ( fConnect == 0 )
           {
              fConnect = 1;
              Comment ( "СВЯЗЬ ЕСТЬ ");
              Print("связь есть "+TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES|TIME_SECONDS ) );
           }
       }
   }
}
 
Перейти вверх

Добавить комментарий


Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

C чего начать

Типы

Анализ

Обучение

Инвестиции

«Поделиться»

18+

обновить