Обсуждение статьи "Переход с MQL4 на MQL5" - страница 5

 

Как насчет OrderMagicNumber()? Спасибо

 
song_song:

Как насчет OrderMagicNumber()? Спасибо

См. ORDER_MAGIC
 

iBarShift() прост в использовании, но iBarShiftMQL4() довольно сложен. И так далее...

 

Почему оба "TickValue() и SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)" всегда возвращают "0"?!

 

Здравствуйте, Рош:

Мне очень приятно, что вы сказали: "У меня есть планы по разработке эмулятора MQL4, который позволит вам запускать ваши MQL4-программы в новом клиентском терминале MetaTrader 5".

Я не очень хороший разработчик программ, но я трейдер. MQL5 для меня слишком сложен.

Жду вашего эмулятора MQL4. TKS a Million!

С наилучшими пожеланиями.

[Удален]  

Я обнаружил ошибку

Если открыто только одно окно графика. Тогда ID этого окна = -1

int WindowHandleMQL4(string symbol,
                     int tf)
  {
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   long currChart,prevChart=ChartFirst();
   int i=0,limit=100;
   while(i<limit)
     {
      currChart=ChartNext(prevChart);
      if(currChart<0) break; 
      if(ChartSymbol(currChart)==symbol
         && ChartPeriod(currChart)==timeframe)
         return((int)currChart);
      prevChart=currChart;
      i++;
     }
   return(0);
  }

-

int WindowHandleMQL4(string symbol,
                     int tf)
  {
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   long currChart,prevChart=ChartFirst();
   int i=0,limit=100;
   while(i<limit)
     {
      currChart=ChartNext(prevChart);
        
      if( currChart<0 && currChart != -1) break;
        
      if(ChartSymbol(currChart)==symbol
        && ChartPeriod(currChart)==timeframe)
         
         return((int)currChart);
      prevChart=currChart;
      i++;
     }
   return(0);
  }
 

Также будьте внимательны к старшинству. Я потратил полдня на отладку логики и обнаружил, что старшинство && и || отличается в MQL4 (|| первый) и MQL5 (&& первый). Поэтому при переходе с MQL4 на MQL5 убедитесь, что вы перебрали все выражения сравнения.

Migrating from MQL4 to MQL5
  • 2010.05.17
  • Sergey Pavlov
  • www.mql5.com
This article is a quick guide to MQL4 language functions, it will help you to migrate your programs from MQL4 to MQL5. For each MQL4 function (except trading functions) the description and MQL5 implementation are presented, it allows you to reduce the conversion time significantly. For convenience, the MQL4 functions are divided into groups, similar to MQL4 Reference.
 
williamwong:

Я потратил полдня на отладку логики и обнаружил, что старшинство && и || отличается в MQL4 (|| первый) и MQL5 (&& первый). Поэтому при переходе с MQL4 на MQL5 убедитесь, что вы перебрали все выражения сравнения.

Вы правы. См. раздел "Правила старшинства":

Каждая группа операций в таблице имеет одинаковый приоритет. Чем выше приоритет операций, тем выше позиция группы в таблице. Правила старшинства определяют группировку операций и операндов.

Внимание: Приоритет операций в языке MQL5 соответствует приоритету, принятому в C++, и отличается от приоритета, заданного в языке MQL4.

[Удален]  
FinGeR:

Я обнаружил ошибку

Если открыто только одно окно графика. Тогда ID этого окна = -1

-

Моя ошибка, это правда :)

int WindowHandleMQL4(string symbol,
                     int tf)
  {
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   long currChart,prevChart=ChartFirst();
   int i=0,limit=100;
   while(i<limit)
     {
      
         currChart=ChartNext(prevChart);
      if(i==0)currChart=prevChart; // Wenn nur ein Chartfenster offen ist
  
      if( currChart<0) break;
        
      if(ChartSymbol(currChart)==symbol
        && ChartPeriod(currChart)==timeframe)
        
         return((int)currChart);
      prevChart=currChart;
      i++;
     }
   return(0);
  }
 

Здравствуйте


Я буду рад узнать, были ли проверены все эти функции, мне не удалось

заставить работать функцию "CopyBufferMQL4".


Спасибо


Ноэль