SSL_fast_sBar_mtf_v1





//+------------------------------------------------------------------+
//|                                                          SSL.mq4 |
//|ssl bar fast mtf                                          Kalenzo |
//|                                      bartlomiej.gorski@gmail.com |
//+------------------------------------------------------------------+
//mod2008fxtsd   ml ki   
#property copyright "Kalenzo"
#property link      "bartlomiej.gorski@gmail.com"
//----
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1  DodgerBlue
#property indicator_color2  OrangeRed
#property indicator_width1  2
#property indicator_width2  2
#property indicator_minimum 10
#property indicator_maximum 90
//----
extern int     Lb          =10;
extern int     SSL_BarLevel=15;    //BarLevel 10-90
extern int     TimeFrame  =0;
extern string  TimeFrames="M1;5,15,30,60H1;240H4;1440D1;10080W1;43200MN|0-CurrentTF";
//----
double sslHup[];
double sslHdn[];
double hlv[];
string IndicatorFileName;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   string TimeFrameStr;
   if (TimeFrame<Period()) TimeFrame=Period();
   switch(TimeFrame)
     {
      case PERIOD_M1:  TimeFrameStr="M1" ;break;
      case PERIOD_M5:  TimeFrameStr="M5" ;break;
      case PERIOD_M15: TimeFrameStr="M15";break;
      case PERIOD_M30: TimeFrameStr="M30";break;
      case PERIOD_H1:  TimeFrameStr="H1" ;break;
      case PERIOD_H4:  TimeFrameStr="H4" ;break;
      case PERIOD_D1:  TimeFrameStr="D1" ;break;
      case PERIOD_W1:  TimeFrameStr="W1" ;break;
      case PERIOD_MN1: TimeFrameStr="MN1";break;
      default :        TimeFrameStr="TF0";
     }
//----
   IndicatorBuffers(3);
   SetIndexBuffer (0,sslHup); SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,167); SetIndexLabel(0,"SSLup "+Lb+" ["+TimeFrame+"]");
   SetIndexBuffer (1,sslHdn); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,167); SetIndexLabel(1,"SSLdn "+Lb+" ["+TimeFrame+"]");
   SetIndexBuffer (2,hlv);
//----
   IndicatorShortName("SSL "+Lb+"["+TimeFrameStr+"]");
   IndicatorFileName=WindowExpertName();
//----
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   int  counted_bars=IndicatorCounted();
   int  i,limit;
//----
   if (counted_bars<0) return(-1);
   if (counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//----
   if (TimeFrame!=Period())
     {
      datetime TimeArray[];
      limit=MathMax(limit,TimeFrame/Period());
      ArrayCopySeries(TimeArray ,MODE_TIME ,NULL,TimeFrame);
      //----
      for(i=0,int y=0; i<limit; i++)
        {
         if(Time[i]<TimeArray[y]) y++;
         sslHup[i]=iCustom(NULL,TimeFrame,IndicatorFileName,Lb,SSL_BarLevel,0,y);
         sslHdn[i]=iCustom(NULL,TimeFrame,IndicatorFileName,Lb,SSL_BarLevel,1,y);
        }
      return(0);
     }
   //----
   for(i=limit;i>=0;i--)
     {
      hlv[i]=hlv[i+1];
      if(Close[i]>iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_HIGH,i+1)) hlv[i]= 1;
      if(Close[i]<iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_LOW,i+1))  hlv[i]=-1;
      if(hlv[i]==-1) { sslHdn[i]=SSL_BarLevel; sslHup[i]=EMPTY_VALUE;  }
      else             
                     { sslHdn[i]=EMPTY_VALUE;  sslHup[i]=SSL_BarLevel; }
     }
   return(0);
  }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:

Series array that contains open time of each bar
Series array that contains close prices for each bar


Indicator Curves created:

Implements a curve of type DRAW_ARROW

Indicators Used:


Moving average indicator


Custom Indicators Used:
IndicatorFileName

Order Management characteristics:

Other Features: