Что нового в MetaTrader 4?

История обновлений десктопной, мобильной и веб-платформ

3 февраля 2017

MetaTrader 4 build 1045

Обновление платформы MetaTrader 4 вызвано выходом предварительной версии Windows 10 Insider Preview build 15007. Изменения в механизмах безопасности ОС Windows 10 привели к тому, что в некоторых случаях клиентские терминалы MetaTrader 4 не могли запуститься.

Обязательно установите новую версию платформы, чтобы подготовиться к выходу очередного обновления Windows 10.

16 декабря 2016

MetaTrader 4 build 1031 Исправлен ряд ошибок по крешлогам.

14 октября 2016

MetaTrader 4 Android build 996
  1. Добавлен чат, в котором участники MQL5.community могут общаться между собой. Просто указав логин нужного пользователя в адресате сообщения, вы можете отправить ему послание сразу на мобильное устройство.

     

  2. Добавлена возможность редактирования уровней индикаторов.
  3. Добавлены переводы интерфейса на индонезийский язык и хинди.

30 августа 2016

MetaTrader 4 iOS build 975
  1. Полностью обновлен внешний вид сообщений. Теперь переписка на MQL5.community и уведомления из десктопной платформы показываются в виде чатов, которые вы привыкли видеть в популярных мобильных мессенджерах.
  2. Появилась возможность переключаться между 22 доступными языками прямо в платформе. Если вы предпочитаете английский язык в трейдинге, включите его в разделе "Настройки" ("О программе" в iPad), не переключая язык всего устройства.

18 августа 2016

MetaTrader 4 build 1010: Расширение возможностей MQL4

Terminal

  1. Исправлена ошибка, приводившая к невозможности выполнения MQL4-программ в терминалах при работе в 32-х разрядной версии Windows 10, build 1607.
  2. Исправлены ошибки, в некоторых случаях приводившие к некорректному отображению кнопок поиска и чата.
  3. Исправлена ошибка, в некоторых случаях приводившая к дублированию приветственных писем, получаемых в терминале при открытии демо-счетов.

MQL4

  1. Добавлены указатели 'void *', что позволит создавать абстрактные коллекции объектов. В переменную этого типа можно сохранить указатель на объект любого класса. Для обратного преобразования рекомендуется использовать оператор dynamic_cast<имя класса *>(указатель void *). Если приведение невозможно, результатом будет NULL.
    class CFoo { };
    class CBar { };
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       void *vptr[2];
       vptr[0]=new CFoo();
       vptr[1]=new CBar();
    //---
       for(int i=0;i<ArraySize(vptr);i++)
         {
          if(dynamic_cast<CFoo *>(vptr[i])!=NULL)
             Print("CFoo * object at index ",i);
          if(dynamic_cast<CBar *>(vptr[i])!=NULL)
             Print("CBar * object at index ",i);
         }
       CFoo *fptr=vptr[1];  // выдаст ошибку приведения указателей, vptr[1] не является объектом CFoo
      }
    //+------------------------------------------------------------------+

  2. Добавлена поддержка оператора [ ] для строки, что позволит получать символ из строки по индексу. Если указанный индекс выходит за пределы строки, результатом будет 0.
    string text="Hello";
    ushort symb=text[0];  // вернет код символа 'H'

  3. Ускорена работа функций копирования исторических и тиковых данных CopyXXX.
  4. Исправлена ошибка массового удаления графических объектов по префиксу при помощи функции ObjectDeleteAll. Ранее после выполнения этой функции нарушался порядок отрисовки оставшихся объектов.
  5. Исправлена ошибка, в некоторых случаях приводившая к нарушению порядка отображения графических объектов при смене таймфрейма.

Hosting

  1. В синхронизации терминала с виртуальным сервером теперь не участвуют графики без экспертов, даже если на них запущены пользовательские индикаторы. Для миграции отдельно работающего пользовательского индикатора запустите на его графике "пустого" эксперта, не выполняющего никаких действий. Его можно легко сгенерировать через Мастер MQL4 в MetaEditor, выбрав пункт "Советник: шаблон". Это гарантирует, что миграция пользовательских индикаторов производится осознанно.
  2. Теперь можно синхронизировать эксперты и пользовательские индикаторы, содержащие в своем имени нелатинские символы (например, кириллицу или иероглифы).

Внесены исправления по крешлогам.

1 июля 2016

MetaTrader 4 build 985: Встроенный чат MQL5.community

Терминал

  1. Добавлен встроенный чат. Теперь прямо в торговой платформе можно обмениваться мгновенными сообщениями с друзьями и коллегами на MQL5.community. В чате показывается полная история сообщений, а также количество непрочитанных. Для начала общения войдите в свой MQL5-аккаунт прямо из окна чата или через настройки платформы: Сервис -> Настройки -> Сообщество.




  2. Оптимизировано чтение базы внутренней почты при запуске терминала.

MQL4

  1. Добавлена возможность показывать/скрывать ценовую и временную шкалу на любом графике. Ранее MQL4-программа могла изменять свойства CHART_SHOW_PRICE_SCALE и CHART_SHOW_DATE_SCALE только того графика, на котором она запущена.
  2. Добавлено свойство MODE_CLOSEBY_ALLOWED для функции MarketInfo. Значение TRUE означает, что по указанному инструменту разрешена операция Close By - закрытие позиции встречной.
  3. Исправлена ошибка передачи строкового параметра в точку входа OnChartEvent, приводившая к ошибочному значению параметра. OnChartEvent позволяет отслеживать события графика: нажатие клавиш клавиатуры, перемещение мыши и другие.
  4. Ускорено массовое удаление графических объектов при помощи функции ObjectsDeleteAll.

Signals

  1. Доработано автоматическое сопоставление валютных пар, содержащих RUB и RUR.

Tester:

  1. Исправлено проставление времени создания графических объектов во время тестирования. Ранее проставлялось текущее время терминала вместо времени тестирования.

MetaEditor

  1. Исправлена установка фокуса в поле текста замены при открытии диалога замены.
  2. Исправлена массовая замена текста при поиске вверх от текущей позиции.
Внесены исправления по крешлогам.

3 июня 2016

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

Terminal

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




MQL4

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

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

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

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

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

    Виртуальная функция объявляется как "чистая" с помощью синтаксиса спецификатора чистоты. Рассмотрим в качестве примера класс 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"
        }
      };
    Однако конструкторы и деструкторы абстрактных классов могут вызывать другие функции-члены.

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

    Чтобы объявить указатель на функцию, определите тип "указатель на функцию", например:
    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));    // ошибка: должно быть два параметра
    Указатели на функции можно хранить и передавать в качестве параметра. Нельзя получить указатель на нестатический метод класса.

  4. В перечисление свойств клиентского терминала ENUM_TERMINAL_INFO_INTEGER добавлено значение TERMINAL_SCREEN_DPI — разрешающая способность вывода информации на экран измеряется в количестве точек на линейный дюйм поверхности (DPI). Знание этого параметра позволяет задавать размеры графических объектов таким образом, чтобы они выглядели одинаково на мониторах с различной разрешающей способностью.
  5. В перечисление свойств клиентского терминала ENUM_TERMINAL_INFO_INTEGER добавлено значение TERMINAL_PING_LAST — последнее известное значение пинга до торгового сервера в микросекундах. В одной секунде миллион микросекунд.
  6. В пользовательских индикаторах буферы DRAW_NONE (нет графических построений) теперь не участвуют в расчетах минимума и максимума окна графика.
  7. Исправлено формирование событий, связанных с перемещением мыши и нажатием кнопок мыши над объектами типа OBJ_LABEL и OBJ_TEXT. Ранее, если они находились в пределах других объектов типа OBJ_RECTANGLE_LABEL, OBJ_RECTANGLE, события формировались некорректно.
  8. В пользовательских индикаторах исправлена отрисовка столбиков гистограммы нулевой высоты. Раньше такие столбики не рисовались, теперь они рисуются высотой в 1 пиксель.

Signals

  1. Исправлены ошибки поиска торговых инструментов при сопоставлении доступных торговых инструментов источника сигнала и подписчика.

Tester

  1. Исправлено применение спреда в fxt-файле, если в настройках тестирования используется текущий спред.

Market

  1. Исправлен ряд ошибок отображения витрины Маркета.

MetaEditor

  1. Исправлен поиск слова по файлам в режиме "Только слово целиком".
  2.  Добавлен переход к файлу по двойному клику на строке результата компиляции соответствующего файла.
  3. Исправлено отображение некоторых элементов управления в Windows XP.

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

18 мая 2016

MetaTrader 4 Android build 952
  1. Появилось всплывающее окно с детальной информацией о сделках. Всего в одно касание вы можете просмотреть время открытия или закрытия ордеров, увидеть свои комментарии к позиции и узнать размер брокерской комиссии.
  2. На график добавлена красная линия, соответствующая Ask-цене последнего бара. Это поможет вам точнее контролировать свою торговлю.
  3. Упорядочена работа с новостями — теперь вы можете выбирать и читать только интересующие вас категории сообщений, а также добавлять понравившиеся материалы в избранное.
  4. Все изменения в настройках аналитических объектов сохраняются после закрытия приложения.

6 мая 2016

MetaTrader 4 iOS build 947

Теперь для доступа к приложению можно установить ПИН-код. Ваши счета будут дополнительно защищены даже в случае утери мобильного устройства. Включите "Блокировку экрана" в настройках приложения. По умолчанию будет использоваться тот же ПИН-код, что и для доступа к генератору одноразовых паролей.

В новую версию также внесены многочисленные улучшения и исправления.

23 февраля 2016

Веб-платформа MetaTrader 4: Полный набор технических индикаторов и 38 языков интерфейса

Новая версия веб-платформы MetaTrader 4 получила полный набор индикаторов для технического анализа. Теперь в ней доступны 30 самых популярных технических инструментов, как и в десктопной версии MetaTrader 4:

Accelerator Oscillator
DeMarker Moving Average
Accumulation/Distribution  Envelopes Moving Average of Oscillator
Alligator Force Index
On Balance Volume
Average Directional Movement Index Fractals Parabolic SAR 
Average True Range
Gator Oscillator Relative Strength Index 
Awesome Oscillator Ichimoku Kinko Hyo Relative Vigor Index
Bears Power
MACD Standard Deviation
Bollinger Bands
Market Facilitation Index
Stochastic Oscillator
Bulls Power
Momentum Volumes
Commodity Channel Index
Money Flow Index Williams' Percent Range


Продолжается работа над локализацией приложения, теперь интерфейс веб-платформы доступен на 38 языках мира. Были добавлены переводы еще на 14 языков:

Голландский
Литовский Хорватский
Греческий Румынский Чешский
Иврит Сербский
Шведский
Итальянский Словенский
Эстонский
Латышский
Финский



Откройте веб-платформу прямо сейчас и сами оцените обновленное приложение!

15 февраля 2016

Веб-платформа MetaTrader 4: Добавлены индикаторы Билла Вильямса

В свежей версии веб-платформы MetaTrader 4 существенно ускорена работа графиков благодаря применению современной технологии WebGL — теперь даже множество одновременно запущенных индикаторов не влияют на быстродействие веб-платформы.

Начаты работы по внедрению технических индикаторов. На текущий момент уже доступны индикаторы Билла Вильямса:

  1. Alligator,
  2. Fractals,
  3. Market Facilitation Index,
  4. Awesome Oscillator,
  5. Accelerator Oscillator,
  6. Gator Oscillator.
Продолжается работа над локализацией приложения: интерфейс переведен на хинди, узбекский и украинский языки.

15 января 2016

MetaTrader 4 iOS build 945
  • Стала доступна портретная ориентация экрана в iPad. Теперь вам будет удобнее просматривать длинные списки торговых операций, читать почту и финансовые новости.
  • Нативная поддержка iPad Pro.
  • Добавлен перевод приложения на корейский язык.

23 декабря 2015

MetaTrader 4 build 950: Встроенные видеоролики и улучшение работы

Виртуальный хостинг

  1. В диалог выделения виртуального сервера добавлена ссылка на обучающий видеоролик "Как арендовать виртуальную платформу". Посмотрите 2-минутное видео и узнайте, как просто запустить в работу торгового робота или копирование сигналов в режиме 24/7.


    Этот и многие другие видеоролики доступны на официальном канале MetaQuotes Software Corp. на YouTube.

Терминал

  1. Исправлена сортировка MQL4-программ в подпапках окна "Навигатор". Сортировка осуществляется по имени.
  2. Исправлена отрисовка индикатора состояния сетевого соединения при работе на экранах сверхвысокого разрешения (4K).
  3. Исправлен показ окна предварительного просмотра перед печатью новостей.
  4. В просмотрщик журнала терминала, экспертов, тестера и виртуального хостинга добавлен полнофункциональный поиск. Поиск можно осуществлять вперед и назад, с учетом регистра и по целому слову.

MetaEditor

  1. В Мастер MQL4 добавлена ссылка на обучающий видеоролик "Как собрать торгового робота". Посмотрите 3-минутное видео и создайте торгового робота, не написав ни одной строчки кода.


    Этот и многие другие видеоролики доступны на официальном канале MetaQuotes Software Corp. на YouTube.

MQL4

  1. Исправлено значение, возвращаемое функцией SignaBaseTotal. В некоторых случаях вместо общего количества доступных в терминале сигналов возвращался 0.
  2. Исправлена ошибка изменения видимости графического объекта на разных таймфреймах из MQL4-программ. В некоторых случаях объект не отображался на графике после изменения этого свойства.

Tester

  1. Tester: Исправлен показ значений цен и уровней SL\TP в окне результатов тестирования.
Исправления по крешлогам.

11 декабря 2015

MetaTrader 4 build 940: Адаптация для экранов со сверхвысоким разрешением (4K)

Терминал

  1. Завершены работы по адаптации интерфейса терминала к работе на экранах сверхвысокого разрешения (4K). На экранах больших размеров все элементы интерфейса показываются четко. На экранах малых размеров размер элементов автоматически увеличивается для сохранения читаемости.


MQL4

  1. Исправлена ошибка, в некоторых случаях приводившая к ошибке компиляции "Ошибка записи EX4" (Error writing EX4) при работе в Windows 10.
  2. Исправлена ошибка, в некоторых случаях приводившая к ошибке загрузки сторонних DLL в скрипты или эксперты.

Виртуальный хостинг

  1.  Исправлена ошибка миграции на хостинг при наличии вызова EX4-библиотеки в пользовательском индикаторе, который в свою очередь вызывается из эксперта.

Сигналы

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

MetaEditor

  1. Исправлена работа команд упорядочивания открытых окон, если одно из окон полностью развернуто. Через меню "Окна" открытые файлы можно расположить мозаикой, вертикально, горизонтально и каскадом.

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

26 ноября 2015

MetaTrader 4 build 920: Ускорение работы и управление визуальным тестом из конфигурационного файла

Терминал

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




  2. Оптимизирована и ускорена работа клиентского терминала.
  3. Продолжены работы по адаптации интерфейса к работе на экранах высокого разрешения (4К).

MQL4

  1. Исправлена ошибка загрузки пользовательских индикаторов из ресурсов MQL4-программ. Включение индикаторов в ресурсы происходит при помощи директивы #resource. Это позволяет создавать программы "все в одном", которые гораздо проще распространять.
  2. Исправлена точность отображения значения уровней в пользовательских индикаторах. Ранее точность отображения всегда была 4 знака после запятой, теперь она определяется точностью значений соответствующего пользовательского индикатора.
  3. Исправлена проверка возможности приведения объекта одного типа к другому типу в результате наследования при передаче объекта в качестве параметра метода\функции.
  4. Исправлен пересчет стандартных индикаторов на заданном буфере (iIndicatorOnArray), если данные заданы массивом фиксированного размера. В некоторых случаях индикатор не пересчитывался.
  5. Исправлены ошибки в шаблонах классов.

Tester

  1. Добавлена возможность управления режимом визуализации при запуске тестера из конфигурационного ini-файла. За это отвечает новый параметр TestVisualEnable (true/false). Если параметр не указан, то используется текущая настройка.
  2. Исправлена ошибка в функциях CopyXXX, в результате которой возвращались данные из реальной, а не тестовой истории.
  3. Исправлено чтение параметров тестирования из конфигурационного ini-файла, передаваемого в командной строке.
  4. Исправлена ошибка лишнего освобождения памяти после закрытия графика визуального тестирования. В ряде случаев это приводило к недоступности исторических данных для реально работающих экспертов.

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

12 ноября 2015

MetaTrader 4 build 910: Улучшения в Библиотеке кодов и доработка интерфейса для Windows 10

Библиотека кодов

  1. Исправлена и ускорена загрузка MQL4-программ из Библиотеки. Скачивайте бесплатные исходные коды торговых роботов и индикаторов прямо в терминале.


Терминал

  1. Исправлены ошибки высвобождения из памяти загруженной ценовой истории. Ошибка проявлялись при нехватке памяти.
  2. Исправлено отображение ряда элементов пользовательского интерфейса при работе в Windows 10.
  3. Исправлено удаление графических объектов с графика при помощи клавиши Backspace.

Сигналы

  1. Дополнены и исправлены переводы витрины торговых сигналов.
  2. В перечисление ENUM_SYMBOL_INFO_INTEGER добавлено read-only свойство SYMBOL_VISIBLE.

MQL4

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

Tester

  1. Добавлено ограничение при тестировании демо-версий индикаторов и экспертов из MQL5 Market. Теперь тестирование демо-версий платных продуктов принудительно завершается за неделю до текущей даты в терминале.

MetaEditor

  1. Исправлена ошибка, в некоторых случаях приводившая к конфликтам всплывающих подсказок с другими приложениями.


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

22 октября 2015

Новая версия платформы MetaTrader 4 build 900: Шаблоны классов в MQL4 и оптимизация работы с памятью

Терминал

  1. Исправлена ошибка смены пароля у неактивного (неподключенного) счета.




  2. Оптимизировано использование и освобождение памяти при работе с большими объемами исторических данных.
  3. Исправлена и оптимизирована работа с большим количеством категорий новостей.

Сигналы

  1. Исправлена отписка от сигналов из контекстного меню окна "Навигатор".


MQL4

  1. Добавлены шаблоны классов, что позволяет создавать параметризованные классы, как в C++. Это позволяет добиться еще большего абстрагирования и использовать один и тот же код для работы с объектами разных классов единообразно. Пример использования:
    //+------------------------------------------------------------------+
    //|                                                    TemplTest.mq5 |
    //|                        Copyright 2015, MetaQuotes Software Corp. |
    //|                                             https://www.mql5.com |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2015, MetaQuotes Software Corp."
    #property link      "https://www.mql5.com"
    #property version   "1.00"
    //+------------------------------------------------------------------+
    //| Объявляем шаблонный класс                                        |
    //+------------------------------------------------------------------+
    template<typename T>
    class TArray
      {
    protected:
       T                 m_data[];
    
    public:
    
       bool              Append(T item)
         {
          int new_size=ArraySize(m_data)+1;
          int reserve =(new_size/2+15)&~15;
          //---
          if(ArrayResize(m_data,new_size,reserve)!=new_size)
             return(false);
          //---
          m_data[new_size-1]=item;
          return(true);
         }
       T                 operator[](int index)
         {
          static T invalid_index;
          //---
          if(index<0 || index>=ArraySize(m_data))
             return(invalid_index);
          //---
          return(m_data[index]);
         }   
      };
    //+------------------------------------------------------------------+
    //| Шаблонный класс массива указателей, в деструкторе он удаляет     |
    //| объекты, указатели на которые хранились в нем.                   |
    //|                                                                  |
    //| Обратите внимание на наследование от шаблонного класса TArray    |
    //+------------------------------------------------------------------+
    template<typename T>
    class TArrayPtr : public TArray<T *>
      {
    public:
       void             ~TArrayPtr()
         {
          for(int n=0,count=ArraySize(m_data);n<count;n++)
             if(CheckPointer(m_data[n])==POINTER_DYNAMIC)
                delete m_data[n];
         }
      };
    //+------------------------------------------------------------------+
    //| Объявим класс, указатели на его объекты будем хранить в массиве  |
    //+------------------------------------------------------------------+
    class CFoo
      {
       int               m_x;
    public:
                         CFoo(int x):m_x(x) { }
       int               X(void) const { return(m_x); }
      };
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    TArray<int>     ExtIntArray;   // инстанцируем шаблон TArray (специализируем шаблон TArray типом int)
    TArray<double>  ExtDblArray;   // инстанцируем шаблон TArray (специализируем шаблон TArray типом double)
    TArrayPtr<CFoo> ExtPtrArray;   // инстанцируем шаблон TArrayPtr (специализируем шаблон TArrayPtr типом CFoo)
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //--- наполняем массивы данными
       for(int i=0;i<10;i++)
         {
          int integer=i+10;
          ExtIntArray.Append(integer);
          
          double dbl=i+20.0;
          ExtDblArray.Append(dbl);
          
          CFoo *ptr=new CFoo(i+30);
          ExtPtrArray.Append(ptr);
         }
    //--- выведем содержимое массивов
       string str="Int:";
       for(i=0;i<10;i++)
          str+=" "+(string)ExtIntArray[i];      
       Print(str);   
       str="Dbl:";
       for(i=0;i<10;i++)
          str+=" "+DoubleToString(ExtDblArray[i],1);
       Print(str);   
       str="Ptr:";
       for(i=0;i<10;i++)
          str+=" "+(string)ExtPtrArray[i].X();      
       Print(str);
    //--- созданные через new объекты CFoo удалять не нужно, они удалятся в деструкторе объекта TArrayPtr<CFoo>  
      }
    Результат выполнения:
    TemplTest EURUSD,M1: Ptr: 30 31 32 33 34 35 36 37 38 39
    TemplTest EURUSD,M1: Dbl: 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0
    TemplTest EURUSD,M1: Int: 10 11 12 13 14 15 16 17 18 19
  2.  Исправлено перераспределение памяти в функции ArrayCopy, в некоторых случаях приводившее к падению MQL4-программ.

Tester

  1. Исправлена ошибка, приводившая к обнулению переменных, объявленных на глобальном уровне, после завершения тестирования индикатора.
  2. Исправлено тестирование при отсутствии связи с торговым сервером.

MetaEditor

  1. В MetaAssist исправлено определение имени функции при наличии приведения типа.
  2. Исправлено открытие больших файлов.
  3. Добавлена горячая клавиша F для вызова поиска из вкладки Библиотека, а также множество подсказок в статусной строке для команд работы с кодом: увеличение/уменьшение отступов, перемещение, смена регистра и т.д.

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

2 октября 2015

MetaTrader 4 iPhone build 861
  • Работать с аналитическими объектами стало удобнее. Теперь они строятся только на текущем графике, для отображения на других символах используйте настройки. Для оптимального использования пространства выключите показ объектов на ненужных таймфреймах.
  • Просматривайте границы старших таймфреймов на графике, включив разделители периодов.
  • Улучшена совместимость с iOS 9.

18 сентября 2015

Новая версия платформа MetaTrader 4 build 880: веб-трейдинг, одноразовые пароли и расширение оплаты напрямую

MetaTrader 4 Client Terminal build 880

  1. Web Trading: Представляем вашему вниманию первую версию платформы для торговли через веб-интерфейс. В ней вы сможете торговать и проводить анализ финансовых рынков просто используя браузер! Работа с веб-платформой безопасна, вся передаваемая информация надежно шифруется.

    Веб-трейдинг пока доступен только на сайте MQL5.community, просто зайдите в новый раздел "Торговля". В будущем вы точно так же сможете торговать прямо с сайта своего брокера, так как веб-терминал легко интегрируется в HTML-страницу в виде удобного виджета через iframe.



    Добавьте торговый счет: укажите номер и название сервера, а затем укажите пароль для подключения к нему.



    Интерфейс веб-платформы аналогичен десктопной версии, поэтому разобраться с ней не составит труда. На данный момент доступны основные функции:

    • Совершение любых типов торговых операций: выставление рыночных и отложенных ордеров
    • Просмотр котировок в режиме реального времени в Обзоре рынка
    • Настраиваемые графики котировок
    • 9 периодов графиков
    • Основные аналитические объекты: горизонтальная, вертикальная и трендовая линия, равноудаленный канал и линии Фибоначчи

    Возможности веб-платформы будут постоянно расширяться.



    Управлять своими торговыми счетами можно через новый раздел профиля "Торговые счета".





  2. Hosting и Signals: Теперь виртуальный хостинг и подписку на торговые сигналы можно оплатить напрямую через платежные системы.

    Для оплаты хостинга не обязательно заходить на MQL5.community и пополнять аккаунт. Теперь вы можете сразу оплатить услугу в одной из платежных систем прямо в платформе.



    Выберите подходящую систему и проведите платеж:




    Точно так же прямо из терминала вы можете напрямую оформить платную подписку на торговые сигналы, просто выберите удобную для вас систему оплаты.




    Нужная сумма будет сначала зачислена на ваш MQL5.community аккаунт, а затем с него будет произведена оплата. Таким образом, вы всегда сможете иметь прозрачную и понятную историю арендованных хостингов и подписок на сигналы, а также видеть все свои платежи за сервисы MQL5.community.

  3. Terminal: Добавлена команда контекстного меню для быстрого подключения к веб-терминалу. Теперь вы можете прямо из платформы открыть в браузере веб-терминал с нужным торговым счетом, при этом не потребуется вводить аккаунт, пароль и название торгового сервера. Всё будет сделано автоматически.

    Пока возможность веб-трейдинга доступна только на демосчетах сервера MetaQuotes-Demo. Вы сможете торговать через веб-терминал на торговых счетах своего брокера после того, как он обновит у себя платформу MetaTrader 4 и включит возможность веб-трейдинга на серверах.



  4. Terminal: Добавлена возможность OTP-аутентификации. Использование OTP (One Time Password, одноразовый пароль) - это дополнительный уровень безопасности при работе с торговыми счетами. При каждом подключении к счету пользователю требуется ввести уникальный одноразовый пароль.

    В качестве генератора одноразовых паролей выступают мобильные терминалы MetaTrader 4 для iPhone или смартфонов на базе Android.

    Включение OTP
    Чтобы начать использовать одноразовые пароли, необходимо связать свой торговый счет с генератором паролей, в качестве которого выступают мобильные терминалы MetaTrader 4 для iPhone и смартфонов на базе Android.
    Возможность использования OTP доступна пока только на сервере MetaQuotes-Demo.

    На торговых серверах вашего брокера новый функционал станет доступен после того, как брокер обновит свою платформу MetaTrader 4 и включит в ней функцию использования OTP.
    Зайдите в раздел "Настройки" мобильного терминала и выберите пункт OTP. При первом открытии данного раздела для дополнительной безопасности требуется установить пароль из четырех цифр. Пароль потребуется вводить каждый раз для доступа к генератору паролей.



    В открывшемся окне выберите пункт "Привязать к счету".



    Далее укажите имя сервера, на котором открыт торговый счет, номер счета и главный пароль к нему. Опцию "Привязать" следует оставить включенной. Ее необходимо выключать, если вы собираетесь отвязать указанный счет от генератора и больше не использовать одноразовые пароли.

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



    Аналогичным образом вы можете привязать неограниченное количество торговых счетов к генератору.

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

    Дополнительные команды:

    • Изменить пароль - изменить пароль для доступа к генератору.
    • Синхронизировать время - синхронизировать время мобильного устройства с эталонным сервером.

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

    Использование OTP в десктопном терминале


    После привязки к генератору, при попытке подключения через десктопный терминал будет дополнительно запрашиваться одноразовый пароль:




    Для получения этого пароля откройте в своем смартфоне мобильный терминал MetaTrader 4, пройдите в раздел OTP и введите проверочный код для получения одноразового пароля.

    MetaTrader 4 Android
     MetaTrader 4 iPhone





  5. Terminal: Для быстрого обучения работе с платформой мы создали серию видео-уроков по Сигналам, Маркету и Виртуальному хостингу. Перейти к их просмотру можно прямо из платформы:



    Эти и другие ролики доступны на официальном канале MetaQuotes Software Corp. на YouTube.

  6. Terminal: Существенно расширен список параметров торговых инструментов. Для удобства просмотра спецификации в контекстное меню инструмента в Обзоре рынка добавлена новая команда.


    Добавлены следующие параметры:

    • Минимальный объем - минимальный объем сделки по инструменту.
    • Максимальный объем - максимальный объем сделки по инструменту.
    • Шаг объема - шаг изменения объема.
    • Уровень заморозки - уровень заморозки ордеров и позиций, находящихся вблизи рынка. Если цена ордера или позиции находится на расстоянии равном уровню заморозки или меньше, запрещается модификация, удаление и закрытие соответствующего ордера или позиции.
    • Процент маржи - определяет, какая часть от базового значения маржи, рассчитанного в соответствии с типом инструмента, будет взиматься.
    • Валюта маржи - расчетная валюта маржи.
    • Торговля - разрешение торговать этим инструментом: Full access - можно закрывать и открывать позиции; Close only - только закрывать; No - полный запрет торговли.
    • Исполнение - тип исполнения по инструменту: немедленный, по запросу или по рынку.
    • День тройного свопа - день недели, в который своп начисляется в тройном размере.
    • Начало обращения - день начала торговли финансовым инструментом.
    • Последний день обращения - день окончания торговли финансовым инструментом.

  7. Terminal: Теперь выбирать программы для запуска в тестере стратегий стало гораздо удобнее. Список показывается в виде дерева в соответствии с каталогами, в которых находятся советники и индикаторы.



  8. Terminal: Во всплывающих подсказках в списках открытых ордеров и торговой истории добавлено отображение причины выставления ордера.
  9. Terminal: Теперь при наведении мышки на группу наложенных графических объектов показывается всплывающая подсказка последнего отрисованного объекта, то есть самого верхнего. До исправления выбирался тултип объекта, идущего самым последним по имени в алфавитном порядке.
  10. Terminal: Добавлена запись в журнал о характеристиках компьютера и операционной системы на старте клиентского терминала. Пример:
    2015.09.14 14:48:18.486	Data Folder: E:\ProgramFiles\MetaTrader 4
    2015.09.14 14:48:18.486	Windows 7 Professional (x64 based PC), IE 11.00, UAC, 8 x Intel Core i7  920 @ 2.67GHz, RAM: 8116 / 12277 Mb, HDD: 534262 / 753865 Mb, GMT+03:00
    2015.09.14 14:48:18.486	MetaTrader 4 build 872 started (MetaQuotes Software Corp.)
  11. Terminal: Исправлены ошибки, в некоторых случаях приводившие к удалению последнего добавленного графического объекта вместо выделенного.
  12. Terminal: Исправлена заливка у графических объектов-каналов, таких как Канал Регрессии, Равноудаленный Канал и т.д.
  13. Terminal: Исправлена проверка входных параметров у индикатора "Bollinger Bands".
  14. Terminal: Исправлена ошибка, в некоторых случаях приводившая к зависанию терминала при длительном просмотре новостей.
  15. Terminal: Переписана и оптимизирована работа со внутренней почтой.
  16. Terminal: Обновлены переводы пользовательского интерфейса на португальский и немецкий языки.
  17. Terminal: Продолжены работы по адаптации интерфейса к работе на экранах высокого разрешения (4К).
  18. Market: Добавлена прямая покупка продуктов с помощью платежной системы UnionPay.
  19. Market: Переработана и оптимизирована работа с базой продуктов MQL5 Market.
  20. Market: Добавлен запрет на покупку без MQL5.community аккаунта при использовании терминала в среде виртуальной машины. Теперь для покупки необходимо указать аккаунт MQL5.community в настройках терминала: Сервис - Настройки - Сообщество.
  21. Tester: Исправлено применение спреда, установленного в параметрах тестирования, при оптимизации экспертов. Ранее в некоторых случаях использовался текущий спред вместо установленного.
  22. MQL4: Исправлена и оптимизирована функция ArrayCopy - скорость работы увеличена на 20%, исправлено копирование массива в самого себя.
  23. MQL4: Исправлена ошибка, в некоторых случаях приводившая к падению терминала при удалении графических объектов из MQL4-программ.
  24. MQL4: Исправлено поведение функции StringToTime при передаче в качестве строки только времени, без даты (например "21:03"). Ранее в качестве даты использовалась дата, соответствующая UTC таймзоне. Теперь используется дата, соответствующая текущему времени в локальной временной зоне.
  25. MQL4: Ускорена перекомпиляция MQL4-программ при первом запуске терминала с новой версией компилятора.
  26. MQL4: Добавлены новые операции * и & - соответственно, появилось получение переменной по ссылке и получение ссылки на переменную.
  27. MQL4: Исправлено поведение функции ArrayResize для некоторых  случаев.
  28. Hosting: Исправлена миграция настроек FTP-экспорта. Данные настройки указываются на вкладке "Сервис" - "Настройки" - FTP.
  29. Hosting: Переработан и упрощён мастер миграции виртуального хостинга.
  30. MetaEditor: Исправлена принудительная остановка отладки и профилировки MQL4-программ. Ранее в некоторых случаях отладка и профилировка не останавливались.
  31. MetaEditor: Добавлен перевод пользовательского интерфейса на тайский язык.
  32. Исправления по крешлогам.
Обновление будет доступно через систему LiveUpdate.

17 сентября 2015

MetaTrader 4 Android build 846
  • Добавлено 24 новых графических объекта для проведения технического анализа: линии, каналы, инструменты Ганна и Фибоначчи, волны Эллиота, геометрические фигуры.
  • Добавлена поддержка двухфакторной авторизации (OTP) для подключения к торговому счету
  • Различные исправления и улучшения
123456789