//+------------------------------------------------------------------+
//|                                                  KG MA V 1.3.mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link      "http://www.forexindo.com/forum/showthread.php?t=95&page=9"

#property indicator_chart_window
#property indicator_buffers 8

extern int Corner=1;
extern int MA_Mode=MODE_SMA;
extern color MA_Month_Color=Aqua;
extern color MA_Week_Color=Magenta;
extern color MA_Day_Color=Lime;
extern color MA_8H_Color=Yellow;
extern color MA_4H_Color=MediumBlue;
extern color MA_1H_Color=Red;
extern color MA_30M_Color=DarkViolet;
extern color MA_15M_Color=White;


//---- buffers
double MAMonth[];
double MAWeek[];
double MA24H[];
double MA8H[];
double MA4H[];
double MA1H[];
double MA30M[];
double MA15M[];

int    PerMonth;
int    PerWeek;
int    Per24H;
int    Per8H;
int    Per4H;
int    Per1H;
int   Per30M;
int   Per15M;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE,0,2,MA_Month_Color);
   SetIndexBuffer(0,MAMonth);
   SetIndexLabel(0,"MA Month");
   SetIndexStyle(1,DRAW_LINE,0,2,MA_Week_Color);
   SetIndexBuffer(1,MAWeek);
   SetIndexLabel(1,"MA Week");
   SetIndexStyle(2,DRAW_LINE,0,2,MA_Day_Color);
   SetIndexBuffer(2,MA24H);
   SetIndexLabel(2,"MA Day");
   SetIndexStyle(3,DRAW_LINE,0,2,MA_8H_Color);
   SetIndexBuffer(3,MA8H);
   SetIndexLabel(3,"MA 8H");
   SetIndexStyle(4,DRAW_LINE,0,2,MA_4H_Color);
   SetIndexBuffer(4,MA4H);
   SetIndexLabel(4,"MA 4H");
   SetIndexStyle(5,DRAW_LINE,0,2,MA_1H_Color);
   SetIndexBuffer(5,MA1H);
   SetIndexLabel(5,"MA 1H");
   
   SetIndexStyle(6,DRAW_LINE,0,2,MA_30M_Color);
   SetIndexBuffer(6,MA30M);
   SetIndexLabel(6,"MA 30M");
   SetIndexStyle(7,DRAW_LINE,0,2,MA_15M_Color);
   SetIndexBuffer(7,MA15M);
   SetIndexLabel(7,"MA 15M");

   string label1 = "KG MA Month";
   ObjectDelete(label1);
   ObjectCreate( label1, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(label1,"Monthly MA",8, "Arial Bold", MA_Month_Color);
   ObjectSet( label1, OBJPROP_CORNER, Corner );
   ObjectSet( label1, OBJPROP_XDISTANCE, 3 );
   ObjectSet( label1, OBJPROP_YDISTANCE, 10 );
   
   string label2 = "KG MA Week";
   ObjectDelete(label2);
   ObjectCreate( label2, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(label2,"Weekly MA",8, "Arial Bold", MA_Week_Color);
   ObjectSet( label2, OBJPROP_CORNER, Corner );
   ObjectSet( label2, OBJPROP_XDISTANCE, 3 );
   ObjectSet( label2, OBJPROP_YDISTANCE, 20 );
   
   string label3 = "KG MA Day";
   ObjectDelete(label3);
   ObjectCreate( label3, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(label3,"Daily MA",8, "Arial Bold", MA_Day_Color);
   ObjectSet( label3, OBJPROP_CORNER, Corner );
   ObjectSet( label3, OBJPROP_XDISTANCE, 3 );
   ObjectSet( label3, OBJPROP_YDISTANCE, 30 );
   
   string label4 = "KG MA 8H";
   ObjectDelete(label4);
   ObjectCreate( label4, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(label4,"8H MA",8, "Arial Bold", MA_8H_Color);
   ObjectSet( label4, OBJPROP_CORNER, Corner );
   ObjectSet( label4, OBJPROP_XDISTANCE, 3 );
   ObjectSet( label4, OBJPROP_YDISTANCE, 40 );
   
   string label5 = "KG MA 4H";
   ObjectDelete(label5);
   ObjectCreate( label5, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(label5,"4H MA",8, "Arial Bold", MA_4H_Color);
   ObjectSet( label5, OBJPROP_CORNER, Corner );
   ObjectSet( label5, OBJPROP_XDISTANCE, 3 );
   ObjectSet( label5, OBJPROP_YDISTANCE, 50 );
   
   string label6 = "KG MA 1H";
   ObjectDelete(label6);
   ObjectCreate( label6, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(label6,"1H MA",8, "Arial Bold", MA_1H_Color);
   ObjectSet( label6, OBJPROP_CORNER, Corner );
   ObjectSet( label6, OBJPROP_XDISTANCE, 3 );
   ObjectSet( label6, OBJPROP_YDISTANCE, 60 );
   
   string label7 = "KG MA 30M";
   ObjectDelete(label7);
   ObjectCreate( label7, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(label7,"30M MA",8, "Arial Bold", MA_30M_Color);
   ObjectSet( label7, OBJPROP_CORNER, Corner );
   ObjectSet( label7, OBJPROP_XDISTANCE, 3 );
   ObjectSet( label7, OBJPROP_YDISTANCE, 70 );
   
   string label8 = "KG MA 15M";
   ObjectDelete(label8);
   ObjectCreate( label8, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(label8,"15M MA",8, "Arial Bold", MA_15M_Color);
   ObjectSet( label8, OBJPROP_CORNER, Corner );
   ObjectSet( label8, OBJPROP_XDISTANCE, 3 );
   ObjectSet( label8, OBJPROP_YDISTANCE, 80 );
   
   string label9 = "KG MA Momentum";
   ObjectDelete(label9);
   ObjectCreate( label9, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(label9,"MOM",6, "Arial", Silver);
   ObjectSet( label9, OBJPROP_CORNER, Corner );
   ObjectSet( label9, OBJPROP_XDISTANCE, 78 );
   ObjectSet( label9, OBJPROP_YDISTANCE, 100 );
   
   string label10 = "KG MA Average Range";
   ObjectDelete(label10);
   ObjectCreate( label10, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(label10,"AVG",6, "Arial", Gold);
   ObjectSet( label10, OBJPROP_CORNER, Corner );
   ObjectSet( label10, OBJPROP_XDISTANCE, 105 );
   ObjectSet( label10, OBJPROP_YDISTANCE, 100 );


//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   for(int i = ObjectsTotal() - 1; i >= 0; i--)
     {
       string label = ObjectName(i);
       if(StringSubstr(label, 0, 5) != "KG MA")
           continue;
       ObjectDelete(label);   
     }   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
///////////////////////////////////////////////
//average range KG formula code by metropolis//  
//////////////////////////////////////////////////////////////////////
int avg15M,avg30M,avg1H,avg4H,avg8H,avgDay,avgWeek,avgMonth;

/////////////////////  M15
for(int m15=4;m15>0;m15--)
double rangem15 = rangem15 + (iHigh(NULL,15,m15)-iLow(NULL,15,m15));
avg15M = (rangem15/4)/Point;

/////////////////////  M30
for(int m30=8;m30>0;m30--)
double rangem30 = rangem30 + (iHigh(NULL,30,m30)-iLow(NULL,30,m30));
avg30M = (rangem30/8)/Point;

/////////////////////  H1
for(int h1=8;h1>0;h1--)
double rangeh1 = rangeh1 + (iHigh(NULL,60,h1)-iLow(NULL,60,h1));
avg1H = (rangeh1/8)/Point;

/////////////////////  H4
for(int h4=6;h4>0;h4--)
double rangeh4 = rangeh4 + (iHigh(NULL,240,h4)-iLow(NULL,240,h4));
avg4H = (rangeh4/6)/Point;

///////////////////// H8
for(int h8=30;h8>0;h8--)
double rangeh8 = rangeh8 + (iHigh(NULL,240,h8)-iLow(NULL,240,h8));
avg8H = (rangeh8/30)/Point;

/////////////////////  Daily
for(int d1=20;d1>0;d1--)
double ranged1 = ranged1 + (iHigh(NULL,1440,d1)-iLow(NULL,1440,d1));
avgDay = (ranged1/20)/Point;

/////////////////////  Weekly
for(int w1=24;w1>0;w1--)
double rangew1 = rangew1 + (iHigh(NULL,10080,w1)-iLow(NULL,10080,w1));
avgWeek = (rangew1/24)/Point;

/////////////////////  Monthly
for(int mn1=24;mn1>0;mn1--)
double rangemn1 = rangemn1 + (iHigh(NULL,43200,mn1)-iLow(NULL,43200,mn1));
avgMonth = (rangemn1/24)/Point;

//////////////////////////////////////////////////////////////////////
   int    counted_bars=IndicatorCounted();

   PerMonth=28800/Period();
   PerWeek=7200/Period();
   Per24H=1440/Period();
   Per8H=480/Period();
   Per4H=240/Period();
   Per1H=60/Period();
   Per30M=30/Period();
   Per15M=15/Period();

   int limit=Bars-counted_bars;
   if(counted_bars>0) limit++;
   for(int i=0; i<limit; i++)
   { 
      MAMonth[i]=iMA(NULL,0,PerMonth,0,MA_Mode,PRICE_WEIGHTED,i);
      MAWeek[i]=iMA(NULL,0,PerWeek,0,MA_Mode,PRICE_WEIGHTED,i);
      MA24H[i]=iMA(NULL,0,Per24H,0,MA_Mode,PRICE_WEIGHTED,i);
      MA8H[i]=iMA(NULL,0,Per8H,0,MA_Mode,PRICE_WEIGHTED,i);
      MA4H[i]=iMA(NULL,0,Per4H,0,MA_Mode,PRICE_WEIGHTED,i);
      MA1H[i]=iMA(NULL,0,Per1H,0,MA_Mode,PRICE_WEIGHTED,i);
      
      MA30M[i]=iMA(NULL,0,Per30M,0,MA_Mode,PRICE_WEIGHTED,i);
      MA15M[i]=iMA(NULL,0,Per15M,0,MA_Mode,PRICE_WEIGHTED,i);
   }
   
   string Sign;
   double MAOpen=iMA(NULL,0,PerMonth,0,MA_Mode,PRICE_OPEN,0);
   double MAClose=iMA(NULL,0,PerMonth,0,MA_Mode,PRICE_CLOSE,0);
   color Col;
   
   ////////////////////////////////////////////////////
   if (MAOpen==MAClose) { Sign="ó"; Col=Yellow; } //Sideway
   else 
      if (MAOpen < MAClose) { Sign="ñ"; Col=Lime; } //Trend Up
      else { Sign="ò"; Col=Red; } //Trend Down
      

   string sign1 = "KG MA Month Sign";
   ObjectDelete(sign1);
   ObjectCreate(sign1, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(sign1, Sign ,10, "Wingdings", Col);
   ObjectSet(sign1, OBJPROP_CORNER, Corner );
   ObjectSet(sign1, OBJPROP_XDISTANCE, 63 );
   ObjectSet(sign1, OBJPROP_YDISTANCE, 10 );
   
   string average1 = "KG MA Month Average Range";
   ObjectDelete(average1);
   ObjectCreate(average1, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(average1, StringConcatenate("",avgMonth) ,8, "Arial", MA_Month_Color);
   ObjectSet(average1, OBJPROP_CORNER, Corner );
   ObjectSet(average1, OBJPROP_XDISTANCE, 103 );
   ObjectSet(average1, OBJPROP_YDISTANCE, 10 );
   
   ////////////////////////////////////////////////////
   MAOpen=iMA(NULL,0,PerWeek,0,MA_Mode,PRICE_OPEN,0);
   MAClose=iMA(NULL,0,PerWeek,0,MA_Mode,PRICE_CLOSE,0);
   if (MAOpen==MAClose) { Sign="ó"; Col=Yellow; } //Sideway
   else 
      if (MAOpen < MAClose) { Sign="ñ"; Col=Lime; } //Trend Up
      else { Sign="ò"; Col=Red; } //Trend Down
      
   string sign2 = "KG MA Week Sign";
   ObjectDelete(sign2);
   ObjectCreate(sign2, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(sign2, Sign ,10, "Wingdings", Col);
   ObjectSet(sign2, OBJPROP_CORNER, Corner );
   ObjectSet(sign2, OBJPROP_XDISTANCE, 63 );
   ObjectSet(sign2, OBJPROP_YDISTANCE, 20 );
   
   string average2 = "KG MA Week Average Range";
   ObjectDelete(average2);
   ObjectCreate(average2, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(average2, StringConcatenate("",avgWeek) ,8, "Arial",  MA_Week_Color);
   ObjectSet(average2, OBJPROP_CORNER, Corner );
   ObjectSet(average2, OBJPROP_XDISTANCE, 103 );
   ObjectSet(average2, OBJPROP_YDISTANCE, 20 );

   ////////////////////////////////////////////////////
   MAOpen=iMA(NULL,0,Per24H,0,MA_Mode,PRICE_OPEN,0);
   MAClose=iMA(NULL,0,Per24H,0,MA_Mode,PRICE_CLOSE,0);
   if (MAOpen==MAClose) { Sign="ó"; Col=Yellow; } //Sideway
   else 
      if (MAOpen < MAClose) { Sign="ñ"; Col=Lime; } //Trend Up
      else { Sign="ò"; Col=Red; } //Trend Down
   string sign3 = "KG MA Day Sign";
   ObjectDelete(sign3);
   ObjectCreate(sign3, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(sign3, Sign ,10, "Wingdings", Col);
   ObjectSet(sign3, OBJPROP_CORNER, Corner );
   ObjectSet(sign3, OBJPROP_XDISTANCE, 63 );
   ObjectSet(sign3, OBJPROP_YDISTANCE, 30 );
   
   string average3 = "KG MA Day Average Range";
   ObjectDelete(average3);
   ObjectCreate(average3, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(average3, StringConcatenate("",avgDay) ,8, "Arial",  MA_Day_Color);
   ObjectSet(average3, OBJPROP_CORNER, Corner );
   ObjectSet(average3, OBJPROP_XDISTANCE, 103 );
   ObjectSet(average3, OBJPROP_YDISTANCE, 30 );
   
   ////////////////////////////////////////////////////
   MAOpen=iMA(NULL,0,Per8H,0,MA_Mode,PRICE_OPEN,0);
   MAClose=iMA(NULL,0,Per8H,0,MA_Mode,PRICE_CLOSE,0);
   if (MAOpen==MAClose) { Sign="ó"; Col=Yellow; } //Sideway
   else 
      if (MAOpen < MAClose) { Sign="ñ"; Col=Lime; } //Trend Up
      else { Sign="ò"; Col=Red; } //Trend Down
   string sign4 = "KG MA 8H Sign";
   ObjectDelete(sign4);
   ObjectCreate(sign4, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(sign4, Sign ,10, "Wingdings", Col);
   ObjectSet(sign4, OBJPROP_CORNER, Corner );
   ObjectSet(sign4, OBJPROP_XDISTANCE, 63 );
   ObjectSet(sign4, OBJPROP_YDISTANCE, 40 );
   
   string average4 = "KG MA 8H Average Range";
   ObjectDelete(average4);
   ObjectCreate(average4, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(average4, StringConcatenate("",avg8H) ,8, "Arial",  MA_8H_Color);
   ObjectSet(average4, OBJPROP_CORNER, Corner );
   ObjectSet(average4, OBJPROP_XDISTANCE, 103 );
   ObjectSet(average4, OBJPROP_YDISTANCE, 40 );
   
   ////////////////////////////////////////////////////
   MAOpen=iMA(NULL,0,Per4H,0,MA_Mode,PRICE_OPEN,0);
   MAClose=iMA(NULL,0,Per4H,0,MA_Mode,PRICE_CLOSE,0);
   if (MAOpen==MAClose) { Sign="ó"; Col=Yellow; } //Sideway
   else 
      if (MAOpen < MAClose) { Sign="ñ"; Col=Lime; } //Trend Up
      else { Sign="ò"; Col=Red; } //Trend Down
   string sign5 = "KG MA 4H Sign";
   ObjectDelete(sign5);
   ObjectCreate(sign5, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(sign5, Sign ,10, "Wingdings", Col);
   ObjectSet(sign5, OBJPROP_CORNER, Corner );
   ObjectSet(sign5, OBJPROP_XDISTANCE, 63 );
   ObjectSet(sign5, OBJPROP_YDISTANCE, 50 );
   
   string average5 = "KG MA 4H Average Range";
   ObjectDelete(average5);
   ObjectCreate(average5, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(average5, StringConcatenate("",avg4H) ,8, "Arial",  MA_4H_Color);
   ObjectSet(average5, OBJPROP_CORNER, Corner );
   ObjectSet(average5, OBJPROP_XDISTANCE, 103 );
   ObjectSet(average5, OBJPROP_YDISTANCE, 50 );
   
   ////////////////////////////////////////////////////
   MAOpen=iMA(NULL,0,Per1H,0,MA_Mode,PRICE_OPEN,0);
   MAClose=iMA(NULL,0,Per1H,0,MA_Mode,PRICE_CLOSE,0);
   if (MAOpen==MAClose) { Sign="ó"; Col=Yellow; } //Sideway
   else 
      if (MAOpen < MAClose) { Sign="ñ"; Col=Lime; } //Trend Up
      else { Sign="ò"; Col=Red; } //Trend Down
   string sign6 = "KG MA 1H Sign";
   ObjectDelete(sign6);
   ObjectCreate(sign6, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(sign6, Sign ,10, "Wingdings", Col);
   ObjectSet(sign6, OBJPROP_CORNER, Corner );
   ObjectSet(sign6, OBJPROP_XDISTANCE, 63 );
   ObjectSet(sign6, OBJPROP_YDISTANCE, 60 );
   
   string average6 = "KG MA 1H Average Range";
   ObjectDelete(average6);
   ObjectCreate(average6, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(average6, StringConcatenate("",avg1H) ,8, "Arial",  MA_1H_Color);
   ObjectSet(average6, OBJPROP_CORNER, Corner );
   ObjectSet(average6, OBJPROP_XDISTANCE, 103 );
   ObjectSet(average6, OBJPROP_YDISTANCE, 60 );
   
   ////////////////////////////////////////////////////
   MAOpen=iMA(NULL,0,Per30M,0,MA_Mode,PRICE_OPEN,0);
   MAClose=iMA(NULL,0,Per30M,0,MA_Mode,PRICE_CLOSE,0);
   if (MAOpen==MAClose) { Sign="ó"; Col=Yellow; } //Sideway
   else 
      if (MAOpen < MAClose) { Sign="ñ"; Col=Lime; } //Trend Up
      else { Sign="ò"; Col=Red; } //Trend Down
   string sign7 = "KG MA 30M Sign";
   ObjectDelete(sign7);
   ObjectCreate(sign7, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(sign7, Sign ,10, "Wingdings", Col);
   ObjectSet(sign7, OBJPROP_CORNER, Corner );
   ObjectSet(sign7, OBJPROP_XDISTANCE, 63 );
   ObjectSet(sign7, OBJPROP_YDISTANCE, 70 );
   
   string average7 = "KG MA 30M Average Range";
   ObjectDelete(average7);
   ObjectCreate(average7, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(average7, StringConcatenate("",avg30M) ,8, "Arial",  MA_30M_Color);
   ObjectSet(average7, OBJPROP_CORNER, Corner );
   ObjectSet(average7, OBJPROP_XDISTANCE, 103 );
   ObjectSet(average7, OBJPROP_YDISTANCE, 70 );
   

   
   ////////////////////////////////////////////////////
   MAOpen=iMA(NULL,0,Per15M,0,MA_Mode,PRICE_OPEN,0);
   MAClose=iMA(NULL,0,Per15M,0,MA_Mode,PRICE_CLOSE,0);
   if (MAOpen==MAClose) { Sign="ó"; Col=Yellow; } //Sideway
   else 
      if (MAOpen < MAClose) { Sign="ñ"; Col=Lime; } //Trend Up
      else { Sign="ò"; Col=Red; } //Trend Down
   string sign8 = "KG MA 15M Sign";
   ObjectDelete(sign8);
   ObjectCreate(sign8, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(sign8, Sign ,10, "Wingdings", Col);
   ObjectSet(sign8, OBJPROP_CORNER, Corner );
   ObjectSet(sign8, OBJPROP_XDISTANCE, 63 );
   ObjectSet(sign8, OBJPROP_YDISTANCE, 80 );
   
   string average8 = "KG MA 15M Average Range";
   ObjectDelete(average8);
   ObjectCreate(average8, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(average8, StringConcatenate("",avg15M) ,8, "Arial",  MA_15M_Color);
   ObjectSet(average8, OBJPROP_CORNER, Corner );
   ObjectSet(average8, OBJPROP_XDISTANCE, 103 );
   ObjectSet(average8, OBJPROP_YDISTANCE, 80 );
   
   
   /////////////////////////////////////////////////////
   // Momentum column
   
   MAOpen=iMomentum(NULL,10080,4,PRICE_WEIGHTED,1);
   MAClose=iMomentum(NULL,10080,4,PRICE_WEIGHTED,0);
   if (MAOpen==MAClose) { Sign="ó"; Col=Yellow; } //Sideway
   else 
      if (MAOpen < MAClose) { Sign="ñ"; Col=Lime; } //Trend Up
      else { Sign="ò"; Col=Red; } //Trend Down
   string sign19 = "KG MA Momentum Month Sign";
   ObjectDelete(sign19);
   ObjectCreate(sign19, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(sign19, Sign ,10, "Wingdings", Col);
   ObjectSet(sign19, OBJPROP_CORNER, Corner );
   ObjectSet(sign19, OBJPROP_XDISTANCE, 83 );
   ObjectSet(sign19, OBJPROP_YDISTANCE, 10 );
   
   MAOpen=iMomentum(NULL,1440,5,PRICE_WEIGHTED,1);
   MAClose=iMomentum(NULL,1440,5,PRICE_WEIGHTED,0);
   if (MAOpen==MAClose) { Sign="ó"; Col=Yellow; } //Sideway
   else 
      if (MAOpen < MAClose) { Sign="ñ"; Col=Lime; } //Trend Up
      else { Sign="ò"; Col=Red; } //Trend Down
   string sign29 = "KG MA Momentum Week Sign";
   ObjectDelete(sign29);
   ObjectCreate(sign29, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(sign29, Sign ,10, "Wingdings", Col);
   ObjectSet(sign29, OBJPROP_CORNER, Corner );
   ObjectSet(sign29, OBJPROP_XDISTANCE, 83 );
   ObjectSet(sign29, OBJPROP_YDISTANCE, 20 );

   MAOpen=iMomentum(NULL,240,6,PRICE_WEIGHTED,1);
   MAClose=iMomentum(NULL,240,6,PRICE_WEIGHTED,0);
   if (MAOpen==MAClose) { Sign="ó"; Col=Yellow; } //Sideway
   else 
      if (MAOpen < MAClose) { Sign="ñ"; Col=Lime; } //Trend Up
      else { Sign="ò"; Col=Red; } //Trend Down
   string sign39 = "KG MA Momentum Day Sign";
   ObjectDelete(sign39);
   ObjectCreate(sign39, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(sign39, Sign ,10, "Wingdings", Col);
   ObjectSet(sign39, OBJPROP_CORNER, Corner );
   ObjectSet(sign39, OBJPROP_XDISTANCE, 83 );
   ObjectSet(sign39, OBJPROP_YDISTANCE, 30 );

   MAOpen=iMomentum(NULL,60,8,PRICE_WEIGHTED,1);
   MAClose=iMomentum(NULL,60,8,PRICE_WEIGHTED,0);
   if (MAOpen==MAClose) { Sign="ó"; Col=Yellow; } //Sideway
   else 
      if (MAOpen < MAClose) { Sign="ñ"; Col=Lime; } //Trend Up
      else { Sign="ò"; Col=Red; } //Trend Down
   string sign49 = "KG MA Momentum 8H Sign";
   ObjectDelete(sign49);
   ObjectCreate(sign49, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(sign49, Sign ,10, "Wingdings", Col);
   ObjectSet(sign49, OBJPROP_CORNER, Corner );
   ObjectSet(sign49, OBJPROP_XDISTANCE, 83 );
   ObjectSet(sign49, OBJPROP_YDISTANCE, 40 );
   
   MAOpen=iMomentum(NULL,60,4,PRICE_WEIGHTED,1);
   MAClose=iMomentum(NULL,60,4,PRICE_WEIGHTED,0);
   if (MAOpen==MAClose) { Sign="ó"; Col=Yellow; } //Sideway
   else 
      if (MAOpen < MAClose) { Sign="ñ"; Col=Lime; } //Trend Up
      else { Sign="ò"; Col=Red; } //Trend Down
   string sign59 = "KG MA Momentum 4H Sign";
   ObjectDelete(sign59);
   ObjectCreate(sign59, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(sign59, Sign ,10, "Wingdings", Col);
   ObjectSet(sign59, OBJPROP_CORNER, Corner );
   ObjectSet(sign59, OBJPROP_XDISTANCE, 83 );
   ObjectSet(sign59, OBJPROP_YDISTANCE, 50 );

   MAOpen=iMomentum(NULL,15,4,PRICE_WEIGHTED,1);
   MAClose=iMomentum(NULL,15,4,PRICE_WEIGHTED,0);
   if (MAOpen==MAClose) { Sign="ó"; Col=Yellow; } //Sideway
   else 
      if (MAOpen < MAClose) { Sign="ñ"; Col=Lime; } //Trend Up
      else { Sign="ò"; Col=Red; } //Trend Down
   string sign69 = "KG MA Momentum 1H Sign";
   ObjectDelete(sign69);
   ObjectCreate(sign69, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(sign69, Sign ,10, "Wingdings", Col);
   ObjectSet(sign69, OBJPROP_CORNER, Corner );
   ObjectSet(sign69, OBJPROP_XDISTANCE, 83 );
   ObjectSet(sign69, OBJPROP_YDISTANCE, 60 );

   MAOpen=iMomentum(NULL,5,6,PRICE_WEIGHTED,1);
   MAClose=iMomentum(NULL,5,6,PRICE_WEIGHTED,0);
   if (MAOpen==MAClose) { Sign="ó"; Col=Yellow; } //Sideway
   else 
      if (MAOpen < MAClose) { Sign="ñ"; Col=Lime; } //Trend Up
      else { Sign="ò"; Col=Red; } //Trend Down
   string sign79 = "KG MA Momentum 30M Sign";
   ObjectDelete(sign79);
   ObjectCreate(sign79, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(sign79, Sign ,10, "Wingdings", Col);
   ObjectSet(sign79, OBJPROP_CORNER, Corner );
   ObjectSet(sign79, OBJPROP_XDISTANCE, 83 );
   ObjectSet(sign79, OBJPROP_YDISTANCE, 70 );
   
   MAOpen=iMomentum(NULL,5,3,PRICE_WEIGHTED,1);
   MAClose=iMomentum(NULL,5,3,PRICE_WEIGHTED,0);
   if (MAOpen==MAClose) { Sign="ó"; Col=Yellow; } //Sideway
   else 
      if (MAOpen < MAClose) { Sign="ñ"; Col=Lime; } //Trend Up
      else { Sign="ò"; Col=Red; } //Trend Down
   string sign89 = "KG MA Momentum 15M Sign";
   ObjectDelete(sign89);
   ObjectCreate(sign89, OBJ_LABEL, 0, 0, 0 );
   ObjectSetText(sign89, Sign ,10, "Wingdings", Col);
   ObjectSet(sign89, OBJPROP_CORNER, Corner );
   ObjectSet(sign89, OBJPROP_XDISTANCE, 83 );
   ObjectSet(sign89, OBJPROP_YDISTANCE, 80 );
  
//----
   return(0);
  }
//+------------------------------------------------------------------+