Enivid

Administrator
Staff member
Nov 30, 2008
17,135
1,046
144
Odessa
www.earnforex.com
Oh sorry Mr Enivid ... I get a mq4 version of a indicator named fibocalc. This one car be convert to mq5 ?
Here is the Fibocalc indicator converted from MQL4 to MQL5.
 

Attachments

  • fibocalc_v34.ex5
    20.6 KB · Views: 10
  • fibocalc_v34.mq5
    19 KB · Views: 12
  • 👍
Reactions: zx2000zx1

Kevin2022

Trader
Sep 3, 2022
1
0
6
27
Hi, can anyone here help me to convert this mq4 into mq5? I would like to use it with mt5.
This is Multi ZigZag's source cod indicator
 

Attachments

  • MultiZigZag.mq4
    37.8 KB · Views: 4

Pchew

Newbie
Sep 5, 2022
4
0
2
46
Hi, can anyone help to convert this indicator from mq4 into mq5? Thanks
 

Attachments

  • Solar Winds joy - histo.mq4
    3.3 KB · Views: 5

coinmatic

Trader
Apr 5, 2021
2
0
17
Hi, can someone assist with converting these from MQ4 to MQ5? Thank you.
 

Attachments

  • adaptive Gann High-Low activator jma Heiken Ashi arrows-1_2.0.mq4
    18.6 KB · Views: 8
  • RSIOMA_v2HHLSX.mq4
    6.5 KB · Views: 7
  • BUY-SELL.SIGNAL.mq4
    3 KB · Views: 10
Last edited:

Pchew

Newbie
Sep 5, 2022
4
0
2
46
Solar Winds is a repainting indicator. Are you sure you want it?
Hi, yes, I know the solar wind joy indicator is repainting. Can you pls help to convert it from mq4 to mq5? Thank you for your time.
 

Attachments

  • Solar Winds joy - histo.mq4
    3.3 KB · Views: 6

Enivid

Administrator
Staff member
Nov 30, 2008
17,135
1,046
144
Odessa
www.earnforex.com
Hi, it looks different from the one i am using on MT4 and i check that solar wind and solar wind joy indicator is not really the same. Can you help to convert the solar wind joy indicator to mq5? Thanks.
I will look into it, but as you see, the waiting time here can be quite long.
 

KMAtrades

Trader
Nov 20, 2021
2
0
12
49
Hi, Enivid would you kindly help to convert this MT4 indicator MT5? I have attached .mq4 file
SL&TP Values indicator
 

Attachments

  • SL&TP Values.mq4
    29 KB · Views: 1

startatrix

Trader
Jan 28, 2023
1
0
6
53
Hi I'm new here. Could someone please help me convert this Fibonacci MT4 to MT5 version. Original cod is here https://www.mql5.com/en/code/9876
I converted most of it but I can't get it to work properly.

1674907800977.png

Could you also make the indicator values available so that I can read from expert EA. Hope you can help

MQL5:
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property description "AutoFib TradeZones "
 
#property indicator_chart_window
#property indicator_buffers  2
 
#property indicator_label1  "High"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrLime
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
 
#property indicator_label2  "Low"
#property indicator_type2  DRAW_LINE
#property indicator_color2  clrRed
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
 
 
input int Fib_Period = 240;
input bool Show_StartLine = false;
input bool Show_EndLine = false;
input bool Show_Channel = false;
input int Fib_Style = 5;
input color Fib_Color = Gold;
input color StartLine_Color = RoyalBlue;
input color EndLine_Color = FireBrick;
input color BuyZone_Color = MidnightBlue;
input color SellZone_Color = FireBrick;
 
//---- buffers
double WWBuffer1[];
double WWBuffer2[];
 
double level_array[10]={0,0.236,0.382,0.5,0.618,0.764,1,1.618,2.618,4.236};
string leveldesc_array[13]={"0","23.6%","38.2%","50%","61.8%","76.4%","100%","161.8%","261.80%","423.6%"};
int level_count;
string level_name;
string StartLine = "Start Line";
string EndLine = "End Line";
 
 
 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
 
if (Show_Channel)
   {
 
   SetIndexBuffer(0, WWBuffer1);
   SetIndexBuffer(1, WWBuffer2);
   }
   IndicatorSetInteger(INDICATOR_DIGITS,Digits());
 
 
   ObjectCreate(0,"FibLevels", OBJ_FIBO, 0, iTime(_Symbol, PERIOD_CURRENT, 0) ,iHigh(_Symbol, PERIOD_CURRENT, 0) ,iTime(_Symbol,PERIOD_CURRENT, 0) ,iLow(_Symbol, PERIOD_CURRENT, 0));
   ObjectCreate(0, "BuyZone", OBJ_RECTANGLE, 0,0,0,0);
   ObjectCreate(0, "SellZone", OBJ_RECTANGLE, 0,0,0,0);
 
   if (Show_StartLine)
        {if (ObjectFind(0, StartLine)==-1)
           {
            ObjectCreate(0, StartLine,OBJ_VLINE,0,iTime(_Symbol, PERIOD_CURRENT,Fib_Period) ,iClose(_Symbol, PERIOD_CURRENT, 0));
            ObjectSetInteger(0, StartLine,OBJPROP_COLOR,StartLine_Color);
            ObjectSetInteger(0, StartLine,OBJPROP_WIDTH ,5);
            ObjectSetInteger(0, StartLine,OBJPROP_SELECTABLE ,true);
           }
        }
    if (Show_EndLine)
        {if (ObjectFind(0, EndLine)==-1)
           {
            ObjectCreate(0, EndLine,OBJ_VLINE,0,iTime(_Symbol,PERIOD_CURRENT,0) ,iClose(_Symbol, PERIOD_CURRENT, 0));
            ObjectSetInteger(0, EndLine,OBJPROP_COLOR,EndLine_Color);
             ObjectSetInteger(0, EndLine,OBJPROP_WIDTH ,5);
            ObjectSetInteger(0, EndLine,OBJPROP_SELECTABLE,true);
           }
        }
 
   return(INIT_SUCCEEDED);
  }
 
 void OnDeinit(const int reason)
 {
      ObjectDelete(0, "FibLevels");
      ObjectDelete(0, "BuyZone");
      ObjectDelete(0, "SellZone");
 }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
//---
 
 
    //Start Line -------------------------------------------
   int BarShift;
  if (Show_StartLine)
  {   
   datetime HLineTime=ObjectGetValueByTime(0, StartLine, OBJPROP_TIME, 0);
 
   if (HLineTime>=iTime(_Symbol,PERIOD_CURRENT,0)) {
      BarShift=0;
    }
     BarShift=iBarShift(NULL,0,HLineTime);
  }   
   else if (!Show_StartLine){BarShift=0;}
   if (ObjectFind(0, StartLine)==-1) {BarShift=0;}
 
 //End Line -------------------------------------------
   int BarShift2;
  if (Show_EndLine)
  {   
   datetime HLine2Time=ObjectGetTimeByValue(0,EndLine,OBJPROP_TIME, 0);
Print(HLine2Time);
   if (HLine2Time>=iTime(_Symbol, PERIOD_CURRENT, 0)) {
      BarShift2=0;
   }
   BarShift2=iBarShift(NULL,0,HLine2Time);
  }   
   else if (!Show_EndLine){
      BarShift2=0;
   }
   if (ObjectFind(0, EndLine)==-1) {
      BarShift2=0;
   }   
//----------------------------------------------------------
 
   double SellZoneHigh,BuyZoneLow;
   if (Show_StartLine) {
      SellZoneHigh = iHigh(_Symbol,0,iHighest(_Symbol,0,MODE_HIGH,BarShift-BarShift2,BarShift2+1));
      BuyZoneLow = iLow(_Symbol,0,iLowest(_Symbol,0,MODE_LOW,BarShift-BarShift2,BarShift2+1));
    }
 
    if (!Show_StartLine) {
      SellZoneHigh = iHigh(_Symbol,0,iHighest(_Symbol,0,MODE_HIGH,Fib_Period,1));
      BuyZoneLow = iLow(_Symbol,0,iLowest(_Symbol,0,MODE_LOW,Fib_Period,1));
    }
 
   double PriceRange = SellZoneHigh - BuyZoneLow;
   double BuyZoneHigh = BuyZoneLow + (0.236*PriceRange);
   double SellZoneLow = SellZoneHigh - (0.236*PriceRange);
   datetime StartZoneTime =iTime(_Symbol,PERIOD_CURRENT, Fib_Period);
   datetime EndZoneTime =iTime(_Symbol, PERIOD_CURRENT, 0) +iTime(_Symbol, PERIOD_CURRENT, 0);
 
   level_count=ArraySize(level_array);
 
   int bars;
   int    counted_bars=prev_calculated;
   int    limit,i;
 
   bars=rates_total-1;
 
   if(counted_bars>0) counted_bars--;
   limit=bars-counted_bars;
 
   for(i=limit-1; i>=0; i--) {
 
      WWBuffer1[i] = getPeriodHigh(Fib_Period,i);
      WWBuffer2[i] = getPeriodLow(Fib_Period,i);
 
      if (Show_StartLine)
      {
         ObjectSetInteger(0, "FibLevels", OBJPROP_TIME, 0, iTime(_Symbol, PERIOD_CURRENT,BarShift));
         ObjectSetInteger(0,"FibLevels", OBJPROP_TIME, 1, iTime(_Symbol, PERIOD_CURRENT, BarShift2));
      }
      if (!Show_StartLine)  {
         ObjectSetInteger(0,"FibLevels", OBJPROP_TIME, 0, StartZoneTime);}
         ObjectSetInteger(0,"FibLevels", OBJPROP_TIME, 1, iTime(_Symbol, PERIOD_CURRENT, 0));
 
      if (iOpen(_Symbol, PERIOD_CURRENT, Fib_Period) < iOpen(_Symbol, PERIOD_CURRENT, 0)) // Up
      {
        if (Show_StartLine) {
            ObjectSetDouble(0,"FibLevels", OBJPROP_PRICE,0, SellZoneHigh);
            ObjectSetDouble(0,"FibLevels", OBJPROP_PRICE,1, BuyZoneLow);
        }
 
        if (!Show_StartLine) {
            ObjectSetDouble(0,"FibLevels", OBJPROP_PRICE, 0, getPeriodHigh(Fib_Period,i));
            ObjectSetDouble(0,"FibLevels", OBJPROP_PRICE,1, getPeriodLow(Fib_Period,i));
         }
      } else {
        if (Show_StartLine) {
         ObjectSetDouble(0,"FibLevels", OBJPROP_PRICE,0,  BuyZoneLow);
         ObjectSetDouble(0,"FibLevels", OBJPROP_PRICE, 1, SellZoneHigh);
         }
        if (!Show_StartLine) {
         ObjectSetDouble(0,"FibLevels", OBJPROP_PRICE, 0, getPeriodLow(Fib_Period,i));
         ObjectSetDouble(0,"FibLevels", OBJPROP_PRICE, 1, getPeriodHigh(Fib_Period,i));
         }
      }
 
      ObjectSetInteger(0,"FibLevels", OBJPROP_LEVELCOLOR, Fib_Color);
      ObjectSetInteger(0,"FibLevels", OBJPROP_STYLE, Fib_Style);
      //ObjectSetInteger(0,"FibLevels", OBJ_FIBO, level_count);
 
      for(int j=0; j<level_count; j++) {
         //ObjectSetInteger(0,ObjectSetInteger(0,"FibLevels", OBJPROP_FIRSTLEVEL+j, level_array[j]);
         ObjectSetDouble(0,"FibLevels",OBJPROP_LEVELVALUE,j,level_array[j]);
         ObjectSetString(0,"FibLevels" ,OBJPROP_TEXT, j, leveldesc_array[j]);
      }
 
      if (Show_StartLine) {
         ObjectSetInteger(0,"BuyZone", OBJPROP_TIME, 1, iTime(_Symbol,PERIOD_CURRENT,BarShift));
         ObjectSetInteger(0,"BuyZone", OBJPROP_TIME,0, iTime(_Symbol,PERIOD_CURRENT,BarShift2));
      }
 
      if (!Show_StartLine) {
         ObjectSetInteger(0,"BuyZone", OBJPROP_TIME, 1, StartZoneTime);
      }
 
      ObjectSetInteger(0,"BuyZone", OBJPROP_TIME, 0, EndZoneTime);
      ObjectSetDouble(0,"BuyZone", OBJPROP_PRICE,0, BuyZoneLow);
      ObjectSetDouble(0,"BuyZone", OBJPROP_PRICE, 1,BuyZoneHigh);
      ObjectSetInteger(0,"BuyZone", OBJPROP_COLOR, BuyZone_Color);
 
      if (Show_StartLine)  {
         ObjectSetInteger(0,"SellZone", OBJPROP_TIME, 1, iTime(_Symbol, PERIOD_CURRENT,BarShift));
         ObjectSetInteger(0,"SellZone", OBJPROP_TIME,0, iTime(_Symbol, PERIOD_CURRENT,BarShift2));
      }
 
      if (!Show_StartLine) {
         ObjectSetInteger(0,"SellZone", OBJPROP_TIME,1, StartZoneTime);
      }
         ObjectSetInteger(0,"SellZone", OBJPROP_TIME,0, EndZoneTime);
         ObjectSetDouble(0,"SellZone", OBJPROP_PRICE,0, SellZoneLow);
         ObjectSetDouble(0,"SellZone", OBJPROP_PRICE, 1, SellZoneHigh);
         ObjectSetInteger(0,"SellZone", OBJPROP_COLOR, SellZone_Color);
   }
 
 
 
//--- return value of prev_calculated for next call
   return(rates_total);
  }
 
 
double getPeriodHigh(int period, int pos)
{
   double buffer = 0;
   for (int i=pos;i<=pos+period;i++)
   {
       if (iHigh(_Symbol, PERIOD_CURRENT, i) > buffer)
         {
            buffer = iHigh(_Symbol, PERIOD_CURRENT, i);
         }
       else {
         if (iOpen(_Symbol, PERIOD_CURRENT, i) > iClose(_Symbol, PERIOD_CURRENT, i)) // Down
         {
            if (iOpen(_Symbol, PERIOD_CURRENT, i) > buffer)
            {
               buffer = iOpen(_Symbol, PERIOD_CURRENT, i);
            }
         }
      }
   }
   return (buffer);
}
 
 
 
double getPeriodLow(int period, int pos) {
   double buffer = 100000;
   for (int i=pos;i<=pos+period;i++)
   {
         if (iLow(_Symbol, PERIOD_CURRENT, i) < buffer)
         {
            buffer = iLow(_Symbol, PERIOD_CURRENT, i);
         }
       else {
         if (iOpen(_Symbol, PERIOD_CURRENT, i) > iClose(_Symbol, PERIOD_CURRENT, i)) // Down
         {
            if (iClose(_Symbol, PERIOD_CURRENT, i) < buffer)
            {
               buffer = iClose(_Symbol, PERIOD_CURRENT, i);
            }
         } else {
            if (iOpen(_Symbol, PERIOD_CURRENT, i) < buffer) {
               buffer = iOpen(_Symbol, PERIOD_CURRENT, i);
            }
         }
      }
   }
   return (buffer);
}
 

Attachments

  • AutoFib_TradeZones.mq4
    7.5 KB · Views: 1