Convert mt4 indicator into mt5 indicator

MQL5 Converting

Job finished

Execution time 10 hours
Feedback from customer
YOU ARE THE BEST YOU CONVERTED MY MT4 TO MT5 INDICATOR YOU ARE MY DEVELOPER FROM NOW
Feedback from employee
The best. fast testing.

Specification

I need to convert mt4 indicator into mt5 indicator , mt5 version should be exactly as mt4 and not repainting and without any error .

need clear source code as well .



//+----------------------------------------------------------------------+
//|                                             tradelikemarketmaker.mq4 |
//|                             Copyright 2020, tradelikemarketmaker.com |
//|                                     http://tradelikemarketmaker.com/ |
//+----------------------------------------------------------------------+
#property copyright "Copyright © 2020 tradelikemarketmaker.com"
#property link      "http://tradelikemarketmaker.com/"
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Blue  // up[]
#property indicator_width1 2
#property indicator_color2 Red       // down[]
#property indicator_width2 2
#property indicator_color3 DodgerBlue  // atrlo[]
#property indicator_width3 1
#property indicator_color4 Red       // atrhi[]
#property indicator_width4 1
#property indicator_color5 Gold  // arrup[]
#property indicator_width5 3
#property indicator_color6 Gold      // arrdwn[]
#property indicator_width6 3

extern string  SSI             = "Broker Order Book Readings";
extern int     Oanda           = 1;
extern int     IGGroup         = 1;
extern int     Dukas           = 1;
extern int     Saxo            = 1;
extern int     Alpari          = 1;
extern int     Myfxbook        = 1;
extern int     FiboGroup       = 1;  
extern int    Gravitational    = 2;
extern int    Amplitude        = 2;
extern bool   ShowBars         = false;
extern bool   ShowArrows       = true;
extern int   FiboSignalRange   = 45;
extern int    StoppClusterSet  = 77;
extern int    CurrentRatioSet  = 33000;
extern int    ProfitRatioSet   = 94000;
extern int    ScalpRatioSet    = 45;
extern bool   ScalpModel       = false;
extern bool   NeuralBuffer     = false;
extern int  NeuralBufferSizeMB = 10;
extern bool   MarketMakerMode  = false;
extern bool   alertsOn         = true;
extern bool   alertsOnCurrent  = false;
extern bool   alertsMessage    = true;
extern bool   alertsSound      = true;
extern bool   alertsEmail      = true;

bool nexttrend;
double minhighprice,maxlowprice;
double up[],down[],atrlo[],atrhi[],trend[];
double arrup[],arrdwn[];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {if (AccountNumber()!=170145)  return(INIT_PARAMETERS_INCORRECT);
 
    //codes}
   Comment("    Copyright © 2020 | Tradelikemarketmaker.com");
   IndicatorBuffers(7); // +1 buffer - trend[]
   
   SetIndexBuffer(0,up);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(1,down);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(2,atrlo);
   SetIndexBuffer(3,atrhi);
   SetIndexBuffer(6,trend);
   SetIndexBuffer(4,arrup);
   SetIndexBuffer(5,arrdwn);
   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   SetIndexEmptyValue(6,0.0);
   
   if(ShowBars)
   {
      SetIndexStyle(2,DRAW_HISTOGRAM, STYLE_SOLID);
      SetIndexStyle(3,DRAW_HISTOGRAM, STYLE_SOLID);
   }
   else
   {
      SetIndexStyle(2,DRAW_NONE);
      SetIndexStyle(3,DRAW_NONE);
   }
   if(ShowArrows)
   {
     SetIndexStyle(4,DRAW_ARROW,STYLE_SOLID); SetIndexArrow(4,110);
     SetIndexStyle(5,DRAW_ARROW,STYLE_SOLID); SetIndexArrow(5,110);
   }
   else
   {
     SetIndexStyle(4,DRAW_NONE);
     SetIndexStyle(5,DRAW_NONE);
   } 
          
     
   nexttrend=0;
   minhighprice= High[Bars-1];
   maxlowprice = Low[Bars-1];
   return (0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class CFix { } ExtFix;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   double atr,lowprice_i,highprice_i,lowma,highma;
   int workbar=0;
   int counted_bars=IndicatorCounted();
      if(counted_bars<0) return(-1);
      if(counted_bars>0) counted_bars--;
         int limit = MathMin(Bars-counted_bars,Bars-1);
   
   for(int i=Bars-1; i>=0; i--)
     {
      lowprice_i=iLow(Symbol(),Period(),iLowest(Symbol(),Period(),MODE_LOW,Amplitude,i));
      highprice_i=iHigh(Symbol(),Period(),iHighest(Symbol(),Period(),MODE_HIGH,Amplitude,i));
      lowma=NormalizeDouble(iMA(NULL,0,Amplitude,0,MODE_SMA,PRICE_LOW,i),Digits());
      highma=NormalizeDouble(iMA(NULL,0,Amplitude,0,MODE_SMA,PRICE_HIGH,i),Digits());
      trend[i]=trend[i+1];
      atr=iATR(Symbol(),0,100,i)/2;

      arrup[i]  = EMPTY_VALUE;
      arrdwn[i] = EMPTY_VALUE;
      if(nexttrend==1)
        {
         maxlowprice=MathMax(lowprice_i,maxlowprice);

         if(highma<maxlowprice && Close[i]<Low[i+1])
           {
            trend[i]=1.0;
            nexttrend=0;
            minhighprice=highprice_i;
           }
        }
      if(nexttrend==0)
        {
         minhighprice=MathMin(highprice_i,minhighprice);

         if(lowma>minhighprice && Close[i]>High[i+1])
           {
            trend[i]=0.0;
            nexttrend=1;
            maxlowprice=lowprice_i;
           }
        }
      if(trend[i]==0.0)
        {
         if(trend[i+1]!=0.0)
           {
            up[i]=down[i+1];
            up[i+1]=up[i];
            arrup[i] = up[i] - 2*atr;
           }
         else
           {
            up[i]=MathMax(maxlowprice,up[i+1]);
           }
         atrhi[i] = up[i] - atr;
         atrlo[i] = up[i];
         down[i]=0.0;
        }
      else
        {
         if(trend[i+1]!=1.0)
           {
            down[i]=up[i+1];
            down[i+1]=down[i];
            arrdwn[i] = down[i] + 2*atr;           
           }
         else
           {
            down[i]=MathMin(minhighprice,down[i+1]);
           }
         atrhi[i] = down[i] + atr;
         atrlo[i] = down[i];
         up[i]=0.0;
        }
     }
     manageAlerts();
   return (0);
  }
//+------------------------------------------------------------------+
//+-------------------------------------------------------------------
//|                                                                  
//+-------------------------------------------------------------------
//
//
//
//
//

void manageAlerts()
{
   if (alertsOn)
   {
      if (alertsOnCurrent)
           int whichBar = 0;
      else     whichBar = 1; 
         if (arrup[whichBar]  != EMPTY_VALUE) doAlert(whichBar,"LONG");
         if (arrdwn[whichBar] != EMPTY_VALUE) doAlert(whichBar,"SHORT");
   }
}

//
//
//
//
//

void doAlert(int forBar, string doWhat)
{
   static string   previousAlert="nothing";
   static datetime previousTime;
   string message;
   
   if (previousAlert != doWhat || previousTime != Time[forBar]) {
       previousAlert  = doWhat;
       previousTime   = Time[forBar];

       //
       //
       //
       //
       //

       message =  StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," Possible Trend ",doWhat);
          if (alertsMessage) Alert(message);
          if (alertsEmail)   SendMail(StringConcatenate(Symbol(),"HalfTrend "),message);
          if (alertsSound)   PlaySound("alert2.wav");
   }
}









Responded

1
Developer 1
Rating
(137)
Projects
167
35%
Arbitration
11
91% / 0%
Overdue
0
Free
2
Developer 2
Rating
(82)
Projects
86
57%
Arbitration
25
0% / 84%
Overdue
19
22%
Free
3
Developer 3
Rating
(1156)
Projects
1462
63%
Arbitration
21
57% / 10%
Overdue
43
3%
Free
4
Developer 4
Rating
(168)
Projects
263
62%
Arbitration
4
50% / 25%
Overdue
10
4%
Free
5
Developer 5
Rating
(574)
Projects
945
47%
Arbitration
309
58% / 27%
Overdue
125
13%
Free
6
Developer 6
Rating
(64)
Projects
144
46%
Arbitration
21
38% / 24%
Overdue
32
22%
Working
7
Developer 7
Rating
(8)
Projects
10
40%
Arbitration
0
Overdue
0
Free
8
Developer 8
Rating
(26)
Projects
23
39%
Arbitration
26
8% / 38%
Overdue
0
Free

Project information

Budget
30+ USD