Торговый терминал
- В обзор рынка добавлена работа с тиковой историей. Если раньше тиковый
график показывал только ту историю, что накопилась в терминале за время его работы, то
теперь появился доступ ко всей тиковой истории на торговом сервере.
Отключите автоскрол и начните прокручивать тиковый график мышкой назад в
прошлое, чтобы загрузить с торгового сервера недостающую историю, как
это сделано для обычных ценовых графиков. Новый функционал будет полезен
трейдерам, которые хотят получать максимально детальные графики
изменения цены.
![](/c/17/2015/10/terminal1.png)
Для автоматического получения более глубокой тиковой истории используйте функцию CopyTicks(), ее работа изменена таким образом, что запрашивает и загружает отсутствующую историю при ее наличии на торговом сервере.
- На графике рядом с панелью "Торговля одним кликом" добавлена иконка для
быстрого включения/выключения стакана цен. Вы можете также
пользоваться новым хоткеем Alt+B, который работает не только на
самом графике, но и в окне Market Watch - в этом случае открывается
стакан цен по тому символу, который выделен в Обзоре рынка.
![](/c/17/2015/10/terminal2.png)
- Добавлена запись в журнал о характеристиках компьютера и операционной
системы на старте клиентского терминала. Пример:
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.)
- Улучшена работа с символами в "Обзоре рынка" (Market Watch):
- Добавлен показ количества символов в Market Watch и общего доступного числа символов на торговом сервере
- Добавлена строка добавления нового символа с интеллектуальным списком вариантов на выбор
- В строке добавления поиск производится не только по имени символа, но также по его описанию и международному имени.
![](/c/17/2015/10/terminal3.png)
- Добавлена поддержка календаря экономических событий на нескольких языках.
- Добавлены недостающие пиктограммы стран в экономическом календаре.
- Добавлены горячие клавиши для вызова окна управления символами в Обзоре рынка - Ctrl+U.
- Исправлено упорядочивание открытых окон графиков командами в меню "Window".
- Исправлена ошибка, когда терминал в некоторых случаях не мог найти
файл сертификата при использовании расширенной аутентификации.
- Исправлена ошибка, приводившая в некоторых случаях к зацикливанию синхронизации ценовой истории.
- Исправлена ошибка, приводившая к занулению уровней StopLoss/TakeProfit у
ранее открытой позиции при увеличении ее объема, если инструмент
торгуется в режиме Request Execution.
- В стакане цен
исправлена проверка возможности выставления ордеров на продажу при
наличии длинной позиции по инструментам с режимом торговли "Long only".
- Исправлена работа функции Trailing Stop. В некоторых редких случаях
защитный Stop Loss мог неправильно подтягиваться для открытой позиции.
- Продолжены работы по адаптации интерфейса к работе на экранах высокого разрешения (4К).
- Исправлена ошибка, приводившая к выгрузке исторических данных как
неиспользуемых, несмотря на регулярные обращения к данным из MQL5
программ.
- Исправлено отображения ряда элементов пользовательского интерфейса при работе в Windows 10.
- Обновлены переводы пользовательского интерфейса.
Маркет
- Переработана и оптимизирована работа с базой продуктов MQL5 Market.
- Добавлен запрет на покупку без MQL5.community аккаунта при использовании терминала в среде виртуальной машины. Теперь
для покупки необходимо указать аккаунт MQL5.community в настройках терминала:
Сервис - Настройки - Сообщество.
- Добавлена прямая покупка продуктов с помощью платежной системы UnionPay.
- Добавлено расширенное журналирование при покупке продуктов в MQL5 Market.
Виртуальный хостинг и Сигналы
- Теперь виртуальный хостинг и подписку на торговые сигналы
можно оплатить напрямую через платежные системы.
Для оплаты хостинга не обязательно заходить на MQL5.community и пополнять
аккаунт. Теперь вы можете сразу оплатить услугу в одной из платежных систем
прямо в платформе.
![](/c/17/2015/10/virtual_hosting1.png)
Выберите подходящую систему и проведите платеж:
![](/c/17/2015/10/virtual_hosting2.png)
Точно так же прямо из терминала вы можете напрямую оформить платную подписку
на торговые сигналы, просто выберите удобную для вас систему оплаты.
![](/c/17/2015/10/virtual_hosting3.png)
Нужная сумма будет сначала зачислена на ваш MQL5.community аккаунт, а затем
с него будет произведена оплата. Таким образом, вы всегда сможете иметь прозрачную
и понятную историю арендованных хостингов и подписок на сигналы, а также
видеть все свои платежи за сервисы MQL5.community. - Добавлено управление виртуальным хостингом (кроме миграции) при работе в 32-х битной версии клиентского терминала.
- Исправлена миграция настроек FTP-экспорта на виртуальный хостинг, независимо от разрешения публикации по FTP.
MQL5
- Включен новый оптимизирующий компилятор. В 64-битных платформах
исполнение программ ускорено до 5 раз. MQL5-программы необходимо
перекомпилировать в последней версии MetaEditor.
- Расширен формат структуры MqlTick. Теперь в ней передается время
прихода тика в миллисекундах, а также флаги, позволяющие определить,
какой именно параметр тика изменился.
struct MqlTick
{
datetime time;
double bid;
double ask;
double last;
ulong volume;
long time_msc;
uint flags;
};
У каждого тика всегда заполняются все параметры, независимо от
того, изменились ли данные по сравнению с предыдущим тиком. Это
позволяет всегда иметь актуальное состояние цен
на любой момент времени без поиска предыдущих значений по тиковой
истории. Например, с тиком могла измениться только цена бид, но в
структуре помимо новой цены будут указаны и остальные параметры:
предыдущая цена аск, объем и т.д. Чтобы узнать, какие именно данные
изменились с текущим тиком, анализируйте его флаги:
- TICK_FLAG_BID - тик изменил цену бид
- TICK_FLAG_ASK - тик изменил цену аск
- TICK_FLAG_LAST - тик изменил цену последней сделки
- TICK_FLAG_VOLUME - тик изменил объем
- TICK_FLAG_BUY - тик возник в результате сделки на покупку
- TICK_FLAG_SELL - тик возник в результате сделки на продажу
Структура MqlTick используется в двух методах:
- CopyTicks
- метод не поддерживает старый формат структуры. Скомпилированные ранее
файлы EX5, использующие старый формат тика, при вызове функции
CopyTicks будут возвращать ошибку 4006 (ERR_MQL_INVALID_ARRAY).
- SymbolInfoTick - метод поддерживает и старый, и новый формат структуры.
- Добавлены шаблоны классов, что позволяет создавать параметризованные
классы как в C++. Это позволяет добиться еще большего абстрагирования и
использовать один и тот же код для работы с объектами разных классов
единообразно. Пример использования:
#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]);
}
};
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<double> ExtDblArray;
TArrayPtr<CFoo> ExtPtrArray;
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);
}
Результат выполнения:
TemplTest (EURUSD,H1) Int: 10 11 12 13 14 15 16 17 18 19
TemplTest (EURUSD,H1) Dbl: 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0
TemplTest (EURUSD,H1) Ptr: 30 31 32 33 34 35 36 37 38 39
- Добавлены новые операции * и & - соответственно, появилось получение
переменной по ссылке и получение ссылки на переменную.
- Добавлена перегруженная форма функции ObjectsDeleteAll - удаление по префиксу имени в подокне графика всех объектов указанного типа.
int ObjectsDeleteAll(
long chart_id,
const string prefix,
int sub_window=-1,
int object_type=-1
);
- Исправлена работа функции
ObjectGetValueByTime. Ранее в некоторых случаях (например, для
горизонтальной трендовой линии) некорректно возвращалось значение цены
по времени на чарте.
- Исправлена работа Copy* функций при
отсутствии исторических данных на сервере. Ранее при отсутствии данных
на сервере вызов этих функций приводил к задержке на 30-50 секунд,
прежде чем вернуть управление.
- Внесен ряд исправлений в стандартную библиотеку MQL5.
- Документация по Стандартной библиотеке переведена на немецкий, французский, китайский, турецкий, испанский и португальский языки.
- Добавлена документация MQL5 на японском языке.
Tester
- Теперь выбирать программы для запуска в тестере стратегий стало
гораздо удобнее. Список показывается в виде дерева в соответствии с каталогами,
в которых находятся советники и индикаторы.
![](/c/17/2015/10/tester.png)
- Отображение некоторых индикаторов при визуальном тестировании приведено в соответствие с клиентским терминалом.
- Исправлена ошибка выставления плеча и таймфрейма графика при отладке MQL5-программ через тестер стратегий.
- Исправлена отладка индикаторов при тестировании на исторических данных.
Исправления по крешлогам.
Обновлена документация.