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

urdala_news_investing_com.mq5

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

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

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

О программе

Индикатор отображает вертикальные линии на графике в соответствии с экономическими новостями, загружаемыми из интернет-источника. Он анализирует важность событий (высокая, средняя, низкая) и привязывает их к валютным парам, отображая линии нужного цвета и стиля на таймшарте.

Индикатор рассчитывает буферное значение, которое становится равно единице, когда текущее время попадает в заданный интервал до или после ближайшего новостного события. Это позволяет визуально и программно отслеживать приближение значимых макроэкономических публикаций.

Данные о новостях обновляются с заданным периодичностью. При включённой опции уведомлений пользователь получает алерты о приближении событий. Параметры фильтрации по валютным парам и уровню важности позволяют настраивать отображение под конкретные задачи.

Время событий корректируется смещением часового пояса. Индикатор работает в окне графика, использует один буфер и поддерживает удаление объектов при деинициализации.

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

НастройкаОписание
MinDo Время в минутах до новостного события, в течение которого буфер индикатора устанавливается в 1.
MinPosle Время в минутах после новостного события, в течение которого буфер индикатора устанавливается в 1.
offset Смещение часового пояса в часах, добавляемое к рассчитанному времени новостного события.
Vhigh Отображать новостные события с высоким уровнем важности.
Vmedium Отображать новостные события со средним уровнем важности.
Vlow Отображать новостные события с низким уровнем важности.
NewsSymb Список валютных символов через запятую для фильтрации новостей. Если пусто, используется текущий символ инструмента.
RisovatLini Включает или отключает отрисовку вертикальных линий для новостных событий на графике.
Next При включении отображаются и прошедшие новостные события на графике.
Signal При включении отправляется уведомление-оповещение при приближении значимого новостного события.
highc Цвет линий для новостных событий с высоким уровнем важности.
mediumc Цвет линий для новостных событий со средним уровнем важности.
lowc Цвет линий для новостных событий с низким уровнем важности.
Style Стиль линий вертикальных объектов на графике.
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