Download MetaTrader 5

Indicators: Support and Resistance

To add comments, please log in or register
Learning MQL5? Start with documentation!
Automated-Trading
Admin
99094
Automated-Trading 2011.08.03 17:09 

Support and Resistance:

The "Support and Resistance" indicators shows the support and resistance levels using the Fractals indicator.

The calculation of support levels is based on the "Fractals down", the calculation of the resistance levels is based on the "Fractals up" of the Fractals indicator by Bill Williams.

Support and Resistance levels indicator

Author: Nikolay Kositsin

Sergey Golubev
Moderator
55382
Sergey Golubev 2013.09.23 10:15  
yohmm
28
yohmm 2014.11.24 15:24  

Since the last update of MT5 this indicator is broken. It just prints dots on the high and low of every candle.

What's wrong?

Alain Verleyen
Moderator
30721
Alain Verleyen 2014.11.24 16:47  
yohmm:

Since the last update of MT5 this indicator is broken. It just prints dots on the high and low of every candle.

What's wrong?

This indicator is working normally. Build 1016.
yohmm
28
yohmm 2014.11.25 14:05  

Yes, I have Build 1016. I downloaded the indicator again and recompiled it with 0 error(s) and 0 warning(s). Still doesn't work, just shows the dots on the high and low.

But it's ok, I am using Fibo retracement or drawing s/r levels on my own now instead.

Irwan Adnan
886
Irwan Adnan 2014.11.26 03:51  
yohmm:

Yes, I have Build 1016. I downloaded the indicator again and recompiled it with 0 error(s) and 0 warning(s). Still doesn't work, just shows the dots on the high and low.

But it's ok, I am using Fibo retracement or drawing s/r levels on my own now instead.

Can you upload the chart?
yohmm
28
yohmm 2014.11.28 16:45  
belido:
Can you upload the chart?

Sure, here it is:

MetaTrader Trading Platform Screenshots

EURUSD, M5, 2014.11.28

MetaQuotes Software Corp., MetaTrader 5, Demo

temp_file_screenshot_27398.png

EURUSD, M5, 2014.11.28, MetaQuotes Software Corp., MetaTrader 5, Demo


netz
5
netz 2014.12.15 15:21  
i have the same problem! a reinstall of metatrader does not help allso..:-(
Files:
sup.png 36 kb
mcdonner
6
mcdonner 2014.12.20 16:31  

Try this


//+------------------------------------------------------------------+
//|                                       Support and Resistance.mq5 |
//|                                       Copyright © 2005,  Dmitry  |
//|                                       Update Dec 2014            |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"
//---- version
#property version   "1.01"
//---- indicator in the chart window
#property indicator_chart_window
//---- 2 indicator buffers are used
#property indicator_buffers 2
//---- 2 graphic plots are used
#property indicator_plots   2
//+----------------------------------------------+
//|  Bearish indicator options                   |
//+----------------------------------------------+
//---- drawing type as arrow
#property indicator_type1   DRAW_ARROW
//---- Magenta color
#property indicator_color1  Magenta
//---- Line width
#property indicator_width1  1
//---- Support label
#property indicator_label1  "Support"
//+----------------------------------------------+
//|  Bullish indicator options                   |
//+----------------------------------------------+
//---- drawing type as arrow
#property indicator_type2   DRAW_ARROW
//---- Lime color
#property indicator_color2  Lime
//---- Line width
#property indicator_width2  1
//---- Resistance label
#property indicator_label2 "Resistance"

//+----------------------------------------------+
//| Indicator input parameters                   |
//+----------------------------------------------+
//input int iPeriod=70; // ATR period
//+----------------------------------------------+

//---- declaration of dynamic arrays, used as indicator buffers
double SellBuffer[];
double BuyBuffer[];
//---
int StartBars;
int FRA_Handle;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//---- initialization of global variables
   StartBars=6;
//---- get handle of the iFractals indicator
   FRA_Handle=iFractals(NULL,0);
   if(FRA_Handle==INVALID_HANDLE)Print(" INVALID_HANDLE FRA");

//---- set SellBuffer as indicator buffer
   SetIndexBuffer(0,SellBuffer,INDICATOR_DATA);
//---- set indxex of starting bar to plot
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,StartBars);
//---- set label for support
   PlotIndexSetString(0,PLOT_LABEL,"Support");
//---- set arrow char code
   PlotIndexSetInteger(0,PLOT_ARROW,159);
//---- set indexing as timeseries
   ArraySetAsSeries(SellBuffer,true);

//---- set BuyBuffer as an indicator buffer
   SetIndexBuffer(1,BuyBuffer,INDICATOR_DATA);
//---- set index of starting bar to plot
   PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,StartBars);
//---  set label for resistance
   PlotIndexSetString(1,PLOT_LABEL,"Resistance");
//---- set arrow char code
   PlotIndexSetInteger(1,PLOT_ARROW,159);
//---- set indexation as timeseries
   ArraySetAsSeries(BuyBuffer,true);

//---- set precision
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
//---- indicator short name
   string short_name="Support & Resistance";
   IndicatorSetString(INDICATOR_SHORTNAME,short_name);
//----  
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[]
                )
  {
//---- checking of bars
   if(BarsCalculated(FRA_Handle)<rates_total
      || rates_total<StartBars)
      return(0);

//---- declaration of local variables
   int to_copy,limit,bar;
   double FRAUp[],FRALo[];

//---- calculation of bars to copy
//---- and starting index (limit) for bars recalculation loop
   if(prev_calculated>rates_total || prev_calculated<=0)// checking the first call
     {
      to_copy=rates_total;           // bars to copy
      limit=rates_total-StartBars-1; // starting index
     }
   else
     {
      to_copy=rates_total-prev_calculated+3; // bars to copy
      limit=rates_total-prev_calculated+2;   // starting index
     }

//---- set indexing as timeseries
   ArraySetAsSeries(FRAUp,true);
   ArraySetAsSeries(FRALo,true);
   ArraySetAsSeries(high,true);
   ArraySetAsSeries(low,true);

//---- copy indicator data to arrays
   if(CopyBuffer(FRA_Handle,0,0,to_copy,FRAUp)<=0) return(0);
   if(CopyBuffer(FRA_Handle,1,0,to_copy,FRALo)<=0) return(0);
 
//---- main loop
   for(bar=limit; bar>=0; bar--)
     {
       BuyBuffer[bar] = 0.0;
       SellBuffer[bar] = 0.0;
      
    
       if(FRAUp[bar] != DBL_MAX) BuyBuffer[bar] = high[bar]; else BuyBuffer[bar] = BuyBuffer[bar+1];
      
      
       if(FRALo[bar] != DBL_MAX) SellBuffer[bar] = low[bar]; else SellBuffer[bar] = SellBuffer[bar+1];
     }
//----    
   return(rates_total);
  }
//+------------------------------------------------------------------+

MetaTrader 5 Trading Platform / MetaQuotes Software Corp.
  • www.metaquotes.net
MetaTrader 5 trading platform designed to arrange brokerage services in Forex, CFD, Futures, as well as equity markets
To add comments, please log in or register