Carter_MA





//+------------------------------------------------------------------+
//|                                                    Carter MA.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
//| This was my first indicator that I programmed for MetaTrader.   
//| It's quite simple and plots 5 moving averages on your chart.  
//| These 5 EMA's (8, 21, 50, 100, 200) are those that John Carter 
//| uses personally on all of his charts. 
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 5
#property indicator_color1 Sienna
#property indicator_color2 Green
#property indicator_color3 Blue
#property indicator_color4 Red
#property indicator_color5 Red
//----
extern int ma1 = 8;
extern int ma2 = 21;
extern int ma3 = 50;
extern int ma4 = 100;
extern int ma5 = 200;
//----
double ma1_buffer [];
double ma2_buffer [];
double ma3_buffer [];
double ma4_buffer [];
double ma5_buffer [];  
int a_begin;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//----
   SetIndexStyle(0, DRAW_LINE);
   SetIndexBuffer(0, ma1_buffer);
   SetIndexLabel(0, "8 EMA");
//---- 
   SetIndexStyle(1, DRAW_LINE);
   SetIndexBuffer(1, ma2_buffer);
   SetIndexLabel(1, "21 EMA");   
//----
   SetIndexStyle(2, DRAW_LINE,EMPTY,2);
   SetIndexBuffer(2, ma3_buffer);
   SetIndexLabel(2, "50 EMA");
//----   
   SetIndexStyle(3, DRAW_LINE,STYLE_DOT);
   SetIndexBuffer(3, ma4_buffer);
   SetIndexLabel(3, "100 EMA");
//----   
   SetIndexStyle(4, DRAW_LINE,EMPTY, 3);
   SetIndexBuffer(4, ma5_buffer);
   SetIndexLabel(4, "200 EMA");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars = IndicatorCounted();
//----
   if(counted_bars < 0) 
       return(-1);
//----
   if(counted_bars > 0) 
       counted_bars --;
   int pos = Bars - counted_bars;  
//----
   while(pos >= 0) 
     {
       ma1_buffer[pos] = iMA(NULL, 0, ma1, NULL, MODE_EMA, PRICE_CLOSE, pos);
       ma2_buffer[pos] = iMA(NULL, 0, ma2, NULL, MODE_EMA, PRICE_CLOSE, pos);
       ma3_buffer[pos] = iMA(NULL, 0, ma3, NULL, MODE_EMA, PRICE_CLOSE, pos);
       ma4_buffer[pos] = iMA(NULL, 0, ma4, NULL, MODE_EMA, PRICE_CLOSE, pos);
       ma5_buffer[pos] = iMA(NULL, 0, ma5, NULL, MODE_EMA, PRICE_CLOSE, pos);
       pos--;
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:



Indicator Curves created:

Implements a curve of type DRAW_LINE


Indicators Used:

Moving average indicator


Custom Indicators Used:

Order Management characteristics:

Other Features: