EMAOsMA_v1





/*-----------------------------+
|			       |
| Shared by www.Aptrafx.com    |
|			       |
+------------------------------*/

//+------------------------------------------------------------------+
//|                                                      EMAOsMA.mq4 |
//|                                                         Mohammed |
//|                                         http://www.forex-tsd.com |
//+------------------------------------------------------------------+

#property copyright "Mohammed"
#property link      "http://www.forex-tsd.com"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red

extern int EmaPeriod = 12;



extern color UpCross = Gold;
extern color DownCross = DarkGreen; 
extern int ArrowCode1 = 233; 
extern int ArrowCode2 = 234; 

//---- buffers
double ExtMapBuffer1[];



//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);
   
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   
   int I = WindowsTotal();
   for (int count = 0; count < WindowsTotal(); count++)
   {
      int nObjects = ObjectsTotal();
      for (int i=nObjects; i>=0; i--) 
      {
         string objName = ObjectName(i);
         if(StringFind(objName, "acustom", 0) >= 0)
         ObjectDelete(objName);
      }
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
int I = WindowsTotal();
   for (int count = 0; count < WindowsTotal(); count++)
   {
      int nObjects = ObjectsTotal();
      for (int i=nObjects; i>=0; i--) 
      {
         string objName = ObjectName(i);
         if(StringFind(objName, "acustom", 0) >= 0)
         ObjectDelete(objName);
      }
   }
   return(0);
  }
  
  void DrawArrow( int bar , double value , int trend)
   {
      
      static int cnt = 0;
      cnt++;
      string crossing = "acustom_" + cnt;

      ObjectCreate(crossing, OBJ_ARROW, 0, Time[bar], value);
      
           
      if(trend == 1)
      {
         ObjectSet(crossing, OBJPROP_ARROWCODE, ArrowCode1);
         ObjectSet(crossing, OBJPROP_COLOR , UpCross);
      }
      
      if(trend == 2)
      {
         ObjectSet(crossing, OBJPROP_ARROWCODE, ArrowCode2);
         ObjectSet(crossing, OBJPROP_COLOR , DownCross);

      }

      ObjectSet(crossing, OBJPROP_WIDTH  , 1);
      ObjectsRedraw();  
   }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   
   int i, limit;
   
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-IndicatorCounted();
    

   double marray[]; 
   
   ArrayResize( marray, limit); 
   ArraySetAsSeries(marray,true); 
   
   for(i=0; i<limit; i++)
   {
      marray[i] = iOsMA(NULL,0,10,26,9,PRICE_CLOSE,i);
      ExtMapBuffer1[i]=marray[i];
   }
   for(i=0; i<limit; i++)
   {
         ExtMapBuffer1[i]=iMAOnArray(marray,limit,EmaPeriod,0,MODE_EMA,i);
   }
   
   while (limit>0)
   {
      if (ExtMapBuffer1[limit] > 0 && ExtMapBuffer1[limit+1] < 0)
      DrawArrow (limit , Low[limit] - 1 * Point , 1);
      
      if (ExtMapBuffer1[limit] < 0 && ExtMapBuffer1[limit+1] > 0)
      DrawArrow (limit , High[limit] + 5 * Point , 2); 
     
      limit--;
   
   } 
            
  
//----
   return(0);
  }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:

Series array that contains open time of each bar
Series array that contains the lowest prices of each bar
Series array that contains the highest prices of each bar


Indicator Curves created:

Implements a curve of type DRAW_LINE


Indicators Used:

Moving Average of Oscillator
Moving average indicator


Custom Indicators Used:

Order Management characteristics:

Other Features: