Indicators Used
Relative strength indexMoving average indicator
Miscellaneous
Implements a curve of type %1
3 Views
0 Downloads
0 Favorites
SGMAR_v1
//+------------------------------------------------------------------+
//|                                                                  |
//|                 Copyright © 1999-2008, MetaQuotes Software Corp. |
//|                                         http://www.metaquotes.ru |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 5
//----
#property indicator_color1 Lime
#property indicator_color2 Aqua
#property indicator_color3 Red
#property indicator_color4 DarkTurquoise
#property indicator_color5 Red
//----
#property indicator_level1 70
#property indicator_level2 50
#property indicator_level3 30
#property indicator_levelcolor Gray
#property indicator_levelwidth 1
#property indicator_levelstyle STYLE_DASH
//----
extern int    Rsi=14;
extern int    Ma=8;
extern int    cbars=0;
//----
double RsiBuf[];
double MaP[];
double MaF[];
double Up[];
double Dn[];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void init()
  {
   SetIndexStyle(0,DRAW_LINE,0,2);
   SetIndexStyle(1,DRAW_LINE,0,2);
   SetIndexStyle(2,DRAW_LINE,0,2);
   SetIndexStyle(3,DRAW_ARROW);
   SetIndexStyle(4,DRAW_ARROW);
   SetIndexBuffer(0,RsiBuf);
   SetIndexBuffer(1,MaP);
   SetIndexBuffer(2,MaF);
   SetIndexBuffer(3,Up);
   SetIndexBuffer(4,Dn);
   SetIndexEmptyValue(3,0);
   SetIndexEmptyValue(4,0);
   SetIndexArrow(3,108);
   SetIndexArrow(4,108);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void deinit()
  {}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   int shift;
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   int limit=Bars-counted_bars;
   if(counted_bars==0) limit-=1+1;

   for(shift=limit-1; shift>=0; shift--)
     {
      RsiBuf[shift]=iRSI(NULL,0,Rsi,PRICE_CLOSE,shift);
     }
   for(shift=limit-1; shift>=0; shift--)
     {
      // First Indicator Data
      MaF[shift]=iMAOnArray(RsiBuf,0,Ma,0,MODE_SMA,shift);
      // Previous Indicator Data
      MaP[shift]=iMAOnArray(RsiBuf,0,Ma,0,MODE_EMA,shift);
      if((MaF[shift]-MaP[shift])*(MaF[shift+1]-MaP[shift+1])<0)
        {
         if(MaF[shift]-MaP[shift]<0) Up[shift]=MaP[shift];
         else Dn[shift]=MaF[shift];
        }
     }
  }
//+------------------------------------------------------------------+

Comments