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

 
Trintoro:

Мне нравится эта статья.

Ваша идея сделать эмулятор мт4, очень хорошая идея...

Я согласен с Тринторо. Эта статья не о миграции, а скорее об эмуляции. Меня очень волнует скорость исполнения, особенно после прочтения этой статьи и ответа Роша на эту тему. Я думаю, что то, что происходит с этой темой, это то, что пользователи все еще думают на MQL4. Возможно, по привычке, так что я не могу его винить.

Лучше заново изучить и заново написать все прямо в mql5, чем использовать команды, которые предлагает эта статья.

Тем не менее, полезно знать различия, которые показаны в этой статье.

BTW. По привычке:

1. Нажатие F5 (или F7, но редко использую) в MQL4 MetaEditor компилирует, в MQL5 MetaEditor - F7 компилирует, F5 запускает/возобновляет отладку.

2. В MQL4 MetaEditor при нажатии Esc появляется/скрывается окно Toolbox, в MQL5 MetaEditor ничего не происходит.

Миграции, которые меня раздражают :)

 
Спасибо!!!!!!  Клевая, массивная, очень нужная и полезная работа!!!!  Даже при отдельных недостатках, очень очень помогает при переводе робота с языка на язык. Я не говорю о совершенно подстрочном переводе, нет, просто при когда смотриш на робота в четвертом, и не знаеш, где же в справке пятого искать эту то что не компилируется допустим.. А тут собраны обьяснения в подробностях!!! Очень очень нужно и полезно! 
 

Подскажите, пожалуйста, с помощью какого кода в MQL5 можно получить то же самое, что указано ниже для MQL4?

double AccountFreeMarginCheck(string symbol,
                              int cmd,
                              double volume)
 Аналога НЕТ
AccountFreeMarginCheck
Возвращает размер свободных средств, которые останутся после открытия указанной позиции по текущей цене на текущем счете.
AccountFreeMarginCheck - Документация на MQL4
  • docs.mql4.com
AccountFreeMarginCheck - Документация на MQL4
 
solandr:

Подскажите, пожалуйста, с помощью какого кода в MQL5 можно получить то же самое, что указано ниже для MQL4?

...
Посмотрите функции OrderCalcProfit(...) и OrderCalcMargin(...). 
 

iBarShift ошибочная.

Подробности https://www.mql5.com/ru/forum/11243/

 

Уважаемые ребята,

Я вызываю нижеприведенную функцию в своем индикаторе. Но я получил 7 предупреждений. Могу ли я улучшить нижеприведенную функцию, чтобы не показывать предупреждение:

double MarketInfoMQL4(string symbol,
                      int type)
  {
   switch(type)
     {
      case MODE_LOW:
         return(SymbolInfoDouble(symbol,SYMBOL_LASTLOW));
      case MODE_HIGH:
         return(SymbolInfoDouble(symbol,SYMBOL_LASTHIGH));
      case MODE_TIME:
         return(SymbolInfoInteger(symbol,SYMBOL_TIME));
      case MODE_BID:
         //return(Bid);
      case MODE_ASK:
         //return(Ask);
      case MODE_POINT:
         return(SymbolInfoDouble(symbol,SYMBOL_POINT));
      case MODE_DIGITS:
         return(SymbolInfoInteger(symbol,SYMBOL_DIGITS));
      case MODE_SPREAD:
         return(SymbolInfoInteger(symbol,SYMBOL_SPREAD));
      case MODE_STOPLEVEL:
         return(SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL));
      case MODE_LOTSIZE:
         return(SymbolInfoDouble(symbol,SYMBOL_TRADE_CONTRACT_SIZE));
      case MODE_TICKVALUE:
         return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_VALUE));
      case MODE_TICKSIZE:
         return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE));
      case MODE_SWAPLONG:
         return(SymbolInfoDouble(symbol,SYMBOL_SWAP_LONG));
      case MODE_SWAPSHORT:
         return(SymbolInfoDouble(symbol,SYMBOL_SWAP_SHORT));
      case MODE_STARTING:
         return(0);
      case MODE_EXPIRATION:
         return(0);
      case MODE_TRADEALLOWED:
         return(0);
      case MODE_MINLOT:
         return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN));
      case MODE_LOTSTEP:
         return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP));
      case MODE_MAXLOT:
         return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX));
      case MODE_SWAPTYPE:
         return(SymbolInfoInteger(symbol,SYMBOL_SWAP_MODE));
      case MODE_PROFITCALCMODE:
         return(SymbolInfoInteger(symbol,SYMBOL_TRADE_CALC_MODE));
      case MODE_MARGINCALCMODE:
         return(0);
      case MODE_MARGININIT:
         return(0);
      case MODE_MARGINMAINTENANCE:
         return(0);
      case MODE_MARGINHEDGED:
         return(0);
      case MODE_MARGINREQUIRED:
         return(0);
      case MODE_FREEZELEVEL:
         return(SymbolInfoInteger(symbol,SYMBOL_TRADE_FREEZE_LEVEL));

      default: return(0);
     }
   return(0);
  }
 
advali82:

Уважаемые ребята,

Я вызываю нижеприведенную функцию в своем индикаторе. Но я получил 7 предупреждений. Могу ли я улучшить нижеприведенную функцию, чтобы не показывать предупреждение:

Что это за предупреждения?
 
RaptorUK:
Что такое предупреждение?

предупреждение это:

возможна потеря данных из-за преобразования типа Ciiio.mq5 676 10

Documentation on MQL5: Language Basics / Data Types / Typecasting
  • www.mql5.com
Language Basics / Data Types / Typecasting - Documentation on MQL5
 

В статье Переход с MQL4 на MQL5 в заключении говорится

3. Планируется создание эмулятора, который позволит запускать ваши программы на MQL4 в новом терминале МТ5.

кто подскажет, этот эмулятор уже есть или когда он появится?

 
Novikov:

В статье Переход с MQL4 на MQL5 в заключении говорится

кто подскажет, этот эмулятор уже есть или когда он появится?

Да он был создан одновременно со статьёй. Только смысла в нём, без торговых функций, нет!