//+------------------------------------------------------------------+
//|                                        FGB-ScotLowry (ALERT).mq4 |
//|                                                        fabgonber |
//|                                             http://www.ignora.cl |
//+------------------------------------------------------------------+
#property copyright "fabgonber"
#property link      "http://www.ignora.cl"

#property indicator_separate_window
extern int nMonedas = 6;
extern string strMoneda1 = "EURUSD";
extern string strMoneda2 = "USDJPY";
extern string strMoneda3 = "GBPUSD";
extern string strMoneda4 = "USDCHF";
extern string strMoneda5 = "AUDUSD";
extern string strMoneda6 = "USDCAD";
extern string strMoneda7 = "USDCLP";
//extern string strMoneda8 = "USDMXN";
extern int mediaCorta = 4;
extern int mediaMediana = 14;
extern int mediaLarga = 40;

double emaC, emaM, emaL;
int ok=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorShortName("FGB-ScotLowry (ALERT)");
   double ema4, ema14, ema40;
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   ObjectsDeleteAll(0,OBJ_LABEL);

   ObjectDelete("Moneda1");
   ObjectDelete("Moneda1-M1");
   ObjectDelete("Moneda1-M5");
   ObjectDelete("Moneda1-M15");
   ObjectDelete("Moneda1-M30");
   ObjectDelete("Moneda1-H1");
   ObjectDelete("Moneda1-H4");
   ObjectDelete("Moneda1-D1");
   ObjectDelete("Moneda1-W1");


   ObjectDelete("Moneda2");
   ObjectDelete("Moneda2-M1");
   ObjectDelete("Moneda2-M5");
   ObjectDelete("Moneda2-M15");
   ObjectDelete("Moneda2-M30");
   ObjectDelete("Moneda2-H1");
   ObjectDelete("Moneda2-H4");
   ObjectDelete("Moneda2-D1");
   ObjectDelete("Moneda2-W1");

   ObjectDelete("Moneda3");
   ObjectDelete("Moneda3-M1");
   ObjectDelete("Moneda3-M5");
   ObjectDelete("Moneda3-M15");
   ObjectDelete("Moneda3-M30");
   ObjectDelete("Moneda3-H1");
   ObjectDelete("Moneda3-H4");
   ObjectDelete("Moneda3-D1");
   ObjectDelete("Moneda3-W1");

   ObjectDelete("Moneda4");
   ObjectDelete("Moneda4-M1");
   ObjectDelete("Moneda4-M5");
   ObjectDelete("Moneda4-M15");
   ObjectDelete("Moneda4-M30");
   ObjectDelete("Moneda4-H1");
   ObjectDelete("Moneda4-H4");
   ObjectDelete("Moneda4-D1");
   ObjectDelete("Moneda4-W1");


   ObjectDelete("Moneda5");
   ObjectDelete("Moneda5-M1");
   ObjectDelete("Moneda5-M5");
   ObjectDelete("Moneda5-M15");
   ObjectDelete("Moneda5-M30");
   ObjectDelete("Moneda5-H1");
   ObjectDelete("Moneda5-H4");
   ObjectDelete("Moneda5-D1");
   ObjectDelete("Moneda5-W1");


   ObjectDelete("Moneda6");
   ObjectDelete("Moneda6-M1");
   ObjectDelete("Moneda6-M5");
   ObjectDelete("Moneda6-M15");
   ObjectDelete("Moneda6-M30");
   ObjectDelete("Moneda6-H1");
   ObjectDelete("Moneda6-H4");
   ObjectDelete("Moneda6-D1");
   ObjectDelete("Moneda6-W1");


   ObjectDelete("Moneda7");
   ObjectDelete("Moneda7-M1");
   ObjectDelete("Moneda7-M5");
   ObjectDelete("Moneda7-M15");
   ObjectDelete("Moneda7-M30");
   ObjectDelete("Moneda7-H1");
   ObjectDelete("Moneda7-H4");
   ObjectDelete("Moneda7-D1");
   ObjectDelete("Moneda7-W1");


   ObjectDelete("Moneda8");
   ObjectDelete("Moneda8-M1");
   ObjectDelete("Moneda8-M5");
   ObjectDelete("Moneda8-M15");
   ObjectDelete("Moneda8-M30");
   ObjectDelete("Moneda8-H1");
   ObjectDelete("Moneda8-H4");
   ObjectDelete("Moneda8-D1");
   ObjectDelete("Moneda8-W1");


//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start(){
   
   int horizontal, vertical;

     // *****************************
     //     PRIMERA FILA
     //
     // *****************************

if (nMonedas>=1) bloqueMoneda("Moneda1",strMoneda1,0,0);
if (nMonedas>=2) bloqueMoneda("Moneda2",strMoneda2,220,0);
if (nMonedas>=3) bloqueMoneda("Moneda3",strMoneda3,440,0);
if (nMonedas>=4) bloqueMoneda("Moneda4",strMoneda4,660,0);
     //     SEGUNDA FILA
if (nMonedas>=5) bloqueMoneda("Moneda5",strMoneda5,0,15);
if (nMonedas>=6) bloqueMoneda("Moneda6",strMoneda6,220,15);
if (nMonedas>=7) bloqueMoneda("Moneda7",strMoneda7,440,15);

//----
   return(0);
  }
int cargarMedias(string strMoneda,string periodo,int barra){
   emaC = iMA(strMoneda,periodo,mediaCorta,0,MODE_EMA,PRICE_CLOSE,barra);
   emaM = iMA(strMoneda,periodo,mediaMediana,0,MODE_EMA,PRICE_CLOSE,barra);
   emaL = iMA(strMoneda,periodo,mediaLarga,0,MODE_EMA,PRICE_CLOSE,barra);
   ok = 0;
   return(0);
} 
int bloqueMoneda(string nameObj,string strMoneda,int horizontal,int vertical){
   string nameObjM1  = StringConcatenate(nameObj,"-M1");
   string nameObjM5  = StringConcatenate(nameObj,"-M5");
   string nameObjM15 = StringConcatenate(nameObj,"-M15");
   string nameObjM30 = StringConcatenate(nameObj,"-M30");
   string nameObjH1  = StringConcatenate(nameObj,"-H1");
   string nameObjH4  = StringConcatenate(nameObj,"-H4");
   string nameObjD1  = StringConcatenate(nameObj,"-D1");
   string nameObjW1  = StringConcatenate(nameObj,"-W1");
   
     ObjectCreate(nameObj, OBJ_LABEL, WindowFind("FGB-ScotLowry (ALERT)"), 0, 0);
     ObjectSetText(nameObj,strMoneda, 8, "Arial Bold", LightSteelBlue);
     ObjectSet(nameObj, OBJPROP_CORNER, 0);
     ObjectSet(nameObj, OBJPROP_XDISTANCE, 5+horizontal);
     ObjectSet(nameObj, OBJPROP_YDISTANCE, 15+vertical);
     cargarMedias(strMoneda,PERIOD_M1,1);
             
     ObjectCreate(nameObjM1, OBJ_LABEL, WindowFind("FGB-ScotLowry (ALERT)"), 0, 0);
     if ((emaC>emaM)&&(emaC>emaL))
     {
            ObjectSetText(nameObjM1,"M1", 8, "Arial Bold", Blue);
            ok = 1;          
     } 
     if ((emaC<emaM)&&(emaC<emaL))
     {
            ObjectSetText(nameObjM1,"M1", 8, "Arial Bold", Red);
            ok = 1;          
     } 
     if (ok==0){
            emaC = iMA(strMoneda,PERIOD_M1,mediaCorta,0,MODE_EMA,PRICE_CLOSE,0);
            emaM = iMA(strMoneda,PERIOD_M1,mediaMediana,0,MODE_EMA,PRICE_CLOSE,0);
            emaL = iMA(strMoneda,PERIOD_M1,mediaLarga,0,MODE_EMA,PRICE_CLOSE,0);
            if (((emaC<emaM)&&(emaC<emaL))||((emaC>emaM)&&(emaC>emaL))){
               ObjectSetText(nameObjM1,"M1*", 8, "Arial Bold", Yellow);
            } else {
               ObjectSetText(nameObjM1,"M1", 8, "Arial Bold", Yellow);
            }
     } 
            ObjectSet(nameObjM1, OBJPROP_CORNER, 0);
            ObjectSet(nameObjM1, OBJPROP_XDISTANCE, 55+horizontal);
            ObjectSet(nameObjM1, OBJPROP_YDISTANCE, 15+vertical);

   
     emaC = iMA(strMoneda,PERIOD_M5,mediaCorta,0,MODE_EMA,PRICE_CLOSE,1);
     emaM = iMA(strMoneda,PERIOD_M5,mediaMediana,0,MODE_EMA,PRICE_CLOSE,1);
     emaL = iMA(strMoneda,PERIOD_M5,mediaLarga,0,MODE_EMA,PRICE_CLOSE,1);
     ok = 0;          
     ObjectCreate(nameObjM5, OBJ_LABEL, WindowFind("FGB-ScotLowry (ALERT)"), 0, 0);
     if ((emaC>emaM)&&(emaC>emaL))
     {
            ObjectSetText(nameObjM5,"M5", 8, "Arial Bold", Blue);
            ok = 1;          
     } 
     if ((emaC<emaM)&&(emaC<emaL))
     {
            ObjectSetText(nameObjM5,"M5", 8, "Arial Bold", Red);
            ok = 1;          
     } 
     if (ok==0)
     {
            emaC = iMA(strMoneda,PERIOD_M5,mediaCorta,0,MODE_EMA,PRICE_CLOSE,0);
            emaM = iMA(strMoneda,PERIOD_M5,mediaMediana,0,MODE_EMA,PRICE_CLOSE,0);
            emaL = iMA(strMoneda,PERIOD_M5,mediaLarga,0,MODE_EMA,PRICE_CLOSE,0);
            if (((emaC<emaM)&&(emaC<emaL))||((emaC>emaM)&&(emaC>emaL))){
               ObjectSetText(nameObjM5,"M5*", 8, "Arial Bold", Yellow);
            } else { ObjectSetText(nameObjM5,"M5", 8, "Arial Bold", Yellow); }
     } 
            ObjectSet(nameObjM5, OBJPROP_CORNER, 0);
            ObjectSet(nameObjM5, OBJPROP_XDISTANCE, 75+horizontal);
            ObjectSet(nameObjM5, OBJPROP_YDISTANCE, 15+vertical);

   
     emaC = iMA(strMoneda,PERIOD_M15,mediaCorta,0,MODE_EMA,PRICE_CLOSE,1);
     emaM = iMA(strMoneda,PERIOD_M15,mediaMediana,0,MODE_EMA,PRICE_CLOSE,1);
     emaL = iMA(strMoneda,PERIOD_M15,mediaLarga,0,MODE_EMA,PRICE_CLOSE,1);
     ok = 0;          
     ObjectCreate(nameObjM15, OBJ_LABEL, WindowFind("FGB-ScotLowry (ALERT)"), 0, 0);
     if ((emaC>emaM)&&(emaC>emaL))
     {
            ObjectSetText(nameObjM15,"M15", 8, "Arial Bold", Blue);
            ok = 1;          
     } 
     if ((emaC<emaM)&&(emaC<emaL))
     {
            ObjectSetText(nameObjM15,"M15", 8, "Arial Bold", Red);
            ok = 1;          
     } 
     if (ok==0)
     {
            emaC = iMA(strMoneda,PERIOD_M15,mediaCorta,0,MODE_EMA,PRICE_CLOSE,0);
            emaM = iMA(strMoneda,PERIOD_M15,mediaMediana,0,MODE_EMA,PRICE_CLOSE,0);
            emaL = iMA(strMoneda,PERIOD_M15,mediaLarga,0,MODE_EMA,PRICE_CLOSE,0);
            if (((emaC<emaM)&&(emaC<emaL))||((emaC>emaM)&&(emaC>emaL))){
               ObjectSetText(nameObjM15,"M15*", 8, "Arial Bold", Yellow);
            } else { ObjectSetText(nameObjM15,"M15", 8, "Arial Bold", Yellow); }
     } 
            ObjectSet(nameObjM15, OBJPROP_CORNER, 0);
            ObjectSet(nameObjM15, OBJPROP_XDISTANCE, 95+horizontal);
            ObjectSet(nameObjM15, OBJPROP_YDISTANCE, 15+vertical);

   
     emaC = iMA(strMoneda,PERIOD_M30,mediaCorta,0,MODE_EMA,PRICE_CLOSE,1);
     emaM = iMA(strMoneda,PERIOD_M30,mediaMediana,0,MODE_EMA,PRICE_CLOSE,1);
     emaL = iMA(strMoneda,PERIOD_M30,mediaLarga,0,MODE_EMA,PRICE_CLOSE,1);
     ok = 0;          
     ObjectCreate(nameObjM30, OBJ_LABEL, WindowFind("FGB-ScotLowry (ALERT)"), 0, 0);
     if ((emaC>emaM)&&(emaC>emaL))
     {
            ObjectSetText(nameObjM30,"M30", 8, "Arial Bold", Blue);
            ok = 1;          
     } 
     if ((emaC<emaM)&&(emaC<emaL))
     {
            ObjectSetText(nameObjM30,"M30", 8, "Arial Bold", Red);
            ok = 1;          
     } 
     if (ok==0)
     {
            emaC = iMA(strMoneda,PERIOD_M30,mediaCorta,0,MODE_EMA,PRICE_CLOSE,0);
            emaM = iMA(strMoneda,PERIOD_M30,mediaMediana,0,MODE_EMA,PRICE_CLOSE,0);
            emaL = iMA(strMoneda,PERIOD_M30,mediaLarga,0,MODE_EMA,PRICE_CLOSE,0);
            if (((emaC<emaM)&&(emaC<emaL))||((emaC>emaM)&&(emaC>emaL))){
               ObjectSetText(nameObjM30,"M30*", 8, "Arial Bold", Yellow);
            } else {
               ObjectSetText(nameObjM30,"M30", 8, "Arial Bold", Yellow);
            }
     } 
            ObjectSet(nameObjM30, OBJPROP_CORNER, 0);
            ObjectSet(nameObjM30, OBJPROP_XDISTANCE, 120+horizontal);
            ObjectSet(nameObjM30, OBJPROP_YDISTANCE, 15+vertical);

   
     emaC = iMA(strMoneda,PERIOD_H1,mediaCorta,0,MODE_EMA,PRICE_CLOSE,1);
     emaM = iMA(strMoneda,PERIOD_H1,mediaMediana,0,MODE_EMA,PRICE_CLOSE,1);
     emaL = iMA(strMoneda,PERIOD_H1,mediaLarga,0,MODE_EMA,PRICE_CLOSE,1);
     ok = 0;          
     ObjectCreate(nameObjH1, OBJ_LABEL, WindowFind("FGB-ScotLowry (ALERT)"), 0, 0);
     if ((emaC>emaM)&&(emaC>emaL))
     {
            ObjectSetText(nameObjH1,"H1", 8, "Arial Bold", Blue);
            ok = 1;          
     } 
     if ((emaC<emaM)&&(emaC<emaL))
     {
            ObjectSetText(nameObjH1,"H1", 8, "Arial Bold", Red);
            ok = 1;          
     } 
     if (ok==0)
     {
            emaC = iMA(strMoneda,PERIOD_H1,mediaCorta,0,MODE_EMA,PRICE_CLOSE,0);
            emaM = iMA(strMoneda,PERIOD_H1,mediaMediana,0,MODE_EMA,PRICE_CLOSE,0);
            emaL = iMA(strMoneda,PERIOD_H1,mediaLarga,0,MODE_EMA,PRICE_CLOSE,0);
            if (((emaC<emaM)&&(emaC<emaL))||((emaC>emaM)&&(emaC>emaL))){
               ObjectSetText(nameObjH1,"H1*", 8, "Arial Bold", Yellow);
            } else {
               ObjectSetText(nameObjH1,"H1", 8, "Arial Bold", Yellow);
            }
     } 
            ObjectSet(nameObjH1, OBJPROP_CORNER, 0);
            ObjectSet(nameObjH1, OBJPROP_XDISTANCE, 145+horizontal);
            ObjectSet(nameObjH1, OBJPROP_YDISTANCE, 15+vertical);

   
     emaC = iMA(strMoneda,PERIOD_H4,mediaCorta,0,MODE_EMA,PRICE_CLOSE,1);
     emaM = iMA(strMoneda,PERIOD_H4,mediaMediana,0,MODE_EMA,PRICE_CLOSE,1);
     emaL = iMA(strMoneda,PERIOD_H4,mediaLarga,0,MODE_EMA,PRICE_CLOSE,1);
     ok = 0;          
     ObjectCreate(nameObjH4, OBJ_LABEL, WindowFind("FGB-ScotLowry (ALERT)"), 0, 0);
     if ((emaC>emaM)&&(emaC>emaL))
     {
            ObjectSetText(nameObjH4,"H4", 8, "Arial Bold", Blue);
            ok = 1;          
     } 
     if ((emaC<emaM)&&(emaC<emaL))
     {
            ObjectSetText(nameObjH4,"H4", 8, "Arial Bold", Red);
            ok = 1;          
     } 
     if (ok==0)
     {
            emaC = iMA(strMoneda,PERIOD_H4,mediaCorta,0,MODE_EMA,PRICE_CLOSE,0);
            emaM = iMA(strMoneda,PERIOD_H4,mediaMediana,0,MODE_EMA,PRICE_CLOSE,0);
            emaL = iMA(strMoneda,PERIOD_H4,mediaLarga,0,MODE_EMA,PRICE_CLOSE,0);
            if (((emaC<emaM)&&(emaC<emaL))||((emaC>emaM)&&(emaC>emaL))){
               ObjectSetText(nameObjH4,"H4*", 8, "Arial Bold", Yellow);
            } else {
               ObjectSetText(nameObjH4,"H4", 8, "Arial Bold", Yellow);
            }
     } 
            ObjectSet(nameObjH4, OBJPROP_CORNER, 0);
            ObjectSet(nameObjH4, OBJPROP_XDISTANCE, 160+horizontal);
            ObjectSet(nameObjH4, OBJPROP_YDISTANCE, 15+vertical);

   
     emaC = iMA(strMoneda,PERIOD_D1,mediaCorta,0,MODE_EMA,PRICE_CLOSE,1);
     emaM = iMA(strMoneda,PERIOD_D1,mediaMediana,0,MODE_EMA,PRICE_CLOSE,1);
     emaL = iMA(strMoneda,PERIOD_D1,mediaLarga,0,MODE_EMA,PRICE_CLOSE,1);
     ok = 0;          
     ObjectCreate(nameObjD1, OBJ_LABEL, WindowFind("FGB-ScotLowry (ALERT)"), 0, 0);
     if ((emaC>emaM)&&(emaC>emaL))
     {
            ObjectSetText(nameObjD1,"D1", 8, "Arial Bold", Blue);
            ok = 1;          
     } 
     if ((emaC<emaM)&&(emaC<emaL))
     {
            ObjectSetText(nameObjD1,"D1", 8, "Arial Bold", Red);
            ok = 1;          
     } 
     if (ok==0)
     {
            emaC = iMA(strMoneda,PERIOD_D1,mediaCorta,0,MODE_EMA,PRICE_CLOSE,0);
            emaM = iMA(strMoneda,PERIOD_D1,mediaMediana,0,MODE_EMA,PRICE_CLOSE,0);
            emaL = iMA(strMoneda,PERIOD_D1,mediaLarga,0,MODE_EMA,PRICE_CLOSE,0);
            if (((emaC<emaM)&&(emaC<emaL))||((emaC>emaM)&&(emaC>emaL))){
               ObjectSetText(nameObjD1,"D1*", 8, "Arial Bold", Yellow);
            } else {
               ObjectSetText(nameObjD1,"D1", 8, "Arial Bold", Yellow);
            }
     } 
            ObjectSet(nameObjD1, OBJPROP_CORNER, 0);
            ObjectSet(nameObjD1, OBJPROP_XDISTANCE, 178+horizontal);
            ObjectSet(nameObjD1, OBJPROP_YDISTANCE, 15+vertical);

   
     emaC = iMA(strMoneda,PERIOD_W1,mediaCorta,0,MODE_EMA,PRICE_CLOSE,1);
     emaM = iMA(strMoneda,PERIOD_W1,mediaMediana,0,MODE_EMA,PRICE_CLOSE,1);
     emaL = iMA(strMoneda,PERIOD_W1,mediaLarga,0,MODE_EMA,PRICE_CLOSE,1);
     ok = 0;          
     ObjectCreate(nameObjW1, OBJ_LABEL, WindowFind("FGB-ScotLowry (ALERT)"), 0, 0);
     if ((emaC>emaM)&&(emaC>emaL))
     {
            ObjectSetText(nameObjW1,"W1", 8, "Arial Bold", Blue);
            ok = 1;          
     } 
     if ((emaC<emaM)&&(emaC<emaL))
     {
            ObjectSetText(nameObjW1,"W1", 8, "Arial Bold", Red);
            ok = 1;          
     } 
     if (ok==0)
     {
            emaC = iMA(strMoneda,PERIOD_W1,mediaCorta,0,MODE_EMA,PRICE_CLOSE,0);
            emaM = iMA(strMoneda,PERIOD_W1,mediaMediana,0,MODE_EMA,PRICE_CLOSE,0);
            emaL = iMA(strMoneda,PERIOD_W1,mediaLarga,0,MODE_EMA,PRICE_CLOSE,0);
            if (((emaC<emaM)&&(emaC<emaL))||((emaC>emaM)&&(emaC>emaL))){
               ObjectSetText(nameObjW1,"W1*", 8, "Arial Bold", Yellow);
            } else {
               ObjectSetText(nameObjW1,"W1", 8, "Arial Bold", Yellow);
            }
     } 
            ObjectSet(nameObjW1, OBJPROP_CORNER, 0);
            ObjectSet(nameObjW1, OBJPROP_XDISTANCE, 195+horizontal);
            ObjectSet(nameObjW1, OBJPROP_YDISTANCE, 15+vertical);

   return(0);
}
//+------------------------------------------------------------------+