Помогите скомпилировать - страница 2

 
dkd1193:

Тогда вопрос, сколько будет стоить работа по переводу Кода с МТ4 на МТ5 в долларах? Скажите пожалуйста, если не затруднит

//+------------------------------------------------------------------+
//|                                                    indicator.mq5 |
//|                                      Copyright 2018, © Cyberdev. |
//|                    https://www.mql5.com/en/users/cyberdev/seller |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, © M_B_K, © Cyberdev."
#property link      "https://www.mql5.com/en/users/cyberdev/seller"
#property version   "1.00"
#property indicator_chart_window

#property indicator_plots 0

//--— input parameters 
input int sidFontSize=80;
input string sidFontName="Impact";
input string NoteRedGreenBlue="Red/Green/Blue each 0..255";
input int sidRed=30;
input int sidGreen= 30;
input int sidBlue = 30;
input int sidXPos = 30;
input int sidYPos = 150;

input bool tagDisplayText=true;
input string tagText="ReadYourText";
input int tagFontSize=20;
input string tagFontName="Impact";
input int tagRed=60;
input int tagGreen= 30;
input int tagBlue = 60;
input int tagXPos = 0;
input int tagYPos = 550;

//--— data 
string SID = "Symbol";
int sidRGB = 0;
string TAG = "Tag";
int tagRGB = 0;
string tf;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void watermark(string obj,string text,int fontSize,string fontName,color colour,int xPos,int yPos)
{
  ObjectCreate(0, obj, OBJ_LABEL, 0, 0, 0);
  ObjectSetString(0, obj, OBJPROP_TEXT, text);
  ObjectSetString(0, obj, OBJPROP_FONT, fontName);
  ObjectSetInteger(0, obj, OBJPROP_FONTSIZE, fontSize);
  ObjectSetInteger(0, obj, OBJPROP_COLOR, colour);
  ObjectSetInteger(0, obj, OBJPROP_CORNER, 0);
  ObjectSetInteger(0, obj, OBJPROP_XDISTANCE, xPos);
  ObjectSetInteger(0, obj, OBJPROP_YDISTANCE, yPos);
  ObjectSetInteger(0, obj, OBJPROP_BACK, true); 
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void deinit(){
  ObjectDelete(0, SID);
  ObjectDelete(0, TAG);
}

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(){
   switch(Period())
     {
      case PERIOD_D1:
         tf="D1";
         break;
      case PERIOD_H1:
         tf="H1";
         break;
      case PERIOD_H4:
         tf="H4";
         break;
      case PERIOD_M1:
         tf="M1";
         break;
      case PERIOD_M15:
         tf="M15";
         break;
      case PERIOD_M30:
         tf="M30";
         break;
      case PERIOD_M5:
         tf="M5";
         break;
      case PERIOD_MN1:
         tf="MN1";
         break;
      case PERIOD_W1:
         tf="w1";
         break;
      default:
         tf="Unknown";
         break;
     }

   if(tagRed>255 || tagGreen>255 || tagBlue>255 || sidRed>255 || sidGreen>255 || sidBlue>255)
     {
      Alert("Watermark Red/Green/Blue components must each be in range 0..255");
     }

   tagRGB=(tagBlue<<16);
   tagRGB |= (tagGreen << 8);
   tagRGB |= tagRed;

   sidRGB=(sidBlue<<16);
   sidRGB |= (sidGreen << 8);
   sidRGB |= sidRed;
//---
  return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason){
  deinit(); 
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[]
){
//---
   double chartHi,chartLo;
   double range;
   static double prevRange;

   chartHi = ChartGetDouble(0, CHART_PRICE_MAX, 0);
   chartLo = ChartGetDouble(0, CHART_PRICE_MIN, 0);
   range=chartHi-chartLo;

// need only draw the watermark if the chart range has changed 
   if(prevRange!=range)
     {
      deinit();
      prevRange=range;

      watermark(SID,tf+" "+Symbol(),sidFontSize,sidFontName,sidRGB,sidXPos,sidYPos);
      if(tagDisplayText && StringLen(tagText)>0)
        {
         watermark(TAG,tagText,tagFontSize,tagFontName,tagRGB,tagXPos,tagYPos);
        }
     } 
//--- return value of prev_calculated for next call
   return(rates_total);
}
//+------------------------------------------------------------------+
 
Mihail Matkovskij:

Мир не без добрых людей =)
Спасибо Вам огромное. По-больше бы таких людей, как Вы и мир станет куда лучше, чем есть на самом деле

 
dkd1193:

Мир не без добрых людей =)
Спасибо Вам огромное. По-больше бы таких людей, как Вы и мир станет куда лучше, чем есть на самом деле

Пожалуйста. Это было несложно. Заодно вспомнил отличия MQL4 от MQL5. Давно не писал ничего на MQL4 :)
Причина обращения: