← К каталогу
Исходный код · ID 3770

urdala_news_investing_com_5402521786908705332.mq5

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Индикатор для MetaTrader 5, предназначенный для отображения экономических новостей и событий на графике. Получает данные календаря экономических событий из интернет-источника через HTTP-запросы с использованием библиотеки WinInet, анализирует HTML-страницу и извлекает информацию о времени, валюте, важности и названии каждого события.

На графике рисует вертикальные линии в местах наступления новостных событий. Цвет и стиль линий зависят от уровня волатильности события (высокая, умеренная, низкая). Индикатор позволяет фильтровать события по валютным парам и по уровню значимости.

При включённой опции уведомлений индикатор отправляет Alert-сигнал, когда текущее время попадает в заданный интервал до и после ближайшего новостного события по выбранной валюте. Данные новостей обновляются с настраиваемым периодичностью.

Настройки программы

НастройкаОписание
MinDo Количество минут до наступления новостного события, в пределах которого индикатор фиксирует приближение события и активирует внутренний сигнал.
MinPosle Количество минут после новостного события, в пределах которого проверяется активность сигнала по событию.
offset Смещение часового пояса в часах, применяемое при преобразовании времени новостного события из строки в дату и время.
Vhigh Флаг отображения новостных событий с высоким уровнем волатильности и соответствующей цветовой маркировкой.
Vmedium Флаг отображения новостных событий с умеренным уровнем волатильности и соответствующей цветовой маркировкой.
Vlow Флаг отображения новостных событий с низким уровнем волатильности и соответствующей цветовой маркировкой.
NewsSymb Список валютных символов через запятую для фильтрации отображаемых новостей. Если параметр пуст, используется текущий символ графика.
RisovatLini Флаг включения/выключения отрисовки вертикальных линий на графике для каждого отфильтрованного новостного события.
Next Флаг отображения будущих (ещё не наступивших) новостных событий на графике в виде вертикальных линий.
Signal Флаг включения уведомлений в виде Alert при приближении текущего времени к новостному событию в заданном временном окне.
highc Цвет вертикальной линии для новостных событий с высокой волатильностью.
mediumc Цвет вертикальной линии для новостных событий с умеренной волатильностью.
lowc Цвет вертикальной линии для новостных событий с низкой волатильностью.
Style Стиль вертикальных линий событий на графике (целочисленное значение, соответствующее стилям линий MetaTrader).
Upd Интервал обновления данных новостей в секундах. Определяет, как часто индикатор скачивает актуальный календарь событий из интернета.
Получить полный код

Поиск по коду файла

/*??????? ? nalivator.com*/

#property description "????????? ?????????."
#property description "??????? ????? ? ????? "
#property description "?? ??????? ?? ????????. ?????????? ?????? ??????? ??????."
#property strict

#property indicator_chart_window
#property indicator_buffers 1

extern int   MinDo          = 30;         // ???????????? ????? ?? ???????     
extern int   MinPosle       = 30;         // ???????????? ????? ????? ???????
extern int   offset         = 3;          // ??????? ???? ???????
extern bool  Vhigh          = true;       // ?????????? ?????? ???????
extern bool  Vmedium        = true;       // ?????????? ??????? ???????
extern bool  Vlow           = true;       // ?????????? ?????? ??????? 
extern string NewsSymb      = "USD,EUR,GBP,CHF,CAD,AUD,NZD,JPY"; //?????? ??? ?????? ? ???????? (????? - ?????? ??????? ??????) 
extern bool  RisovatLini    = true;       // ???????? ????? ?? ???????
extern bool  Next           = false;      // ???????? ?????? ????? ??????? ????????  
extern bool  Signal         = false;      // ????????? ? ??????????? ???????
extern color highc          = clrRed;     // ???? ?????? ????????
extern color mediumc        = clrBlue;    // ???? ??????? ????????
extern color lowc           = clrLime;    // ???? ?????? ???????? 
extern int   Style          = 2;          // ????? ?????  
extern int   Upd            = 86400;      // ?????? ?????????? ???????? ? ????????

#import "wininet.dll"
int InternetAttemptConnect(int x);
int InternetOpenW(string sAgent,int lAccessType,
                  string sProxyName="",string sProxyBypass="",
                  int lFlags=0);
int InternetOpenUrlW(int hInternetSession,string sUrl,
                     string sHeaders="",int lHeadersLength=0,
                     int lFlags=0,int lContext=0);
int InternetReadFile(int hFile,int &sBuffer[],int lNumBytesToRead,
                     int &lNumberOfBytesRead[]);
int InternetCloseHandle(int hInet);
#import

double Torg[1];
int NomNews = 0;
string NewsArr[4][1000];

int Now=0;
color Col;
datetime LastUpd;
string str1;

int init()
  {
      // код доступен только после оплаты
   }

int deinit()
  {
   if(UninitializeReason() == REASON_REMOVE)ObjectsDeleteAll(0,OBJ_VLINE);
   if(UninitializeReason() == REASON_PARAMETERS)
      {
       for(int i=0;i<ObjectsTotal();i++)
         {
          string name = ObjectName(i);
          if(ObjectGet(name,OBJPROP_TYPE) == OBJ_VLINE && ObjectGet(name,OBJPROP_TIME) >= iTime(Symbol(),PERIOD_W1,0)){ObjectDelete(name);i--;}
         }
      }
   return(0);
  }

int start()
  {
      // код доступен только после оплаты
   }
   if(TimeCurrent()-LastUpd>=Upd){Comment("???????? ????????...");Print("???????? ????????...");UpdateNews();LastUpd=TimeCurrent();Comment("");}
   WindowRedraw();

   if(RisovatLini)
     {
      for(int i=0;i<NomNews;i++)
        {

         string Name = StringSubstr(TimeToStr(TimeNewsFunck(i),TIME_MINUTES)+"_"+NewsArr[1][i]+"_"+NewsArr[3][i],0,63);
         if(NewsArr[3][i]!="")if(ObjectFind(Name)==0)continue;
         if(StringFind(str1,NewsArr[1][i])<0)continue;
         if(TimeNewsFunck(i)<TimeCurrent() && Next)continue;

         color clrf = clrNONE;
         if(Vhigh &&   StringFind(NewsArr[2][i],"High")>=0    )clrf = highc;
         if(Vmedium && StringFind(NewsArr[2][i],"Moderate")>=0)clrf = mediumc;
         if(Vlow &&    StringFind(NewsArr[2][i],"Low")>=0     )clrf = lowc;

         if(clrf == clrNONE)continue;

         if(NewsArr[3][i]!="")
           {
            ObjectCreate(Name,0,OBJ_VLINE,TimeNewsFunck(i),0);
            ObjectSet(Name,OBJPROP_COLOR,clrf);
            ObjectSet(Name,OBJPROP_STYLE,Style);
           }
        }
     }

   int i;
   Torg[0]=0;
   for(i=0;i<NomNews;i++)
     {
      int power = 0;
      if(Vhigh &&   StringFind(NewsArr[2][i],"High")>=0     )power = 1;
      if(Vmedium && StringFind(NewsArr[2][i],"Moderate")>= 0)power = 2;
      if(Vlow &&    StringFind(NewsArr[2][i],"Low")>= 0     )power = 3;
      if(power == 0)continue;
      if(TimeCurrent()+MinDo*60>TimeNewsFunck(i) && TimeCurren

Показано первые 50% кода (символов: 6058)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
605,80₽ ≈ $7.40