//+------------------------------------------------------------------+ //| 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.
Не забудьте обновить свой MetaTrader 5 iOS.
Исправления по крешлогам.
Обновлена документация.
Обновление будет доступно через систему 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
Не забудьте обновить свой MetaTrader 5 iOS
и проверить в деле новые возможности мобильной платформы.
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Добавлена опция безусловной синхронизации позиций между источником сигнала и счетом подписчика. Если данная опция включена, то при начальной синхронизации состояния подписчика и источника сигнала синхронизация позиций (в том числе закрытие уже имеющихся открытых позиций, не принадлежащих сигналу) производится без необходимости дополнительного подтверждения в диалоговых окнах.
Данная опция необходима при использовании сигналов на VPS (Virtual Private Server) и также может быть использована для повышения надежности синхронизации при работе с уже выбранным сигналом.
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Добавлена возможность отсылки push-уведомлений о торговых транзакциях, происходящих на клиентском счете: добавление, изменение и удаление ордеров и сделок, активация отложенных ордеров и SL-TP, попадание счета под margin call и stop-out.
Добавлено отображение и управление алертами с графика.
При разрешенной опции управления торговыми уровнями с чарта значение цены у алерта может быть изменено перетаскиванием мышью на новый ценовой уровень. Алерт может быть отключен или удален с помощью контекстного меню соответствующего уровня на графике.
int a[2][2]={0,1,2,3};Раньше требовалась запись вида
int a[2][2]={{0,1},{2,3}};
Стандартная библиотека. Добавлен класс CFlameCanvas ("Include\Canvas\FlameCanvas.mqh") и пример его использования Flame Chart ("Indicators\Examples\Canvas\FlameChart.mq5") - данный пример демонстрирует возможности построения собcтвенных изображений на чарте средствами MQL5.
Продолжаются работы по использованию общего для MetaTrader 4 и MetaTrader 5 компилятора и среды разработки MQL5:
Вместо работы над совместимостью MQL4 -> MQL5, мы решили пойти наоборот. Мы перенесли максимум функций и возможностей языка MQL5, полностью сохраняя функционал MQL4. То есть все мощные функции MQL5, включая ООП и компилятор в нативный код, станут доступны в MQL4. Для этого мы разработали единый компилятор, который автоматически поддерживает оба языка MQL4 и MQL5. MetaEditor тоже становится единым для обеих платформ MetaTrader 4 и MetaTrader 5. С его помощью можно компилировать как MQL4,так и MQL5 из любой версии.
MQL5 Storage с MetaTrader 4
Разработчикам станет легко работать с версионным контролем исходников, участвовать в групповых разработках и синхронизировать файлы.
Улучшение защиты кода приложений в MetaTrader 4
В новых EX4/EX5-файлах серьезная и полностью переработанная защита по сравнению со старым EX4.
Маркет приложений MetaTrader 4
Переход на новый компилятор, поддерживающий ресурсы и штатную защиту под конкретный компьютер пользователя, позволит создавать и продавать полноценные приложения. За защиту EX4/EX5-файлов, проданных через Маркет, не стоит беспокоиться - там нет байткода, а лишь чистый нативный код, подписанный нашим приватным ключом. Это позволит привести в порядок все существующее многообразие продаваемых решений и защитить продавцов.
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Добавлено отображение скальперского стакана цен для инструментов, у которых отсутствует биржевой стакан цен:
Новый стакан позволяет выставлять, модифицировать и удалять ордера с минимальными затратами времени и максимальной наглядностью, обеспечивая лучшие возможности для прибыльной торговли.
Добавлена возможность выставления стоп-ордеров из стакана цен:
При нажатии кнопки покупки или продажи на ценовом уровне терминал автоматически определяет тип выставляемого ордера - stop или limit - и отправляет его на торговый сервер.
Добавлена команда отображения истории сделок на чарте:
В информацию о сигнале добавлено отображение графика Equity и отзывов о сигнале. Добавлено предупреждение о дате последней торговой транзакции.
bool ResourceReadImage( const string resource_name, // имя графического ресурса для чтения uint& data[], // массив для получения данных из ресурса uint& width, // ширина копируемой области из ресурса uint& height, // высота копируемой области из ресурса );
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Добавлена возможность установки уровней Stop Loss и Take Profit в торговом диалоге выставления рыночного ордера для торговых инструментов с типами исполнения "Market Execution" и "Exchange Execution". При этом, если значение уровней задается в пунктах, то конечное значение выставляемых цен Stop Loss и Take Profit будет рассчитываться на основе текущей рыночной цены для данного ордера на момент выставления заявки в клиентском терминале.
При перемещении торговых уровней ордеров и стопов добавлен показ отклонения торговых уровней от цены рынка, позиции или ордера в пунктах и в валюте депозита клиента.
Во всплывающие подсказки торговых уровней добавлен показ отклонения торговых уровней от цены рынка, позиции или ордера в пунктах и в валюте депозита клиента.
Добавлена опция "Использовать клавишу Alt для перетаскивания торговых уровней" - при включенной опции перетаскивание торговых уровней производится только при нажатой клавише Alt.
В строку состояния клиентского счета добавлен показ валюты депозита.
Переработано представление списка сигналов:
Добавлена возможность изменения размеров окон в отладчике.
Добавлены команды редактирования:
"Make Uppercase (Ctrl+Shift+U)\Make Lowercase (Ctrl+U)" - конвертировать все символы выделенного текста в заглавные/строчные.
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com