МТ4 или МТ5. Какие преимущества и недостатки? - страница 5

 
Максим Дмитриев:

 зачем вы лжете самому себе?)

А в чем разница если программировать по уму


Например избавимся от MarketInfo заменив их на один из вариантов Получение рыночной информации которые так-же нормально работает в MQL4 и MQL5. Правда иногда чтоб не выскакивали предупреждения нужно указать тип значения.

Например:

double ask = (double)SymbolInfoDouble(Symbol(), SYMBOL_ASK);

int stopLevel = (int)SymbolInfoInteger(Symbol(), SYMBOL_TRADE_STOPS_LEVEL);

Так что если расширите свои познания в языке для вас будет без разницы под что писать, я последнее время вообще пишу большинство своих работ сразу под 2 версии. Иногда используя

#ifdef __MQL5__
     ....
#else
     ....
#endif

 

Вот вспомнил...

Индикаторы не ползают в интернете, только эксперты.

Но это и для МТ4 и МТ5 одинаково не есть хорошо

 
Andrei:

Как то вы видимо совсем не в курсе что МТ5 явно вырождающаяся ветка, а популярностью пользуется МТ4... Даже если бесплатно МТ5 будут раздовать в нагрузку к МТ4, то тоже смысла не видно ...


улыбнуло. Спасибо за юмор.

 
Nikolai Semko:

улыбнуло. Спасибо за юмор.


он имел ввиду эти ветки

https://www.mql5.com/ru/forum/6343

https://www.mql5.com/ru/forum/160587

 
George Merts:

С чего бы это ?

МТ4 и МТ5 - это абсолютно одинаковый язык, и говорить, что "МТ4 проще" - это все равно, что говорить, что "Язык СССР проще, чем язык РФ".

Выше верно отметили всю разнницу - для МТ4 все еще предлагаются более привлекательные условия, чем для МТ5. С точки зрения программирования - разницы никакой.


Взял робота написанного на MQL5, скомпилировал в редакторе MQL4: 100 error(s), 13 warning(s).

И ошибки не только в работе с ордерами, вот например:

'iMA' - wrong parameters count

'IndicatorRelease' - function not defined

'CopyBuffer' - function not defined





 
Aliaksandr Yemialyanau:

Взял робота написанного на MQL5, скомпилировал в редакторе MQL4: 100 error(s), 13 warning(s).

И ошибки не только в работе с ордерами, вот например:

'iMA' - wrong parameters count

'IndicatorRelease' - function not defined

'CopyBuffer' - function not defined





А зачем вы ключ от соседской квартиры тыкаете в свою замочную скважину?
Все ошибки на раз правятся.
 
Aliaksandr Yemialyanau:

Взял робота написанного на MQL5, скомпилировал в редакторе MQL4: 100 error(s), 13 warning(s).

И ошибки не только в работе с ордерами, вот например:

'iMA' - wrong parameters count

'IndicatorRelease' - function not defined

'CopyBuffer' - function not defined





Прям с рабочего кода скопировал.


     #ifdef __MQL5__
          if(BarsCalculated(m_handle_macd) < iBarLook+1) return;
    
          if(  CopyBuffer( m_handle_macd, 0, 0, iBarLook+1, m_buff_MACD_main ) == iBarLook+1 &&
               CopyBuffer( m_handle_macd, 1, 0, iBarLook+1, m_buff_MACD_signal ) == iBarLook+1 )
          {
               MacdCurrent    = m_buff_MACD_main[0];
               MacdPrevious   = m_buff_MACD_main[iBarLook];
               SignalCurrent  = m_buff_MACD_signal[0];
               SignalPrevious = m_buff_MACD_signal[iBarLook];
              
               ArrayFree(m_buff_MACD_main);
               ArrayFree(m_buff_MACD_signal);
          }
     #else
          MacdCurrent    = iMACD(Symbol(), 0, MACDfastEMA, MACDslowEMA, MACDsigLine, MACD_Price, MODE_MAIN, 0);
          MacdPrevious   = iMACD(Symbol(), 0, MACDfastEMA, MACDslowEMA, MACDsigLine, MACD_Price, MODE_MAIN, iBarLook);
          SignalCurrent  = iMACD(Symbol(), 0, MACDfastEMA, MACDslowEMA, MACDsigLine, MACD_Price, MODE_SIGNAL, 0);
          SignalPrevious = iMACD(Symbol(), 0, MACDfastEMA, MACDslowEMA, MACDsigLine, MACD_Price, MODE_SIGNAL, iBarLook);
     #endif

И ни каких ошибок компиляции в обоих версиях.
 
Artyom Trishkin:
А зачем вы ключ от соседской квартиры тыкаете в свою замочную скважину?
Все ошибки на раз правятся.

Если "МТ4 и МТ5 - это абсолютно одинаковый язык", то и ошибок быть не должно.

 
Konstantin Nikitin:

Прям с рабочего кода скопировал.


     #ifdef __MQL5__
          if(BarsCalculated(m_handle_macd) < iBarLook+1) return;
    
          if(  CopyBuffer( m_handle_macd, 0, 0, iBarLook+1, m_buff_MACD_main ) == iBarLook+1 &&
               CopyBuffer( m_handle_macd, 1, 0, iBarLook+1, m_buff_MACD_signal ) == iBarLook+1 )
          {
               MacdCurrent    = m_buff_MACD_main[0];
               MacdPrevious   = m_buff_MACD_main[iBarLook];
               SignalCurrent  = m_buff_MACD_signal[0];
               SignalPrevious = m_buff_MACD_signal[iBarLook];
              
               ArrayFree(m_buff_MACD_main);
               ArrayFree(m_buff_MACD_signal);
          }
     #else
          MacdCurrent    = iMACD(Symbol(), 0, MACDfastEMA, MACDslowEMA, MACDsigLine, MACD_Price, MODE_MAIN, 0);
          MacdPrevious   = iMACD(Symbol(), 0, MACDfastEMA, MACDslowEMA, MACDsigLine, MACD_Price, MODE_MAIN, iBarLook);
          SignalCurrent  = iMACD(Symbol(), 0, MACDfastEMA, MACDslowEMA, MACDsigLine, MACD_Price, MODE_SIGNAL, 0);
          SignalPrevious = iMACD(Symbol(), 0, MACDfastEMA, MACDslowEMA, MACDsigLine, MACD_Price, MODE_SIGNAL, iBarLook);
     #endif

И ни каких ошибок компиляции в обоих версиях.

Этот код как раз опровергает утверждение что "МТ4 и МТ5 - это абсолютно одинаковый язык"

 
Aliaksandr Yemialyanau:

Если "МТ4 и МТ5 - это абсолютно одинаковый язык", то и ошибок быть не должно.

Если писать код, и при этом ещё и думать, то всё работает. А если тупо пытаться использовать отсутствующие функции из mql5, и никак их не определить для mql4, то да, тяжело будет...
Только дело не в языках, а в кодере.