Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Торгуй как успешные трейдеры - подпишись на их сигналы!
MetaQuotes Software Corp.
Модератор
180310
MetaQuotes Software Corp. 2016.06.01 14:58 

Новая версия платформы MetaTrader 4 build 970: Упрощенное открытие демо-счетов и расширение возможностей MQL4

В пятницу 3 июня 2016 года будет опубликовано обновление платформы MetaTrader 4. Обновление содержит следующие изменения:

Поддержка терминалов MetaTrader 4 ниже 940-го билда будет прекращена 1 июля 2016 года

С 1 июля 2016 года прекращается поддержка клиентских терминалов MetaTrader 4 ниже 940-го билда. Такие терминалы не смогут подключаться к серверам новых версий. В связи с этим настоятельно рекомендуем обновить ваши терминалы.


MetaTrader 4 build 970

  1. Terminal: Упрощен диалог открытия демо-счета. Теперь не нужно заполнять большую анкету, достаточно указать основные данные и выбрать торговые параметры: тип счета, депозит и плечо.




  2. MQL4: Изменился формат исполняемых EX4-файлов в связи с добавлением новых возможностей в язык MQL4. Все старые EX4-программы, скомпилированные в MetaEditor предыдущих билдов, после обновления будут работать корректно. Таким образом, совместимость снизу вверх сохранена полностью.

    В то же время, EX4-программы, скомпилированные на билдах 970 и выше, не будут работать в терминалах старых билдов - обратной совместимости нет.

  3. MQL4: Добавлена поддержка абстрактных классов и чисто виртуальных функций.

    Абстрактные классы предназначены для создания обобщенных сущностей, на основе которых в дальнейшем предполагается создавать более конкретные производные классы. Абстрактный класс – это класс, который может использоваться лишь в качестве базового класса для некоторого другого класса, поэтому невозможно создать объект типа абстрактного класса.

    Класс, содержащий хотя бы одну чисто виртуальную функцию, является абстрактным. Поэтому классы, производные от абстрактного класса, должны реализовать все его чисто виртуальные функции, иначе они также будут абстрактными классами.

    Виртуальная функция объявляется как "чистая" с помощью синтаксиса спецификатора чистоты. Рассмотрим в качестве примера класс CAnimal, который создается только для того, чтобы предоставлять общие функции – сами объекты типа CAnimal имеют слишком общий характер для практического применения. Таким образом, класс CAnimal является хорошим кандидатом в абстрактный класс:
    class CAnimal
      {
    public:
                          CAnimal();     // конструктор
       virtual void       Sound() = 0;   // чисто виртуальная функция
    private:
       double             m_legs_count;  // количество ног животного
      };
    Здесь функция Sound() является чисто виртуальной, потому что она объявлена со спецификатором чисто виртуальной функции PURE (=0).

    Чисто виртуальными функциями являются только такие виртуальные функции, для которых указан спецификатор чистоты PURE, а  именно: (=NULL) или (=0). Пример объявления и использования абстрактного класса:
    class CAnimal
      {
    public:
       virtual void       Sound()=NULL;   // PURE method, должен быть переопределен в потомке, сам класс CAnimal стал абстрактным и не может быть создан
      };
    //--- потомок от абстрактного класса
    class CCat : public CAnimal
     {
    public:
      virtual void        Sound() { Print("Myau"); } // PURE переопределен, класс CCat не абстрактный и может быть создан
     };
    
    //--- примеры неправильного использования
    new CAnimal;         // ошибка 'CAnimal' - компилятор выдаст ошибку "cannot instantiate abstract class"
    CAnimal some_animal; // ошибка 'CAnimal' - компилятор выдаст ошибку "cannot instantiate abstract class"
    
    //--- примеры правильного использования
    new CCat;  // ошибки нет - класс CCat не абстрактный
    CCat cat;  // ошибки нет - класс CCat не абстрактный
    Ограничения на использование абстрактных классов
    При вызове конструктором абстрактного класса чистой виртуальной функции (прямо или косвенно) результат будет неопределенным.
    //+------------------------------------------------------------------+
    //| Абстрактный базовый класс                                        |
    //+------------------------------------------------------------------+
    class CAnimal
      {
    public:
       //--- чисто виртуальная функция
       virtual void      Sound(void)=NULL;
       //--- функция
       void              CallSound(void) { Sound(); }
       //--- конструктор
       CAnimal()
        {
         //--- явный вызов виртуального метода
         Sound();
         //--- неявный вызов (через третью функцию)
         CallSound();
         //--- в конструкторе и/или деструкторе всегда вызываются свои функции,
         //--- несмотря на виртуальность и переопределение вызываемой функции в потомке
         //--- если вызываемая функция чисто виртуальная, то
         //--- вызов приведет к критической ошибке выполнения: "pure virtual function call"
        }
      };
    Однако конструкторы и деструкторы абстрактных классов могут вызывать другие функции-члены.

  4. MQL4: Для облегчения организации событийных моделей добавлена поддержка указателей на функции.

    Чтобы объявить указатель на функцию, определите тип "указатель на функцию", например:
    typedef int (*TFunc)(int,int);
    Теперь TFunc является типом и можно объявить переменную-указатель на функцию:
    TFunc func_ptr;
    В переменную func_ptr можно сохранить указатель на функцию, чтобы в дальнейшем ее вызывать:
    int sub(int x,int y) { return(x-y); }
    int add(int x,int y) { return(x+y); }
    int neg(int x)       { return(~x);  }
    
    func_ptr=sub;
    Print(func_ptr(10,5));
    
    func_ptr=add;
    Print(func_ptr(10,5));
    
    func_ptr=neg;           // ошибка: neg не имеет тип  int (int,int)
    Print(func_ptr(10));    // ошибка: должно быть два параметра
    Указатели на функции можно хранить и передавать в качестве параметра. Нельзя получить указатель на нестатический метод класса.

  5. MQL4: В перечисление свойств клиентского терминала ENUM_TERMINAL_INFO_INTEGER добавлено значение TERMINAL_SCREEN_DPI — разрешающая способность вывода информации на экран измеряется в количестве точек на линейный дюйм поверхности (DPI). Знание этого параметра позволяет задавать размеры графических объектов таким образом, чтобы они выглядели одинаково на мониторах с различной разрешающей способностью.
  6. MQL4: В перечисление свойств клиентского терминала ENUM_TERMINAL_INFO_INTEGER добавлено значение TERMINAL_PING_LAST — последнее известное значение пинга до торгового сервера в микросекундах. В одной секунде миллион микросекунд.
  7. MQL4: В пользовательских индикаторах буферы DRAW_NONE (нет графических построений) теперь не участвуют в расчетах минимума и максимума окна графика.
  8. MQL4: Исправлено формирование событий, связанных с перемещением мыши и нажатием кнопок мыши над объектами типа OBJ_LABEL и OBJ_TEXT. Ранее, если они находились в пределах других объектов типа OBJ_RECTANGLE_LABEL, OBJ_RECTANGLE, события формировались некорректно.
  9. MQL4: В пользовательских индикаторах исправлена отрисовка столбиков гистограммы нулевой высоты. Раньше такие столбики не рисовались, теперь они рисуются высотой в 1 пиксель.
  10. Signals: Исправлены ошибки поиска торговых инструментов при сопоставлении доступных торговых инструментов источника сигнала и подписчика.
  11. Tester: Исправлено применение спреда в fxt-файле, если в настройках тестирования используется текущий спред.
  12. Market: Исправлен ряд ошибок отображения витрины Маркета.
  13. MetaEditor: Исправлен поиск слова по файлам в режиме "Только слово целиком".
  14. MetaEditor: Добавлен переход к файлу по двойному клику на строке результата компиляции соответствующего файла.
  15. MetaEditor: Исправлено отображение некоторых элементов управления в Windows XP.
  16. Исправления по крешлогам.

Обновление будет доступно через систему LiveUpdate.

Alexandr Saprykin
5972
Alexandr Saprykin 2016.06.01 15:20  
я уж думал совсем забросили мт4, а нет -будет дальше жить.
Vitaly Muzichenko
3264
Vitaly Muzichenko 2016.06.01 16:12  
Замечательно что ведётся работа над четвёртой версией. Будем надеяться что четвёрка послужит ещё лет 5 минимум, а там может выйдет шестая версия, в которую войдёт совместимость советников и индикаторов на языке mq4 и mq5, вот тогда всё будет здОрово. Можно будет писать и запускать советники на двух языках без каких либо конфликтов и ошибок компиляции!
Alexey Volchanskiy
16218
Alexey Volchanskiy 2016.06.01 16:15  
Alexandr Saprykin:
я уж думал совсем забросили мт4, а нет -будет дальше жить.
Ага, MQL4 с задержкой подтягивают до MQL5. Абстрактные классы, указатели на функции появились в пятерке вроде как 2-3 месяца назад?
Vladimir Pastushak
65987
Vladimir Pastushak 2016.06.06 07:41  
открыл демку на demo.metaquotes.net:443 но терминал не хочет обновляться, а седня уже понедельник 6 е...
Aytugan Khafizov
Модератор
438
Aytugan Khafizov 2016.06.06 07:50  
Vladimir Pastushak:
открыл демку на demo.metaquotes.net:443 но терминал не хочет обновляться, а седня уже понедельник 6 е...

1) Попробуйте перезапустить терминал

2) Терминал в логах пишет "LiveUpdate: new version 4.00 build 970 is available" ?
 

Vladimir Perervenko
2321
Vladimir Perervenko 2016.06.06 08:04  

Как то был разговор о реализации в МТ4  АПИ к R.

Эта работа осталась в планах и ориентировочно когда?

Удачи

Vladimir Pastushak
65987
Vladimir Pastushak 2016.06.06 08:09  
Aytugan Khafizov:

1) Попробуйте перезапустить терминал

2) Терминал в логах пишет "LiveUpdate: new version 4.00 build 970 is available" ?
 

1 - делал не помогает

2 - в логах запись есть 

Vladimir Pastushak
65987
Vladimir Pastushak 2016.06.06 08:11  
Vladimir Perervenko:

Как то был разговор о реализации в МТ4  АПИ к R.

Эта работа осталась в планах и ориентировочно когда?

Удачи

Интересно а многим ли это нужно ????
Alexey Viktorov
6064
Alexey Viktorov 2016.06.06 08:11  
Aytugan Khafizov:

1) Попробуйте перезапустить терминал

2) Терминал в логах пишет "LiveUpdate: new version 4.00 build 970 is available" ?
 

У меня эта строка после перезапуска появилась, но загрузка файлов так и не началась. Ориентируюсь на примерное время загрузки предыдущих обновлений.
Alexey Volchanskiy
16218
Alexey Volchanskiy 2016.06.06 08:16  
Vladimir Pastushak:

1 - делал не помогает

2 - в логах запись есть 

Владимир, сделайте Открыть Счет, наберите сервер MetaQuotes-Demo и откройте там временно демку - все обновиться, потом обратно на рабочий залогинетесь. Очевидно, проблемы у вашего ДЦ. 
/ /123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий