Было |
Стало |
|
---|---|---|
Срабатывание | Все виды отложенных ордеров и SL/TP по Bid/Ask |
Лимитные ордера по Bid/Ask Стоп, стоп-лимитные и SL/TP ордера по Last |
Исполнение | Все виды отложенных ордеров и SL/TP по цене, заявленной в ордере |
Все виды отложенных ордеров и SL/TP по рыночным ценам Bid/Ask на момент срабатывания |
Рассмотрим
пример на инструменте Si-6.16. При текущих ценах Bid=72570, Ask=72572,
Last=72552 был выставлен ордер Buy Stop с ценой срабатывания 72580. В
ценовом потоке мы получили новые текущие цены:
На
биржевых инструментах триггером для срабатывания стоп-ордеров является
цена Last. Поэтому, поступление в потоке цены Last=72580 привело к
активации ордера Buy Stop. Ранее именно эта цена 72580 была бы
использована для исполнения данного ордера. Такое поведение было
некорректным, поскольку цены Ask=72580 для исполнения операции на
покупку на рынке нет.
Исправления по крешлогам.
По многочисленным просьбам трейдеров разработана веб-версия торговой платформы MetaTrader 5. Новинка сочетает в себе удобство и кроссплатформенность веб-терминала с преимуществами десктопной "пятерки" — скоростью, мультирыночностью, расширенными торговыми функциями.
Веб-платформа MetaTrader 5 стала доступной на сайте MQL5.community и позволяет торговать на финансовых рынках через любой браузер в любой операционной системе (Windows, Mac, Linux). Для этого не нужно устанавливать никаких программ, достаточно иметь доступ в интернет.
В бета-версии трейдерам сразу же доступны:
Неттинговая система
Эта
система учета подразумевает, что в один момент времени на счете может
быть только одна открытая позиция по одному и тому же символу:
При этом не имеет
значения, в результате какого действия совершается сделка в
противоположном направлении — в результате исполнения рыночного ордера
или срабатывания отложенного.
Ниже приведен пример совершения двух сделок на покупку EURUSD объемом 0.5 лота каждая:
Результатом исполнения этих сделок стала одна общая позиция объемом 1 лот.
Хеджинговая система
Эта
система учета позволяет иметь на счету множество торговых позиций по
одному и тому же инструменту, в том числе — разнонаправленных.
Если
по торговому инструменту есть открытая позиция и трейдер совершает
новую сделку (или срабатывает отложенный ордер), происходит открытие
новой позиции. Существующая позиция не изменяется.
Ниже приведен пример совершения двух сделок на покупку EURUSD объемом 0.5 лота каждая:
Результатом исполнения этих сделок стало открытие двух отдельных позиций.
Новый тип торговой операции Close By
Для
счетов с хеджинговым учетом позиций добавлен новый вид торговых
операций — закрытие позиции встречной. Эта операция позволяет
одновременно закрыть две разнонаправленные позиции по одному и тому же
инструменту. Если встречные позиции имеют разное количество лотов, то
открытым останется только один ордер из двух. Его объем будет равен
разности лотов двух закрытых позиций, а направление позиции и цена
открытия — большей (по объему) из закрываемых позиций.
По сравнению с одиночным закрытием двух позиций, закрытие встречной позволяет сэкономить трейдеру один спред:
При закрытии позиции встречной выставляется ордер типа "close by". В комментарии к нему указываются тикеты закрываемых позиций. Закрытие пары встречных позиций происходит двумя сделками типа "out by". Размер итоговой прибыли/убытка, полученного в результате закрытия обеих позиций, указывается только в одной сделке.
При импорте тикеты ордеров и позиций (в том числе ордеров истории) не
сохраняются, поскольку одной записи в торговой истории MetaTrader 4
может соответствовать до 4 записей в истории MetaTrader 5. Всем торговым
записям проставляются новые тикеты.
Номера счетов могут быть сохранены или заменены новыми в зависимости от того, как брокер произведет импорт.
При тестировании на реальных тиках через MQL5 Cloud Network может передаваться большой объем интернет-трафика. Это может существенно повлиять на итоговую стоимость использования вычислительной сети.
class CAnimal { public: CAnimal(); // конструктор virtual void Sound() = 0; // чисто виртуальная функция private: double m_legs_count; // количество ног животного };Здесь функция Sound() является чисто виртуальной, потому что она объявлена со спецификатором чисто виртуальной функции PURE (=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" } };Однако конструкторы и деструкторы абстрактных классов могут вызывать другие функции-члены.
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)); // ошибка: должно быть два параметраУказатели на функции можно хранить и передавать в качестве параметра. Нельзя получить указатель на нестатический метод класса.
ulong PositionGetTicket( int index // номер в списке позиций );
bool PositionSelectByTicket(
ulong ticket // тикет позиции
);
Неттинговая система
Эта система учета подразумевает, что в один момент времени на счете может
быть только одна открытая позиция по одному и тому же символу:
При этом не имеет значения, в результате какого действия совершается сделка
в противоположном направлении — в результате исполнения рыночного ордера
или срабатывания отложенного.
Ниже приведен пример совершения двух сделок на покупку EURUSD объемом 0.5
лота каждая:
Результатом исполнения этих сделок стала одна общая позиция объемом 1
лот.
Хеджинговая система
Эта система учета позволяет иметь на счету множество торговых позиций по
одному и тому же инструменту, в том числе — разнонаправленных.
Если по торговому инструменту есть открытая позиция и трейдер совершает
новую сделку (или срабатывает отложенный ордер), происходит открытие новой
позиции. Существующая позиция не изменяется.
Ниже приведен пример совершения двух сделок на покупку EURUSD объемом 0.5
лота каждая:
Результатом исполнения этих сделок стало открытие двух отдельных позиций.
Новый тип торговой операции Close By
Для счетов с хеджинговым учетом позиций добавлен новый вид торговых операций
— закрытие позиции встречной. Эта операция позволяет одновременно закрыть
две разнонаправленные позиции по одному и тому же инструменту. Если встречные
позиции имеют разное количество лотов, то открытым останется только один
ордер из двух. Его объем будет равен разности лотов двух закрытых позиций,
а направление позиции и цена открытия — большей (по объему) из закрываемых
позиций.
По сравнению с одиночным закрытием двух позиций, закрытие встречной позволяет
сэкономить трейдеру один спред:
При закрытии позиции встречной выставляется ордер типа "close by". В комментарии к нему указываются тикеты закрываемых позиций. Закрытие пары встречных позиций происходит двумя сделками типа "out by". Размер итоговой прибыли/убытка, полученного в результате закрытия обеих позиций, указывается только в одной сделке.
class CAnimal { public: CAnimal(); // конструктор virtual void Sound() = 0; // чисто виртуальная функция private: double m_legs_count; // количество ног животного };Здесь функция Sound() является чисто виртуальной, потому что она объявлена со спецификатором чисто виртуальной функции PURE (=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" } };Однако конструкторы и деструкторы абстрактных классов могут вызывать другие функции-члены.
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)); // ошибка: должно быть два параметраУказатели на функции можно хранить и передавать в качестве параметра. Нельзя получить указатель на нестатический метод класса.
ulong PositionGetTicket( int index // номер в списке позиций );
bool PositionSelectByTicket(
ulong ticket // тикет позиции
);
MetaEditor: В Мастер MQL5 добавлена ссылка на обучающий видеоролик "Как собрать торгового робота в Мастере MQL5". Посмотрите 3-минутное видео и создайте торгового робота, не написав ни одной строчки кода.
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 4/5. Для этого нужно лишь нажать кнопку "Купить" и выбрать подходящую платежную систему.
После этого вы будете перенаправлены на страницу платежной системы, где сможете завершить покупку. PayPal, WebMoney, Neteller или банковская карта - оплачивайте свои покупки в магазине готовых роботов и индикаторов привычным для себя способом.
После покупки мы все же рекомендуем зарегистрировать аккаунт MQL5.community - ваша покупка будет автоматически привязана к нему. Так вы получите возможность обновлять продукт и устанавливать его на других компьютерах. Кроме того, аккаунт MQL5.community откроет вам доступ к множеству других сервисов для платформ MetaTrader - торговым сигналам для копирования сделок успешных трейдеров, виртуальному хостингу для бесперебойной работы ваших приложений и фриланс-сервису для заказа эксклюзивных роботов у разработчиков.
Теперь вы точно знаете самый простой и быстрый способ получить торгового робота. Более 5 000 различных приложений для MetaTrader уже ждут вас в Маркете - выбирайте и покупайте!
Активы
(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.mql5.com/cdn/mobile/mt5/android?hl=ru&utm_source=www.metatrader5.com
Обновление будет доступно через систему 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.
//+------------------------------------------------------------------+ //| MacroExample | //| Copyright 2014, MetaQuotes Software Corp. | //| https://www.metaquotes.net | //+------------------------------------------------------------------+ #property script_show_inputs input bool InpSecond=true; #define DEFCLASS(class_name) class class_name:public CBase{public:class_name(string name):CBase(name){}}; #define TOSTR(x) #x #define AUTODEL(obj) CAutoDelete auto_##obj(obj) #define NEWOBJ(type,ptr) do { ptr=new type(TOSTR(ptr)); \ Print("Create object '",TOSTR(type)," ",TOSTR(ptr),"' by macro NEWOBJ"); } \ while(0) //+------------------------------------------------------------------+ //| Базовый класс, необходим для автоудаления объектов | //+------------------------------------------------------------------+ class CBase { protected: string m_name; public: CBase(string name):m_name(name) { } string Name(void) const{ return(m_name); } }; //+------------------------------------------------------------------+ //| Класс автоудаления объектов позволяет не следить за созданными | //| объектами. Он удаляет их в своем деструкторе | //+------------------------------------------------------------------+ class CAutoDelete { CBase *m_obj; public: CAutoDelete(CBase *obj):m_obj(obj) { } ~CAutoDelete() { if(CheckPointer(m_obj)==POINTER_DYNAMIC) { Print("Delete object '",m_obj.Name(),"' by CAutoDelete class"); delete m_obj; } } }; //+------------------------------------------------------------------+ //| Объявим два новых класса CFoo и CBar | //+------------------------------------------------------------------+ DEFCLASS(CFoo); DEFCLASS(CBar); //+------------------------------------------------------------------+ //| Основная функция скрипта | //+------------------------------------------------------------------+ void OnStart() { CFoo *foo; //--- создадим объект класса CFoo NEWOBJ(CFoo,foo); //--- создадим экземпляр класса автоудаления объекта CFoo foo AUTODEL(foo); //--- if(InpSecond) { CBar *bar; //--- NEWOBJ(CBar,bar); AUTODEL(bar); } //--- Удалять foo не нужно, он будет удален автоматически } //+------------------------------------------------------------------+
Исправления по крешлогам.
Обновлена документация.
Обновление доступно через систему LiveUpdate.
Исправления по крешлогам.
Обновлена документация.
Обновление доступно через систему LiveUpdate.
Возможность
перевода средств должна быть включена на торговом сервере. В
зависимости от настроек налагается ряд ограничений на то, между какими
счетами можно осуществлять перевод средств. В частности, переводы могут
быть ограничены только для счетов с совпадающими именами и почтовыми ящиками.
Исправлено отображение графических объектов типа "Label" и "Bitmap Label" с точкой привязки, расположенной в одном из нижних углов графика.
int CryptEncode(ENUM_CRYPT_METHOD method,const uchar &data[],const uchar &key[],uchar &result[]); int CryptDecode(ENUM_CRYPT_METHOD method,const uchar &data[],const uchar &key[],uchar &result[]);Для работы с функциями также добавлено новое перечисление ENUM_CRYPT_METHOD:
CRYPT_BASE64, // шифрование BASE64 (перекодировка) CRYPT_AES128, // шифрование AES с ключом 128 бит CRYPT_AES256, // шифрование AES с ключом 256 бит CRYPT_DES, // шифрование DES (длина ключа 56 бит - 7 байт) CRYPT_HASH_SHA1, // расчет HASH SHA1 CRYPT_HASH_SHA256, // расчет HASH SHA256 CRYPT_HASH_MD5, // расчет HASH MD5 CRYPT_ARCH_ZIP, // ZIP архивирование
Исправления по крешлогам.
Обновлена документация.
Обновление будет доступно через систему LiveUpdate.
Исправления по крешлогам.
Обновлена документация.
Обновление будет доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Market: В MetaTrader AppStore появилась новая категория товаров — Журналы. Теперь в магазине наряду с покупкой торговых приложений можно легко и быстро приобрести отраслевые издания, посвященные трейдингу и финансам.
Как и программы для MetaTrader 5, журналы можно купить через раздел Маркет на MQL5.community, а также непосредственно через терминал MetaTrader 5. Все журналы сопровождаются подробным описанием, а также галереей ознакомительных скриншотов:
На витрине журналов всегда отображаются актуальные выпуски. Предыдущие номера вы можете найти на вкладке "Архив".
Для покупки журнала необходимо иметь аккаунт на MQL5.com и достаточную для покупки сумму денег на нем. Данные аккаунта необходимо указать в настройках терминала на вкладке "Сообщество":
Для покупки журнала необходимо нажать кнопку "Купить" на его странице. После этого будет показан диалог подтверждения покупки:
Для продолжения покупки необходимо согласиться с правилами использования сервиса Маркет, а затем ввести пароль вашего аккаунта на MQL5.community. После этого с вашего аккаунта будет списана указанная сумма денег и произойдет скачивание журнала. Вместо кнопки "Купить" появится кнопка "Открыть".
Файлы журналов скачиваются в папку Мои документы\MQL5 Market\Magazines\[Название издания]\[Название номера]. Скачивание может осуществляться в двух форматах:
MQB - данный формат используется для платных журналов. Этот формат является защищенным. При покупке и скачивании осуществляется шифрация файла таким образом, чтобы он мог быть открыт только на том компьютере, с которого был скачан. Факт создания такой защищенной копии называется активацией. Каждый журнал может быть активирован как минимум 5 раз на различном оборудовании. Продавцы журналов могут увеличить количество активаций по своему усмотрению.
PDF - данный формат используется для бесплатных журналов. После скачивания такой файл можно переносить и просматривать на других устройствах.
Для просмотра файлов MQB в терминал MetaTrader 5 добавлен специальный компонент - MetaViewer. Именно это приложение будет запущено при нажатии кнопки "Открыть" на странице скачанного журнала. При первом запуске, если на компьютере включена система User Account Control, пользователю будет предложено разрешить терминалу ассоциировать файлы MQB с MetaViewer. После ассоциирования файлы MQB будут автоматически открываться в MetaViewer при их запуске из проводника Windows.
При нажатии "ОК" файлы будут ассоциированы, а выбранный журнал будет сразу открыт в MetaViewer. При нажатии "Отмена" произойдет только открытие файла журнала.
MetaViewer представляет собой удобное средство для просмотра журналов и книг в формате MQB и PDF. Для перелистывания используются стрелки на клавиатуре: для постраничного - стрелки вправо и влево, для прокрутки - стрелки вверх и вниз. В меню и на панели управления MetaViewer представлены дополнительные команды для настройки вида журналов и навигации по ним:
File - команды для открытия файлов и выхода из программы.
View - команды настройки отображения: переключение языка интерфейса, переключение вида страниц, включение панели управления и строки состояния, а также вращение страниц.
Navigation - команды навигации по журналам: переключение между страницами, переход к первой, последней или выбранной странице.
Zoom - команды управления масштабом страниц: увеличение и уменьшение размера, адаптация по высоте, ширине и по фактическому размеру страницы.
Help - информация о программе и полезные ссылки.
Terminal: В свойства файлов EX5 добавлена вкладка MQL. На вкладке отображается иконка, название и описание программы, указанные в ее исходном коде через соответствующие параметры #property.
Вкладка появляется только после регистрации MetaViewer в системе. Если у текущего пользователя достаточно прав и отключена система User Account Control, регистрация MetaViewer происходит автоматически при первом запуске терминала после обновления. В ином случае, при первой попытке открыть журнал пользователю будет показан диалог, запрашивающий однократное повышение прав для MetaViewer.
Terminal: Добавлен диалог быстрой регистрации на MQL5.community в случае отсутствия аккаунта. Теперь создать аккаунт на MQL5.community можно, не покидая терминал.
В окне регистрации необходимо указать желаемый логин, а также адрес электронной почты. После нажатия кнопки "Регистрация" на указанный адрес будет выслано письмо для активации аккаунта MQL5.community.
Аккаунт в сообществе MQL5.community позволяет трейдеру пользоваться мощными дополнительными сервисами:
MetaTrader 5 AppStore - прямо из терминала можно приобретать, а также скачивать бесплатно приложения для MetaTrader 5. Магазин MetaTrader 5 AppStore предлагает сотни разнообразных приложений, ассортимент которых постоянно расширяется.
Сигналы - пользователь может подписаться на торговые сигналы профессиональных трейдеров и зарабатывать. Торговые операции со счета провайдера сигналов будут автоматически копироваться на счет трейдера. Сервис также позволяет продавать собственные торговые сигналы. Подключение торгового счета к системе мониторинга занимает несколько кликов.
Работа - фриланс-сервис, позволяющий безопасно заказать разработку приложения для MetaTrader 4 и 5 профессиональным программистам. Сервис также позволяет любому заработать, оказывая услуги по разработке программ.
Terminal: В диалог информации о торговом инструменте добавлена информация о коэффициентах взимания маржи для разных типов ордеров, а также отображение списка спредов, в которые могут входить ордера и позиции по данному инструменту.
Коэффициенты маржи:
Для каждого типа ордера указывается множитель для расчета маржинальных требований относительно основной суммы залога. Основная сумма залога рассчитывается в зависимости от указанного способа расчетов (Forex, Futures и т.д.).
Подробное описание расчета маржинальных требований представлено в справочном руководстве клиентского терминала.
Спреды:
По торговыми позициям может осуществляться льготное взимание маржи, в случае когда они находятся в спреде по отношению друг к другу. Нахождением в спреде считается наличие разнонаправленных позиций по смежным инструментам. Заниженные маржинальные требования для позиций в спреде дают трейдеру больше возможностей для торговли.
У спреда есть стороны - A и B. Сторонами называются разнонаправленные позиции в спреде - покупка или продажа. При этом тип стороны не связан с определенным направлением позиции (покупка или продажа). Важно, чтобы позиции трейдера по всем символам стороны были либо длинными, либо короткими.
Для каждой стороны спреда может быть указано несколько символов с собственными коэффициентами объема. Эти коэффициенты указываются в скобках, например, LKOH-3.13 (1).Рассмотрим пример:
Чтобы позиции трейдера находились в спреде, он должен открыть позиции объемом 1 и 2 лота по GAZR-9.12 и GAZR-3.13 соответственно в одну сторону и позицию объемом 1 лот по GAZR-6.13 в другую сторону.
В колонке Margin указывается тип взимания маржи по данному спреду:
Указанная маржа взимается за единицу спреда - за указанное сочетание позиций. Если какая-то часть позиции не укладывается в спред, то с нее будет взиматься дополнительная маржа в соответствии с настройками символа. Если текущие позиции клиента имеют объем, в который указанное сочетание укладывается несколько раз, то взимаемая маржа соответствующим образом увеличивается. Например, по условиям в спреде находятся два инструмента A и B с весом 1 и 2. Если клиент имеет позиции по этим инструментам объемом 3 и 4 лота соответственно, то итоговый размер маржи будет равен удвоенному значению из настроек спреда (два спреда: 1 лот A и 2 лота B, 1 лот A и 2 лота B) плюс маржа за один оставшийся лот инструмента A.
Подробное описание спредов представлено в справочном руководстве клиентского терминала.
Market: Добавлен диалог подтверждения активации продукта с отображением числа оставшихся активаций.
Каждое приложение, приобретаемое в MetaTrader AppStore, дополнительно защищается, что позволяет использовать его только на том оборудовании, с которого оно было приобретено. Факт создания такой защищенной копии называется активацией. Каждый продукт может быть активирован как минимум 5 раз на различном оборудовании. Авторы продуктов могут увеличить количество активаций по своему усмотрению.Новый диалог позволяет предотвратить трату активаций по незнанию, информируя о том, что их количество ограничено.
MQL5: Компилятор языка MQL5 перенесен в MetaEditor. Компилятор в виде отдельного .exe файла будет доступен для скачивания.
Signals: В окно навигатора добавлен показ информации о сигнале, на который подписан аккаунт:
Если аккаунт подписан на сигнал, то для него будет отображаться соответствующая иконка с названием сигнала. При наведении курсора мыши на название будет показана информация о сроке окончания подписки. В контекстном меню доступны команды просмотра сигнала, а также отписки от него. Последняя команда отображается, только если терминал в данный момент подключен этим торговым счетом.
Показ пиктограммы подписки делает работу с сигналами в терминале более наглядной и удобной.
Signals: Добавлена легенда для графиков средств, прироста, баланса и распределения. Также на график средств добавлены иконки, показывающие моменты пополнения и снятия средств со счета. При наведении курсора мыши на треугольник балансовой операции показывается всплывающая подсказка с суммой операции:
В журнале клиентского терминала, MetaEditor и MetaTester время показывается с точностью до миллисекунд.
Улучшены сканирование и поиск серверов в диалоге открытия демо-счета - увеличена скорость сканирования, добавлен дополнительный поиск точек доступа для серверов, с которыми отсутствует соединение.
//+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- Print(__FILE__," compiled with ",__MQL5BUILD__," build"); //--- return(INIT_SUCCEEDED); }
Исправлено копирование сигналов при проведении балансовых и кредитных операций на счете подписчика. После проведения балансовой/кредитной операции изменяется общее количество средств клиента. Если в результате этого процент копирования сигналов уменьшился более чем на 1% (объем копируемых операций рассчитывается с учетом соотношения баланса подписчика и провайдера), то происходит принудительная синхронизация счета подписчика со счетом провайдера. Это происходит для коррекции текущих позиций подписчика в соответствии с новым процентом копирования.
Если в результате балансовой или кредитной операции, средства подписчика увеличились, то принудительной синхронизации не происходит.
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com