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

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

Новая версия мобильной платформы MetaTrader 5 для Android уже доступна для загрузки в Google Play.

Что нового:
Обновите свое приложение и оцените его новые возможности!




2015.10.14 14:48:18.486 Data Folder: C:\Program Files\MetaTrader 5 2015.10.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.10.14 14:48:18.486 MetaTrader 5 build 1190 started (MetaQuotes Software Corp.)




struct MqlTick { datetime time; // Время последнего обновления цен double bid; // Текущая цена Bid double ask; // Текущая цена Ask double last; // Текущая цена последней сделки (Last) ulong volume; // Объем для текущей цены Last long time_msc; // Время последнего обновления цен в миллисекундах uint flags; // Флаги тиков };У каждого тика всегда заполняются все параметры, независимо от того, изменились ли данные по сравнению с предыдущим тиком. Это позволяет всегда иметь актуальное состояние цен на любой момент времени без поиска предыдущих значений по тиковой истории. Например, с тиком могла измениться только цена бид, но в структуре помимо новой цены будут указаны и остальные параметры: предыдущая цена аск, объем и т.д. Чтобы узнать, какие именно данные изменились с текущим тиком, анализируйте его флаги:
//+------------------------------------------------------------------+ //| 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(int i=0;i<10;i++) str+=" "+(string)ExtIntArray[i]; Print(str); str="Dbl:"; for(int i=0;i<10;i++) str+=" "+DoubleToString(ExtDblArray[i],1); Print(str); str="Ptr:"; for(int i=0;i<10;i++) str+=" "+(string)ExtPtrArray[i].X(); Print(str); //--- созданные через new объекты CFoo удалять не нужно, они удалятся в деструкторе объекта TArrayPtr<CFoo> }Результат выполнения:
int ObjectsDeleteAll( long chart_id, // идентификатор графика const string prefix, // префикс имени объекта int sub_window=-1, // индекс окна int object_type=-1 // тип объекта для удаления );

Исправления по крешлогам.
Обновлена документация.В свежем билде MetaTrader 5 для iPhone и iPad работать с аналитическими
объектами стало удобнее — теперь они строятся только на графике текущего символа и на выбранных таймфреймах.

Кроме того, новая версия мобильного приложения получила улучшенную совместимость с iOS 9.
Новая версия MetaTrader 5 для iOS уже доступна в App Store. В ней стало удобнее следить за финансовыми новостями: теперь вы можете выбирать лишь интересующие вас категории новостей, а понравившийся материал добавлять в "Избранное".
Другое новшество приложения — совершение сделок одним
нажатием с графика (one click trading). Для этого нужно лишь повернуть свой аппарат в
горизонтальное положение и открыть панель быстрой торговли.

Кроме того, мы добавили возможность закрытия позиций по Collateral-инструментам, что позволяет сконвертировать соответствующие активы в валюту депозита
Обновите свое приложение, чтобы получить новые возможности в своем MetaTrader 5 iOS.








Активы
(Assets) прибавляются к собственным средствам (Equity) и увеличивают
размер свободной маржи (Free Margin), что позволяет увеличить объемы
торговых операций на счете.
Таким образом, появилась возможность создавать счета с различными типами обеспечения.





ulong GetMicrosecondCount();Данная функция может быть использована для дополнительной профилировки исполнения программы и выявления "узких мест".Исправления по крешлогам.
Обновлена документация.
Обновление доступно через систему LiveUpdate.

Произведен ряд улучшений и исправлений в работе тестера стратегий. Значительно уменьшены потери времени на промежуточные подготовительные операции и сетевые задержки. Ускорено тестирование и оптимизация во всех режимах: при работе с локальными агентами тестирования, с фермой агентов в локальной сети и при использовании MQL5 Cloud Network.


Исправлены ошибки при анализе макросов.
Обновление доступно через систему LiveUpdate.
Опубликовано обновление платформы MetaTrader 5. Обновление содержит следующие изменения:
MetaTrader 5 Client Terminal build 1085



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






MetaTrader 5 Android build 1052
В Google Play стала доступна новая версия мобильного терминала MetaTrader 5 для Android. В ней исправлены некоторые ошибки и улучшена стабильность работы. В ближайших версиях планируется добавление аналитических объектов и системы обмена сообщениями.
Загрузить приложение можно по ссылке: https://download.terminal.free/cdn/mobile/mt5/android?hl=ru&utm_source=www.metaquotes.net&hl=ru
Обновление будет доступно через систему LiveUpdate.
Торговый терминал

Агенты тестирования переведены на работу только в 64-разрядных системах. Данное решение обусловлено необходимостью следовать развитию IT-индустрии. Отказ от старых технологий в пользу новых позволит увеличить производительность вычислений и даст возможность дальнейшему развитию сети облачных вычислений MQL5 Cloud Network.

Изменения в компонентах платформы:
int WebRequest (string method, string url,string headers,int timeout, const char &data[], int data_size,char &result[], string &result_headers)
Данная функция позволяет явно формировать содержимое заголовка HTTP-запроса, предоставляя более гибкий механизм взаимодействия с различными Web-сервисами. Пример - Автоматическая публикация с WebRequest()
Исправления по крешлогам.
Обновлена документация.
Обновление доступно через систему LiveUpdate.


int CopyTicks( const string symbol_name, // имя символа MqlTick &ticks_array[], // массив, в который будут помещены тики uint flags=COPY_TICKS_ALL, // флаг, определяющий тип получаемых тиков ulong from=0, // дата, начиная с которой получаются тики, указывается в миллисекундах с 01.01.1970 uint count=0 // количество последних тиков, которые необходимо получить );Тики можно запросить по дате, указав значение from, или по количеству, указав значение count. Если ни один из параметров не указан, передаются все доступных тики, но не более 2000. Также тики можно запрашивать по типу при помощи параметра flags. Доступные значения:
Исправления по крешлогам.
Обновлена документация.
Обновление будет доступно через систему LiveUpdate.