awo Holidays





//+------------------------------------------------------------------+
//|                                                 awo Holidays.mq4 |
//|                                                              AWo |
//|                                                     a-wo@mail.ru |
//+------------------------------------------------------------------+
#property copyright "AWo"
#property link      "a-wo@mail.ru"

extern int Numbers_of_Lines=3;
extern bool Del_Lines_If_Deinit=true;
extern string FileName="holidays.csv";
extern color clrWork=LightBlue;
extern color clrWE=Blue;
extern color clrHLD=DarkOrange;

int tm24h=86400, tm1h=3600;

//+------------------------------------------------------------------+
//| Ô ÄÀÒÀ ÄÍß, poz - ïîçèöèÿ äíÿ >0 â ïðîøëîì, <0 â áóäóùåì, ( -2 - ïîñëåçàâòðà, 1 - â÷åðà )
//+------------------------------------------------------------------+
datetime Data( int poz ) { return ( TimeCurrent( )-tm24h*poz ); }
string DataString( int poz ) { return ( TimeToStr(Data(poz),TIME_DATE) ); }

   
//+------------------------------------------------------------------+
//| Ô Âûõîäíûå, poz - ïîçèöèÿ äíÿ >0 â ïðîøëîì, <0 â áóäóùåì, ( -2 - ïîñëåçàâòðà, 1 - â÷åðà )
//+------------------------------------------------------------------+

string isWeekEnd( int poz )
      {
      int N; string DOW;
       N=TimeDayOfWeek(Data(poz));
   if( N==0 ) DOW="sunday";
   if( N==1 || N==2 || N==3 || N==4 || N==5 ) DOW="workday";
   if( N==6 ) DOW="saturday";
      return(DOW);
      }

//+------------------------------------------------------------------+
//| Ô CÒÀÒÓÑ ÄÍß, poz - ïîçèöèÿ äíÿ >0 â ïðîøëîì, <0 â áóäóùåì, ( -2 - ïîñëåçàâòðà, 1 - â÷åðà )
//+------------------------------------------------------------------+

string isFiesta( int poz )
      {
   string sDT, sCountry, sSymb, sHoliday, tomorrow="";
   int handle= FileOpen(FileName,FILE_CSV|FILE_READ,';');

   while (FileIsEnding(handle)==false)
            {
         sDT=        FileReadString(handle,0);
         sCountry=   FileReadString(handle,0);
         sSymb=      FileReadString(handle,0);
         sHoliday=   FileReadString(handle,0);

         if (sDT==DataString(poz) && StringFind(Symbol(),sSymb,0)!=-1) break;
            }
               FileClose(handle) ;
      if (sDT==DataString(poz)) tomorrow = sHoliday+" in "+sCountry;
      return (tomorrow);
      }



//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

void start()
  {
  
   string nmSwapLine="SWAP "+DataString(-1)+" "+isWeekEnd(-1)+" "+isFiesta(-1);
   string nmDayLine="DAY "+DataString(-1)+" "+isWeekEnd(-1)+" "+isFiesta(-1);

   ObjectCreate(nmSwapLine,OBJ_TREND,0,TimeCurrent( )+tm24h-tm1h*3,WindowPriceMax(),TimeCurrent( )+tm24h-tm1h*3,WindowPriceMin(),0,0);
   ObjectCreate(nmDayLine,OBJ_TREND,0,TimeCurrent( )+tm24h,WindowPriceMax(),TimeCurrent( )+tm24h,WindowPriceMin(),0,0);

                                    ObjectSet(nmSwapLine,OBJPROP_WIDTH,2);
                                    ObjectSet(nmSwapLine,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1|OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1|OBJ_PERIOD_H4);
   if ( isWeekEnd(-1)=="workday" )  ObjectSet(nmSwapLine,OBJPROP_COLOR,clrWork);
   else                             ObjectSet(nmSwapLine,OBJPROP_COLOR,clrWE);
   if ( isFiesta(-1)!="" )          ObjectSet(nmSwapLine,OBJPROP_COLOR,clrHLD);

                                    ObjectSet(nmDayLine,OBJPROP_STYLE,STYLE_DOT);
                                    ObjectSet(nmDayLine,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1|OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1);
   if ( isWeekEnd(-1)=="workday" )  ObjectSet(nmDayLine,OBJPROP_COLOR,clrWork);
   else                             ObjectSet(nmDayLine,OBJPROP_COLOR,clrWE);
   if ( isFiesta(-1)!="" )          ObjectSet(nmDayLine,OBJPROP_COLOR,clrHLD);


    
  Comment( "\n","Â÷åðà      ",        isWeekEnd(1)+  " ("+isFiesta(1)+ ")",
           "\n","Ñåãîäíÿ   ",      isWeekEnd(0)+  " ("+isFiesta(0)+ ")",
           "\n","Çàâòðà     ",       isWeekEnd(-1)+ " ("+isFiesta(-1)+")",
           "\n","ïÇàâòðà    ",      isWeekEnd(-2)+ " ("+isFiesta(-2)+")",
           "\n","ïïÇàâòðà   ",     isWeekEnd(-3)+ " ("+isFiesta(-3)+")"    );

  }

void deinit() {   if ( Del_Lines_If_Deinit==true ) ObjectsDeleteAll(0,OBJ_TREND);  }
      





Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features:

Uses files from the file system

It reads information from a file