Convert mt4 indicator into mt5 indicator

MQL5 変換

仕事が完了した

実行時間10 時間
依頼者からのフィードバック
YOU ARE THE BEST YOU CONVERTED MY MT4 TO MT5 INDICATOR YOU ARE MY DEVELOPER FROM NOW
開発者からのフィードバック
The best. fast testing.

指定

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");
   }
}









応答済み

1
開発者 1
評価
(137)
プロジェクト
167
35%
仲裁
11
91% / 0%
期限切れ
0
暇
2
開発者 2
評価
(82)
プロジェクト
86
57%
仲裁
25
0% / 84%
期限切れ
19
22%
暇
3
開発者 3
評価
(1156)
プロジェクト
1462
63%
仲裁
21
57% / 10%
期限切れ
43
3%
暇
4
開発者 4
評価
(168)
プロジェクト
263
62%
仲裁
4
50% / 25%
期限切れ
10
4%
暇
5
開発者 5
評価
(574)
プロジェクト
945
47%
仲裁
309
58% / 27%
期限切れ
125
13%
暇
6
開発者 6
評価
(64)
プロジェクト
144
46%
仲裁
21
38% / 24%
期限切れ
32
22%
仕事中
7
開発者 7
評価
(8)
プロジェクト
10
40%
仲裁
0
期限切れ
0
暇
8
開発者 8
評価
(26)
プロジェクト
23
39%
仲裁
26
8% / 38%
期限切れ
0
暇

プロジェクト情報

予算
30+ USD