Calendar_Investing_exp

Author: Vorese
Miscellaneous
Uses files from the file systemIt writes information to file
0 Views
0 Downloads
0 Favorites
Calendar_Investing_exp
//+------------------------------------------------------------------+
//|                                       Calendar_Investing_exp.mq4 |
//|                                                           Vorese |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Vorese"
#property link      "http://www.mql5.com"
#property version   "1.00"
#property strict
#property description "Íåîáõîäèìî äîáàâèòü àäðåñ ' http://ru.investing.com/economic-calendar/ '"
#property description "â ñïèñîê ðàçðåøåííûõ URL âî âêëàäêå ' Ñåðâèñ / Íàñòðîéêè / Ñîâåòíèêè '"
#property description "update - ïåðèîä îáíîâëåíèÿ â ñåê."
//===================================================================
input int update=10;
int file_size=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   EventSetTimer(update);

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
//---
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   bool tic=false;
   ResetLastError();
//===========óñëîâèÿ äëÿ çàãðóçêè ñòðàíèöû===========================
   if(file_size<100000) // åñëè ñòðàíèöà íå çàãðóæåíà èëè çàãðóæåíà íå ïîëíîñòüþ
     {   file_size=f_Calendar();tic=true;}

   if(Minute()==0 || Minute()==15 || Minute()==30 || Minute()==45) //êàæäûå 15 ìèíóò ,êðîìå âûõîäíûõ
     file_size=f_Calendar();

   if(GlobalVariableCheck("update") && !tic) // íàæàòà êíîïêà "îáíîâèòü" èíäèêàòîðà
     {
      file_size=f_Calendar();
         GlobalVariableDel("update");
     }
  }
//====================================================================
//====================================================================
int f_Calendar()
  {
   string cookie=NULL,headers;
   char post[],result[];
   int res=0;
   string investing_url="http://ru.investing.com/economic-calendar/";
//--- îáíóëÿåì êîä ïîñëåäíåé îøèáêè
   ResetLastError();
   res=WebRequest("GET",investing_url,cookie,NULL,50,post,0,result,headers);
//--- ïðîâåðêà îøèáîê
   if(res==-1)
     {
      Print("Îøèáêà â WebRequest. Êîä îøèáêè  =",GetLastError());
      //--- âîçìîæíî URL îòñóòñòâóåò â ñïèñêå, âûâîäèì ñîîáùåíèå î íåîáõîäèìîñòè åãî äîáàâëåíèÿ
      //   MessageBox("Íåîáõîäèìî äîáàâèòü àäðåñ '"+investing_url+"' â ñïèñîê ðàçðåøåííûõ URL âî âêëàäêå 'Ñîâåòíèêè'","Îøèáêà",MB_ICONINFORMATION);
     }
   else
     {
      if(ArraySize(result)>100000)
         PrintFormat("Ôàéë óñïåøíî çàãðóæåí, Ðàçìåð ôàéëà =%d áàéò.",ArraySize(result));//--- óñïåøíàÿ çàãðóçêà
      else
         PrintFormat("Ôàéë çàãðóæåí íå ïîëíîñòüþ, Ðàçìåð ôàéëà =%d áàéò.",ArraySize(result));
      //--- ñîõðàíÿåì äàííûå â ôàéë
      int filehandle=FileOpen("investing.html",FILE_WRITE|FILE_BIN);
      //--- ïðîâåðêà îøèáêè
      if(filehandle!=INVALID_HANDLE)
        {
         //--- ñîõðàíÿåì ñîäåðæèìîå ìàññèâà result[] â ôàéë
         FileWriteArray(filehandle,result,0,ArraySize(result));
         //--- çàêðûâàåì ôàéë
         FileClose(filehandle);
        }
      else Print("Îøèáêà â FileOpen. Êîä îøèáêè =",GetLastError());
     }
   return(ArraySize(result));
  }
//+------------------------------------------------------------------+

Comments