//+------------------------------------------------------------------+
//| 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