90% Accurate Indicator! "Super Signal" For MT5 (Little Modification NEEDED)


Jan 4, 2022
My Hello to all the Members of this Forum and Upcoming Forex Traders,
I came across a forex indicator which was BB Arrow Signal, which was one of the best indicator that produces 90% accurate signals for any Currency Pairs. I thought to give it a try but unfortunately it was just available for MT4 not for MT5. Bad luck for me because my Broker runs on MT5 platform only. So, I thought of to create my own indicator but I couldn't code because I'm not a Programmer. To solve this problem I researched hard and hard enough and found out that the indicator was renamed later and it was a Clone of Super Signal Indicator. The Super Signal indicator was available for MT5. But there was 2 problems with this indicator
1. It says Array out of range in the Journal in MT5.
2. Doesn't has an alert function.
3. Doesn't Update on the chart. So to see new signal you have to reload the indicator.

After facing lots and lots of trouble i fixed the problems 1 and 2. But still have problem with the issue no 3.

I just need to help to fix the issue no 3. The indicator doesn't update itself. To see the new signal you have to reload the indicator to the chart.

If there's anyone who can help me out then this will be a really big help.

Thanks In Advance,
I've attached the indicator.
You should build a bot for my strategy it is 98% winning. I doubt there can be a bot for it though, has many many rules.


Jul 28, 2021
You should build a bot for my strategy it is 98% winning. I doubt there can be a bot for it though, has many many rules.
How you get that result ? Can you use 5 lot size per trade ? Help me get rich . Cause it's 98% wining you claim
Post automatically merged:

Thanks alot for your indicator. At least i cannot lose all to Deriv. It helps me time my entries.
Can you explain create a thread to explain more ?


Jun 20, 2022
Hmm... You can use it as per your choice and which ever way it suits you according to your trading style. But before giving it a try on a real account always use the strategy in a demo account for at least minimum 3 weeks.

Besides from this if you want to try it on 5M timeframe or 5M Chart, then according to mine knowledge, the expiry must be 30 minutes.
Sir it's not working on latest Mt4 version. Could you share the working version


Sep 6, 2022
The Indicator is a scam to say it is 90% accurate. You can't use alerts off of it because it repaints. Just use Fractal indicator instead.
What it does. each tick, it looks back at the history, for local highs and lows, using a range of 5 bars when it searches. Half before the current bar, half ahead of the current bar. So looking at the arrows to the left that it paints, it is the local fractal high or low of the last 5 bars. Once you get down to within the 5 distance, to current price bar, it looks at the last open 5 bars to calculate. Which repaints, and gets updated with each new bar until the 5 bars pass by then the high and low are locked in. It is basically a repainting fractal indicator. So alerts would be useless. as in an uptrend, it will fire signal for a sell on each new high bar.
Even though there can be several new high bars in a row.

The only way to use the indicator, is to look for patterns of up and down bars, and make sure there is a nice 5 to 8 bar smooth trend that is no choppy, and no indecision pin bars with long wicks. Then enter a trade to catch the next bar, hoping it stays in the trend.
here is what it looks like without repainting. See the multiple arrows in a row, where it draws an arrow for a new higher high or lower low.
But it repaints and hides them in the original version.

//|                                                super-signals.mq5 |
//|                Copyright © 2006, Nick Bilak, beluck[AT]gmail.com |
//|                                        http://www.forex-tsd.com/ |
#property copyright "CCopyright © 2006, Nick Bilak, beluck[AT]gmail.com"
#property link "http://www.forex-tsd.com/"
#property description "super-signals"
//---- indicator version number
#property version   "1.02"
//---- drawing the indicator in the main window
#property indicator_chart_window
//---- two buffers are used for calculation of drawing of the indicator
#property indicator_buffers 2
//---- only two plots are used
#property indicator_plots   2
//|  Bearish indicator drawing parameters        |
//---- drawing the indicator 1 as a symbol
#property indicator_type1   DRAW_ARROW
//---- DeepPink color is used for the indicator bearish line
#property indicator_color1  clrDeepPink
//---- indicator 1 line width is equal to 4
#property indicator_width1  2
//---- bullish indicator label display
#property indicator_label1  "super-signals Sell"
//|  Bullish indicator drawing parameters        |
//---- drawing the indicator 2 as a line
#property indicator_type2   DRAW_ARROW
//---- DodgerBlue color is used as the color of the bullish line of the indicator
#property indicator_color2  clrDodgerBlue
//---- indicator 2 line width is equal to 4
#property indicator_width2  2
//---- bearish indicator label display
#property indicator_label2 "super-signals Buy"
#define RESET 0 // The constant for getting the command for the indicator recalculation back to the terminal
//| Indicator input parameters                   |
input uint dist=5;
//For Alet---------------------------------------
input int    TriggerCandle=1;
input bool   EnableNativeAlerts = true;
input bool   EnableSoundAlerts  = true;
input string SoundFileName="alert.wav";
datetime LastAlertTime = D'01.01.1970';
int LastAlertDirection = 0;
//---- declaration of dynamic arrays that will further be
// used as indicator buffers
double SellBuffer[];
double BuyBuffer[];
//---- declaration of the integer variables for the start of data calculation
int min_rates_total,ATRPeriod;
//| Custom indicator initialization function                         |
void OnInit()
//---- initialization of global variables
//---- set dynamic array as an indicator buffer
//---- shifting the start of drawing of the indicator 1
//--- create a label to display in DataWindow
   PlotIndexSetString(0,PLOT_LABEL,"super-signals Sell");
//---- indicator symbol
//---- indexing elements in the buffer as time series
//---- setting the indicator values that won't be visible on a chart
//---- set dynamic array as an indicator buffer
//---- shifting the start of drawing of the indicator 2
//--- Create label to display in DataWindow
   PlotIndexSetString(1,PLOT_LABEL,"super-signals Buy");
//---- indicator symbol
//---- indexing elements in the buffer as time series
//---- setting the indicator values that won't be visible on a chart
//---- Setting the format of accuracy of displaying the indicator
//---- name for the data window and the label for sub-windows
   string short_name="super-signals";
//| 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 for the sufficiency of bars for the calculation
   if(rates_total<min_rates_total) return(RESET);
//---- declaration of local variables
   int limit;
   //---- indexing elements in arrays as time series
//--- calculations of the necessary amount of data to be copied and
//the limit starting index for loop of bars recalculation
   if(prev_calculated>rates_total || prev_calculated<=0)// checking for the first start of the indicator calculation
      limit=rates_total-min_rates_total; // starting index for calculation of all bars
   else limit=int(rates_total-prev_calculated+dist/2); // starting index for calculation of new bars
//---- main loop of the indicator calculation
   for(int bar=limit-5; bar>=0 && !IsStopped(); bar--)
      double AvgRange=0.0;
      for(int count=bar; count<=bar+ATRPeriod; count++) AvgRange+=MathAbs(high[count]-low[count]);
      double Range=AvgRange/ATRPeriod;
     uint barX;
      // barX=bar-dist/2;   // because it is unsigned integer, it never goes negative.
      //if (barX < 0) barX = bar;
      int HH=ArrayMaximum(high,barX,dist);
      int LL=ArrayMinimum(low,barX,dist);
      if(bar==HH) SellBuffer[bar]=high[HH]+Range;
      if(bar==LL) BuyBuffer[bar]=low[LL]-Range;
//For Alert----------------------------------------------------------
   if(((TriggerCandle>0) && (time[0]>LastAlertTime)) || (TriggerCandle==0))
      string Text;
      // Up Arrow Alert
      if((BuyBuffer[TriggerCandle]>0) && ((TriggerCandle>0) || ((TriggerCandle==0) && (LastAlertDirection!=1))))
         printf("Alert function of BUY Arrow has been run.");
         Text="Super_Signal: "+Symbol()+" - "+EnumToString(Period())+" - Up.";
         if(EnableNativeAlerts) Alert(Text);
         if(EnableSoundAlerts) PlaySound(SoundFileName);
      // Down Arrow Alert
      if((SellBuffer[TriggerCandle]>0) && ((TriggerCandle>0) || ((TriggerCandle==0) && (LastAlertDirection!=-1))))
         printf("Alert function of SELL Arrow has been run.");
         Text="Super_Signal: "+Symbol()+" - "+EnumToString(Period())+" - Down.";
         if(EnableNativeAlerts) Alert(Text);
         if(EnableSoundAlerts) PlaySound(SoundFileName);
Last edited by a moderator:


Oct 18, 2022
Hello Guys ,
It looks very intresting Indicator , is it possible to have in MT4 Version , Brahmastra one


Apr 21, 2023
Any indicator to trade boom and crash
Post automatically merged:

Hello MrRich06,
Thanks a lot for all your efforts and detailed explanations about this indicator and your90% strategy.
I am going to give it a try on Volatility 100 index and on 1M chart with your instructions.
Keep up the good work.
Please share