Была создана хорошая тема с визуализированной информацией - TheTips thread. Настоятельно рекомендуем прочитать эту небольшую тему всем новичкам (чтобы знать), а также опытным пользователям (чтобы освежить свои знания).
----------------
Фриланс-сервис
Как пополнить свой счет на MQL5
Как перейти к следующему этапу
Как оставить отзыв
Что такое скриншот
Как прикрепить файл предварительного технического задания/файлы других форматов
Что нужно предоставить разработчику, если в программе возникла ошибка
Как вставить изображение/код/видео/таблицу в текст
Как сделать скриншот на мобильном устройстве
Как увеличить срок исполнения ордера/стоимость
Не исчезают на 5 дней после установки 3 дней на исполнениеКлиент: Как создать GIF-изображение вместо видео для вставки в чат s
----------------
Платформа
Как установить советник/индикатор
Где находится журнал платформы/тестера/оптимизатора
Где находится MetaQuotes ID для подключения push-уведомлений
Как сделать скриншот ошибки через меню графика в три клика
Где включить и настроить уведомления по электронной почте
Где находятся файлы, с которыми работает советник/индикатор
Что такое поля 'description' и 'icon' и где их найти
Где найти номер сборки платформыКак включить окно данных и посмотреть значения индикатора
Как включить точную шкалу времени
Как сохранить шаблон графика
Как добавить URL для работы через WebRequestГде найти файлы EX4/EX5
----------------
Советник
Что такое магическое число
Как работает трейлинг-стопГде находится журнал советника
Почему советник/индикатор серый в Навигаторе
В чем разница между неттингом и хеджированием
Как установить продукт, купленный на Маркете
----------------
Тестер
Как сохранить/загрузить файл сета
Где найти журнал платформы/тестера/оптимизатора
Чем отличаются режимы тестирования друг от друга?
Как запустить и использовать визуальное тестирование
Как загрузить доступную историю цен в MetaTrader 4
Бета-версия обновленной платформы MetaTrader 5 выйдет 14 октября 2018 года. Мы обновим наш публичный сервер MetaQuotes-Demo, расположенный по адресу access.metatrader5.com:443. Мы приглашаем всех трейдеров присоединиться к тестированию, чтобы оценить возможности обновленной платформы и помочь разработчикам исправить ошибки.
Чтобы обновить платформу MetaTrader 5 до сборки 1910, подключитесь к серверу access.metatrader5.com:443.
Финальная сборка новой платформы MetaTrader 5 будет выпущена после завершения публичного бета-тестирования.
Обновление будет включать следующие изменения:
Терминал: Теперь вы можете отсоединить графики финансовых символов от окна торгового терминала.
Эта функция удобна при использовании нескольких мониторов. Так, вы можете установить на одном мониторе главное окно платформы для контроля состояния счета, а графики перенести на второй экран для наблюдения за ситуацией на рынке. Чтобы отсоединить график от терминала, отключите опцию Docked в его контекстном меню. После этого переместите график на нужный монитор.
Отдельная панель инструментов на отсоединенных графиках позволяет применять аналитические объекты и индикаторы без необходимости переключения между мониторами. Используйте контекстное меню панели инструментов для управления набором доступных команд или для ее скрытия.
Терминал: Полностью обновлены встроенные чаты. Теперь они поддерживают групповые диалоги и каналы. Ведите приватные обсуждения с группой людей в единой среде, не переключаясь между разными диалогами, и создавайте каналы в соответствии с вашими интересами и языками. Общайтесь с коллегами и друзьями в MQL5.community, не заходя на сайт.
Групповые чаты и каналы могут быть публичными или приватными. Их создатели решают, можно ли присоединиться к ним свободно или только по приглашению. Вы также можете назначить модераторов каналов и чатов для дополнительного контроля общения.
Терминал: Добавлена поддержка повышенной точности определения объема для криптовалютной торговли. Теперь минимально возможный объем торговых операций составляет 0,00000001 лота. Глубина рынка, время и продажи, а также другие элементы интерфейса теперь имеют возможность отображать объемы с точностью до 8 знаков после запятой.
Минимальный объем и шаг его изменения зависят от настроек финансового инструмента на стороне брокера.
Терминал: В окно Инструменты добавлена вкладка статей, опубликованных на MQL5.community. Более 600 подробных материалов по разработке торговых стратегий на MQL5 теперь доступны без необходимости покидать терминал. Новые статьи публикуются еженедельно.
Терминал: Добавлена поддержка расширенной аутентификации с использованием сертификатов при работе под Wine.
Терминал: Исправлено отображение глубины рынка, когда она ограничена одним уровнем.
Терминал: Добавлена команда "Сохранить как рисунок" на панель инструментов Стандартная. Теперь стало намного проще делать снимки графиков и делиться ими в сообществе.
Терминал: Исправлено применение временного сдвига при импорте баров и тиков. Ранее в некоторых случаях сдвиг не применялся.
MQL5: Добавлена встроенная поддержка библиотек .NET с "умным" импортом функций. Теперь библиотеки .NET можно использовать без написания специальных оберток - MetaEditor делает это сам.
Для работы с функциями библиотеки .NET достаточно импортировать саму DLL без определения конкретных функций. MetaEditor автоматически импортирует все функции, с которыми можно работать: .
Простые структуры (POD, plain old data)
Структуры с простыми типами данных
Публичные статические функции, имеющие параметры, в которых используются только простые типы и структуры POD или их массивы
Чтобы вызвать функции из библиотеки, просто импортируйте ее: .
#import "TestLib.dll"//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
int x=6;
TestClass::Inc(x);
Print(x);
}
Код C# функции Inc класса TestClass выглядит следующим образом: .
В результате выполнения скрипт возвращает значение 7.
MQL5: Добавлена поддержка спецификаторов inline, __inline и __forceinline при разборе кода. Наличие спецификаторов в коде не вызывает ошибок и не влияет на компиляцию. На данный момент эта возможность упрощает перенос С++ кода на MQL5. Более подробную информацию о спецификаторах можно найти в MSDN.
.
MQL5: Значительно оптимизировано выполнение MQL5-программ. В некоторых случаях прирост производительности может достигать 10%. Перекомпилируйте свои программы в новой версии MetaEditor, чтобы они выполнялись быстрее.
К сожалению, новые программы не будут совместимы с предыдущими версиями терминала из-за этой дополнительной оптимизации. Программы, скомпилированные в MetaEditor версии 1910 и более поздних, не могут быть запущены в терминалах версии ниже 1880. Программы, скомпилированные в более ранних версиях MetaEditor, могут запускаться в новых терминалах.
MQL5: Значительно оптимизированы несколько функций MQL5.
MQL5: Добавлены новые свойства для прикрепления/открепления графиков из главного окна терминала и управления их положением.
TERMINAL_SCREEN_LEFT - левая координата виртуального экрана. Виртуальный экран - это прямоугольник, который охватывает все мониторы. Если в системе два монитора, расположенных справа налево, то левая координата виртуального экрана может находиться на границе двух мониторов.
TERMINAL_SCREEN_TOP - верхняя координата виртуального экрана.
TERMINAL_SCREEN_WIDTH - ширина терминала.
TERMINAL_SCREEN_HEIGHT - высота терминала.
TERMINAL_LEFT - левая координата терминала относительно виртуального экрана.
TERMINAL_TOP - верхняя координата терминала относительно виртуального экрана.
TERMINAL_RIGHT - правая координата терминала относительно виртуального экрана.
TERMINAL_BOTTOM - нижняя координата терминала относительно виртуального экрана.
MQL5: Добавлено поле volume_real в структуры MqlTick и MqlBookInfo. Оно предназначено для работы с объемами повышенной точности. Значение volume_real имеет более высокий приоритет, чем 'volume'. Сервер будет использовать это значение, если оно указано.
struct MqlTick { datetime time; // Last price update time double bid; // Current Bid price double ask; // Current Ask price double last; // Current price of the Last trade ulong volume; // Volume for the current Last price long time_msc; // Last price update time in milliseconds uint flags; // Tick flags double volume_real; // Volume for the current Last price with greater accuracy };
struct MqlBookInfo
{
ENUM_BOOK_TYPE type; // order type from the ENUM_BOOK_TYPE enumerationdouble price; // pricelong volume; // volumedouble volume_real; // volume with greater accuracy
};
MQL5: Ослаблены требования к приведению перечислений. В случае неявного приведения компилятор автоматически подставляет значение корректного перечисления и выводит предупреждение.
Для следующего кода:
enum Main
{
PRICE_CLOSE_,
PRICE_OPEN_
};
input Main Inp=PRICE_CLOSE;
//+------------------------------------------------------------------+//| Start function |//+------------------------------------------------------------------+voidOnStart()
{
}
Компилятор выводит предупреждение:
implicit conversion from 'enum ENUM_APPLIED_PRICE' to 'enum Main' 'Main::PRICE_OPEN_' instead of 'ENUM_APPLIED_PRICE::PRICE_CLOSE' will be used
Ранее в этом случае выдавалась следующая ошибка:
'PRICE_CLOSE' - cannot convert enum
Компилятор по-прежнему будет выдавать ошибку, если в параметрах функции неправильно используются перечисления.
MQL5: Исправлена компиляция шаблонных функций. Теперь при использовании перегруженных шаблонных функций инстанцируется только необходимая перегрузка, а не все существующие.
class X { };
void f(int) { }
template<typename T>
void a(T*) { new T(2); } // previously, the compiler generated the error heretemplate<typename T>
void a() { f(0); }
voidOnInit() { a<X>(); }
MQL5: Оптимизированы некоторые случаи доступа к истории тиков через функцию CopyTicks*.
Тестер: Исправлено вычисление точности валюты депозита при тестировании/оптимизации и генерации соответствующих отчетов.
Тестер: Оптимизирована и ускорена работа тестера стратегий.
MetaEditor: Исправлен поиск по целым словам. Теперь при поиске подчеркивание учитывается как обычный символ, а не как разделитель слов.
В этой теме обсуждаются примеры кода на MQL5. Будут примеры того, как получать данные из индикаторов, как программировать советников... в общем, любые вопросы от новичка по языку MQL5.
Если вы только начинаете знакомиться с терминалом MetaTrader 5, то могу порекомендовать следующие темы:
Why products are checked before they are published in the Market
Перед публикацией любого продукта на рынке он должен пройти обязательную предварительную проверку, так как небольшая ошибка в логике работы эксперта или индикатора может привести к убыткам на торговом счете. Именно поэтому мы разработали ряд базовых проверок для обеспечения необходимого уровня качества продуктов Маркета.
Если в процессе проверки вашего продукта модераторами Маркета будут выявлены какие-либо ошибки, вам придется исправить их все. В данной статье рассмотрены наиболее частые ошибки, допускаемые разработчиками в своих торговых роботах и технических индикаторах. Мы также рекомендуем прочитать следующие статьи:
Обновление платформы MetaTrader 5 выйдет 21 февраля 2019 года. В новую версию внесены следующие изменения:
Терминал: полностью переработан встроенный экономический календарь.
Экономический календарь — это наше собственное решение. В нем вы найдете более 600 финансовых новостей и показателей, относящихся к 13 крупнейшим экономикам мира: США, Европейскому Союзу, Японии, Великобритании, Канаде, Австралии, Китаю и другим. Актуальные данные собираются из открытых источников в режиме реального времени.
В новой версии обновленный контент и расширенные фильтры событий: по времени, приоритету, валюте и стране.
Доступ к данным календаря теперь можно получить из программ MQL5. Детали смотрите ниже.
Терминал: Добавлен новый тип MQL5-приложений — Сервисы. Этот новый тип позволяет создавать собственные потоки цен для терминала, т.е. осуществлять доставку цен из внешних систем в режиме реального времени, аналогично тому, как это реализовано на торговых серверах брокеров.
В отличие от экспертов, индикаторов и скриптов сервисы не привязаны к конкретному графику. Такие приложения работают в фоновом режиме и запускаются автоматически при запуске терминала (если только такое приложение не было принудительно остановлено).
Сервисами можно управлять из нового раздела в окне Навигатора:
Как создавать услуги Для создания шаблона сервиса используйте соответствующую опцию Мастера MQL5 . Службы имеют одну точку входа OnStart , как и сценарии. На этом этапе можно реализовать бесконечный цикл приема и обработки данных с помощью сетевых функций .
Как запускать сервисы Чтобы запустить несколько копий советника или индикатора с разными параметрами, нужно запускать их на разных графиках. В этом случае создаются разные экземпляры программы, которые затем работают независимо. Сервисы не привязаны к чартам, поэтому реализован специальный механизм создания экземпляров сервисов.
Выберите сервис в Навигаторе и нажмите «Добавить сервис» в его контекстном меню. При этом откроется стандартный диалог программы MQL5, в котором вы сможете включить/отключить торговлю и получить доступ к настройкам сигнала, а также задать различные параметры.
Экземпляр службы можно запускать и останавливать с помощью соответствующего меню экземпляра. Для управления всеми экземплярами используйте сервисное меню.
Терминал: Добавлена обучающая программа.
Новая функция поможет новичкам научиться взаимодействовать с платформой. Мы добавили более 100 интерактивных советов по основным возможностям платформы.
Подсказки плавно отображаются в виде индикатора выполнения на панели инструментов и, таким образом, не отвлекают пользователя.
Подсказки появляются только для тех действий, которые вы никогда не совершали в платформе.
Все подсказки содержат интерактивные ссылки, по которым можно перейти к нужным элементам интерфейса. Например, торговый диалог или меню с нужной программой можно запустить прямо из подсказки.
Заполненная область индикатора выполнения будет увеличиваться всякий раз, когда вы выполняете соответствующие действия и продолжаете тренировку.
Терминал: История торгового счета может быть представлена в виде позиций. Платформа собирает данные о сделках, связанных с позицией (открытие, увеличение объема, частичное или полное закрытие) и группирует информацию в единую запись. Таким образом, вы можете получить доступ к деталям позиции: время открытия и закрытия, объем, цена и результат. Эта эффективная форма представления теперь доступна в исторических отчетах, экспортируемых в файлы.
Terminal: Добавлен новый API, позволяющий запрашивать данные терминала MetaTrader 5 через приложения, использующие язык R.
Мы подготовили специальный пакет для MetaTrader. Он содержит DLL для взаимодействия между R и терминалом MetaTrader 5, документацию и вспомогательные файлы r. Завершаем регистрацию пакета в репозитории CRAN , после чего он будет доступен для скачивания и установки.
Пакет можно установить с помощью специальной команды:
R CMD INSTALL --build MetaTrader
Доступны следующие команды, связанные с запросом данных:
MT5Initialize инициализирует и устанавливает соединение с терминалом MetaTrader 5. При необходимости терминал запускается во время выполнения команды.
MT5Shutdown деинициализирует и отключается от MetaTrader 5.
MT5Version получает версию терминала MetaTrader 5.
MT5TerminalInfo получает состояние и параметры подключения терминала к серверу брокера (номер счета и адрес сервера).
MT5WaitTerminal ожидает, пока терминал MetaTrader 5 подключится к серверу брокера.
MT5CopyTicksFrom(symbol, from, count, flags) копирует указанное количество тиков, начиная с указанной даты. Дата указывается в миллисекундах с 01.01.1970.
MT5CopyTicksRange(symbol, from, to, flags) копирует тики внутри указанного периода. Даты указаны в миллисекундах с 01.01.1970.
MT5CopyRatesFrom(symbol, timeframe, from, count) копирует указанное количество одноминутных баров, начиная с указанной даты. Дата указывается в секундах с 01.01.1970.
MT5CopyRatesFromPos(symbol, timeframe, start_pos, count) копирует одноминутные бары с указанной позиции относительно последнего бара.
MT5CopyRatesFromRange(symbol, timeframe, date_from, date_to) копирует бары из указанного периода. Даты указаны в секундах с 01.01.1970.
Список поддерживаемых команд будет расширен.
Terminal: Оптимизированный диалог Close By , используемый для закрытия позиции встречной. Теперь диалог не тормозится, даже если у вас большое количество открытых позиций.
Терминал: Исправлены ошибки расчета синтетических символов , из-за которых данные иногда могли пропускаться.
Терминал: при удалении пользовательского символа файлы, хранящие историю его тиков и баров, также удаляются. Это позволяет избежать накопления неиспользуемых данных на жестком диске.
Терминал: исправлено отображение результатов поиска на экранах с высоким разрешением.
CalendarValueHistoryByEvent — получает массив значений за указанный период времени по идентификатору события.
bool CalendarValueHistoryByEvent(
ulong event_id, // event ID
MqlCalendarValue& values[], // array of valuesdatetime datetime_from, // period beginning datedatetime datetime_to= 0 // period end date
);
CalendarValueHistory — получает массив значений за указанный период времени для всех событий, отфильтрованных по стране и/или валюте.
bool CalendarValueHistory(
MqlCalendarValue& values[], // array of valuesdatetime datetime_from, // beginning of perioddatetime datetime_to= 0 , // end of periodstring country_code=NULL, // country codestring currency=NULL // currency
);
CalendarValueLastByEvent — получает массив значений последних событий по идентификатору. Эта функция позволяет запрашивать значения, появившиеся с момента предыдущего запроса. Для этой операции дополнительно используется входной/выходной параметр «change_id».
При каждом изменении базы данных календаря свойство change_id (идентификатор последнего изменения) обновляется. При запросе данных вы указываете «change_id», и терминал возвращает события, появившиеся после этого времени, а также текущее значение «change_id», которое можно использовать для следующего запроса. При первом вызове функции укажите нулевой «change_id»: функция не будет возвращать никаких событий, а будет возвращать текущий «change_id» для дальнейших запросов.
bool CalendarValueHistory(
ulong event_id, // event IDulong & change_id, // last calendar change ID
MqlCalendarValue& values[] // array of values
);
CalendarValueLast — получает массив последних значений для всех событий, отфильтрованных по стране и/или валюте. Эта функция позволяет запрашивать значения, появившиеся с момента предыдущего запроса. Аналогично CalendarValueLastByEvent для запроса используется свойство change_id.
bool CalendarValueHistory(
ulong event_id, // event IDulong & change_id, // last calendar change ID
MqlCalendarValue& values[], // array of valuesstring country_code=NULL, // country codestring currency=NULL // currency
);
Новые структуры
MqlCalendarCountry — описание страны.
struct MqlCalendarCountry
{
ulong id; // country ID in ISO 3166-1string name; // text name of the countrystring code; // code name of the country in ISO 3166-1 alpha-2string currency; // country currency codestring currency_symbol; // country currency symbol/signstring url_name; // country name used in URL on mql5.com
};
MqlCalendarEvent — описание события.
struct MqlCalendarEvent
{
ulong id; // event ID
ENUM_CALENDAR_EVENT_TYPE type; // event type
ENUM_CALENDAR_EVENT_SECTOR sector; // sector to which the event belongs
ENUM_CALENDAR_EVENT_FREQUENCY frequency; // event release frequency
ENUM_CALENDAR_EVENT_TIMEMODE time_mode; // event release time modeulong country_id; // country ID
ENUM_CALENDAR_EVENT_UNIT unit; // unit for the event values
ENUM_CALENDAR_EVENT_IMPORTANCE importance; // event importance
ENUM_CALENDAR_EVENT_MULTIPLIER multiplier; // event importance multiplieruint digits; // number of decimal places in the event valuestring source_url; // source URLstring event_code; // event codestring name; // text name of the event in the terminal language
};
MqlCalendarValue — описание значения события.
struct MqlCalendarValue
{
ulong id; // value IDulong event_id; // event IDdatetime time; // event date and timedatetime period; // period, for which the event is publishedint revision; // published indicator revision in relation to the reported periodlong actual_value; // current event valuelong prev_value; // previous event valuelong revised_prev_value; // revised previous event valuelong forecast_value; // forecast event value
ENUM_CALENDAR_EVENT_IMPACRT impact_type; // potential impact on the currency rate
};
Новые перечисления
enum ENUM_CALENDAR_EVENT_FREQUENCY
{
CALENDAR_FREQUENCY_NONE = 0 , // not used
CALENDAR_FREQUENCY_WEEK = 1 , // weekly
CALENDAR_FREQUENCY_MONTH = 2 , // monthly
CALENDAR_FREQUENCY_QUARTER = 3 , // quarterly
CALENDAR_FREQUENCY_YEAR = 4 , // yearly
CALENDAR_FREQUENCY_DAY = 5 , // daily
};
enum ENUM_CALENDAR_EVENT_TYPE
{
CALENDAR_TYPE_EVENT = 0 , // event (meeting, speech, etc.)
CALENDAR_TYPE_INDICATOR = 1 , // indicator
CALENDAR_TYPE_HOLIDAY = 2 , // holiday
};
enum ENUM_CALENDAR_EVENT_SECTOR
{
CALENDAR_SECTOR_NONE = 0 , // no
CALENDAR_SECTOR_MARKET = 1 , // market
CALENDAR_SECTOR_GDP = 2 , // GDP
CALENDAR_SECTOR_JOBS = 3 , // jobs
CALENDAR_SECTOR_PRICES = 4 , // prices
CALENDAR_SECTOR_MONEY = 5 , // money
CALENDAR_SECTOR_TRADE = 6 , // trade
CALENDAR_SECTOR_GOVERNMENT = 7 , // government
CALENDAR_SECTOR_BUSINESS = 8 , // business
CALENDAR_SECTOR_CONSUMER = 9 , // consumer
CALENDAR_SECTOR_HOUSING = 10 , // housing
CALENDAR_SECTOR_TAXES = 11 , // taxes
CALENDAR_SECTOR_HOLIDAYS = 12 , // holidays
};
enum ENUM_CALENDAR_EVENT_IMPORTANCE
{
CALENDAR_IMPORTANCE_LOW = 0 , // no
CALENDAR_IMPORTANCE_NONE = 1 , // low
CALENDAR_IMPORTANCE_MODERATE = 2 , // moderate
CALENDAR_IMPORTANCE_HIGH = 3 , // high
};
enum ENUM_CALENDAR_EVENT_UNIT
{
CALENDAR_UNIT_NONE = 0 , // no
CALENDAR_UNIT_PERCENT = 1 , // percent
CALENDAR_UNIT_CURRENCY = 2 , // national currency
CALENDAR_UNIT_HOUR = 3 , // number of hours
CALENDAR_UNIT_JOB = 4 , // number of jobs
CALENDAR_UNIT_RIG = 5 , // number of rigs
CALENDAR_UNIT_USD = 6 , // US dollar
CALENDAR_UNIT_PEOPLE = 7 , // number of people
CALENDAR_UNIT_MORTGAGE = 8 , // number of mortgages
CALENDAR_UNIT_VOTE = 9 , // number of votes
CALENDAR_UNIT_BARREL = 10 , // number of barrels
CALENDAR_UNIT_CUBICFEET = 11 , // volume in cubic feet
CALENDAR_UNIT_POSITION = 12 , // number of job positions
CALENDAR_UNIT_BUILDING = 13// number of buildings
};
enum ENUM_CALENDAR_EVENT_MULTIPLIER
{
CALENDAR_MULTIPLIER_NONE = 0 , // no
CALENDAR_MULTIPLIER_THOUSANDS = 1 , // thousands
CALENDAR_MULTIPLIER_MILLIONS = 2 , // millions
CALENDAR_MULTIPLIER_BILLIONS = 3 , // billions
CALENDAR_MULTIPLIER_TRILLIONS = 4 , // trillions
};
enum ENUM_CALENDAR_EVENT_IMPACRT
{
CALENDAR_IMPACT_NA = 0 , // not available
CALENDAR_IMPACT_POSITIVE = 1 , // positive
CALENDAR_IMPACT_NEGATIVE = 2 , // negative
};
enum ENUM_CALENDAR_EVENT_TIMEMODE
{
CALENDAR_TIMEMODE_DATETIME = 0 , // the source publishes the exact time
CALENDAR_TIMEMODE_DATE = 1 , // the event takes the whole day
CALENDAR_TIMEMODE_NOTIME = 2 , // the source does not publish the event time
CALENDAR_TIMEMODE_TENTATIVE = 3 , // the source provides only date, but does not publish the exact time in advance, exact time is added when event occurs
};
Новые коды ошибок
ERR_CALENDAR_MORE_DATA = 5400 , // the array is small for the whole result (values which fit in the array were passed)
ERR_CALENDAR_TIMEOUT = 5401 , // timed out waiting for a response to the calendar data request
ERR_CALENDAR_NO_DATA = 5402 , // data not found
MQL5: Исправления и улучшения скорости работы, связанные с историей тиков и баров.
MQL5: Исправления и значительные улучшения скорости работы, связанные с функциями изменения истории тиков и баров пользовательских торговых символов, CustomTicks* и CustomRates* .
MQL5: Добавлены сетевые функции для создания TCP-соединений с удаленными хостами через системные сокеты:
SocketCreate создает сокет с указанными флагами и возвращает его дескриптор
SocketClose закрывает сокет
SocketConnect подключается к серверу с контролем времени ожидания
SocketIsConnected проверяет, подключен ли сокет в данный момент
SocketIsReadable получает количество байтов, которые можно прочитать из сокета.
SocketIsWritable проверяет, возможна ли запись данных в этот сокет в текущий момент времени
SocketTimeouts устанавливает время ожидания приема и отправки данных для объекта системного сокета.
SocketRead читает данные из сокета
SocketSend записывает данные в сокет
SocketTlsHandshake инициирует безопасное соединение TLS (SSL) с указанным хостом, используя протокол TLS Handshake.
SocketTlsCertificate получает информацию о сертификате, используемом для безопасного сетевого подключения.
SocketTlsRead считывает данные из безопасного TLS-соединения.
SocketTlsReadAvailable считывает все доступные данные из безопасного соединения TLS.
SocketTlsSend отправляет данные, используя безопасное соединение TLS.
Адрес хоста, к которому устанавливается соединение с использованием сетевых функций, должен быть явно добавлен в список разрешенных адресов в настройках терминала.
Добавлены новые коды ошибок для работы с сетевыми функциями:
ERR_NETSOCKET_INVALIDHANDLE (5270): в функцию передан неверный дескриптор сокета
ERR_NETSOCKET_TOO_MANY_OPENED (5271): открыто слишком много сокетов (максимум 128)
ERR_NETSOCKET_CANNOT_CONNECT (5272): ошибка при подключении к удаленному хосту
ERR_NETSOCKET_IO_ERROR (5273): ошибка при отправке/получении данных из сокета
ERR_NETSOCKET_HANDSHAKE_FAILED (5274): ошибка установления защищенного соединения (рукопожатие TLS)
ERR_NETSOCKET_NO_CERTIFICATE (5275) — нет данных о сертификате, используемом для безопасного соединения
ArrayRemove удаляет из массива указанное количество элементов, начиная с указанного индекса.
bool ArrayRemove(
void & array[], // array of any typeuint start, // the index to start removaluint count=WHOLE_ARRAY // number of elements
);
ArrayInsert вставляет в массив-получатель указанное количество элементов из исходного массива, начиная с указанного индекса.
bool ArrayInsert(
void & dst_array[], // receiver arrayconstvoid & src_array[], // source arrayuint dst_start, // index in the receiver array where to insertuint src_start= 0 , // index in the source array to start copyinguint count=WHOLE_ARRAY // number of inserted elements
);
ArrayReverse переворачивает в массиве указанное количество элементов, начиная с указанного индекса.
bool ArrayReverse(
void & array[], // array of any typeuint start= 0 , // index to start reversinguint count=WHOLE_ARRAY // number of elements
);
MQL5: В функции CustomRatesUpdate , CustomRatesReplace , CustomTicksAdd и CustomTicksReplace добавлен новый параметр "uint count". Это позволяет указать количество элементов переданного массива, которые будут использоваться для этих функций. Значение WHOLE_ARRAY используется для параметра по умолчанию. Это означает, что весь массив будет использован.
MQL5: Добавлена функция CustomBookAdd для передачи статуса стакана цен для пользовательского символа. Функция позволяет транслировать стакан цен, как если бы цены поступали с сервера брокера.
int CustomBookAdd(
conststring symbol, // symbol nameconst MqlBookInfo& books[] // an array with the DOM elements descriptionsuint count=WHOLE_ARRAY // number of elements to be used
);
MQL5: Добавлена перегрузка функции CustomSymbolCreate . Это позволяет создать собственный торговый символ на основе существующего. После создания любое свойство символа можно редактировать с помощью соответствующих функций.
boolCustomSymbolCreate (
conststring symbol_name, // custom symbol nameconststring symbol_path= "" , // name of the group in which the symbol will be createdconststring symbol_origin=NULL // name of the symbol based on which the custom symbol will be created
);
Имя символа, из которого должны быть скопированы свойства пользовательского символа, указывается в параметре "symbol_origin".
Обновлена функция StringToTime , преобразующая строку с датой/временем в значение даты и времени. Теперь он поддерживает следующие форматы даты:
гггг.мм.дд [чч:ми]
гггг.мм.дд [чч:ми:сс]
ггггммдд [чч:ми:сс]
ггггммдд [ччмисс]
гггг/мм/дд [чч:ми:сс]
гггг-мм-дд [чч:ми:сс]
MQL5: Новое свойство TERMINAL_VPS в перечислении ENUM_TERMINAL_INFO_INTEGER ; он показывает, что терминал работает на сервере виртуального хостинга MetaTrader (MetaTrader VPS). Если приложение запущено на хост-сервере, вы можете отключить все его визуальные функции, так как виртуальный сервер не имеет графического пользовательского интерфейса.
MQL5: Новое свойство SYMBOL_EXIST в перечислении ENUM_SYMBOL_INFO_INTEGER означает, что символ под этим именем существует.
MQL5: Исправлен набор текста при использовании предварительных объявлений функций шаблона.
MQL5: Добавлена переинициализация индикаторов при смене торгового счета.
MQL5: Исправлены ошибки в работе стандартной библиотеки.
Tester: Добавлена функция TesterStop — штатное досрочное завершение работы эксперта на тестовом агенте. Теперь вы можете принудительно прекратить тестирование по достижении заданного количества убыточных сделок, заданного уровня просадки или любого другого критерия.
Тестирование, выполненное с использованием этой функции, считается успешным. После вызова функции торговая история, полученная при тестировании, и вся торговая статистика передаются в терминал.
Tester: Отключена возможность тестировать и оптимизировать советники через MQL5 Cloud Network в реальном тиковом режиме. Этот режим можно использовать только на локальных агентах и локальных сетевых фермах.
Тестер: Улучшена работа с индикаторами при визуальном тестировании. Теперь график цены и линии индикатора отрисовываются синхронно, даже для максимальной скорости визуализации.
Tester: оптимизировано и значительно ускорено тестирование и оптимизация.
Tester: Исправлена отладка индикаторов на исторических данных. Теперь функции индикатора OnInit и OnDeinit можно корректно отлаживать.
Tester: Реализован более быстрый доступ к историческим данным при тестировании мультивалютных экспертов.
Тестер: исправлено случайное зависание визуального тестера во время отладки на исторических данных.
Tester: Реализован более быстрый запуск проходов оптимизации при обработке пакета задач агентом.
Tester: Изменена политика распределения пакетов задач агентам тестирования. Размер пакета был увеличен, и, таким образом, потребление ресурсов при сетевых операциях было значительно снижено.
Tester: изменено поведение опций, позволяющих использовать локальные, сетевые и облачные агенты. Теперь, когда вы отключаете опции, агенты завершают обработку полученных задач, при этом новые задачи им больше не выдаются. В более ранних версиях поведение было похоже на команду «Отключить», которая немедленно останавливала работу агента.
MetaEditor: в отладчике добавлена поддержка символов, отличных от ANSI. Теперь выражения отображаются правильно, даже если имя переменной указано на кириллице.
MetaEditor: Исправлено отображение результатов поиска на экранах с высоким разрешением.
Добавлен перевод пользовательского интерфейса на хорватский язык.
Документация обновлена.
Обновление будет доступно через систему LiveUpdate.
Нужно ли мне удалить сборку 1940 перед установкой этой 2005? Я пробовал без удаления и после установки это тот же 1940, что и раньше. Кроме того, я не могу обновиться с прошлого года, в чем причина? Должен ли я удалить все и повторить попытку?
Скоро -
Новая коммуникационная система, аналог Telegram - читайте в этом посте.
============
Ichimoku
Начало
После
============
Была создана хорошая тема с визуализированной информацией - TheTips thread.
Настоятельно рекомендуем прочитать эту небольшую тему всем новичкам (чтобы знать), а также опытным пользователям (чтобы освежить свои знания).
----------------
Фриланс-сервис
----------------
Платформа
----------------
Советник
----------------
Тестер
Это очень важное и очень интересное обновление - пожалуйста, прочитайте его...
Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий
MetaTrader 5 Platform Beta Build 1910: Несвязанное перетаскивание графиков и библиотек .Net в MQL5
MetaQuotes Software Corp., 2018.10.12 19:43
Бета-версия обновленной платформы MetaTrader 5 выйдет 14 октября 2018 года. Мы обновим наш публичный сервер MetaQuotes-Demo, расположенный по адресу access.metatrader5.com:443. Мы приглашаем всех трейдеров присоединиться к тестированию, чтобы оценить возможности обновленной платформы и помочь разработчикам исправить ошибки.
Финальная сборка новой платформы MetaTrader 5 будет выпущена после завершения публичного бета-тестирования.
Обновление будет включать следующие изменения:
Эта функция удобна при использовании нескольких мониторов. Так, вы можете установить на одном мониторе главное окно платформы для контроля состояния счета, а графики перенести на второй экран для наблюдения за ситуацией на рынке. Чтобы отсоединить график от терминала, отключите опцию Docked в его контекстном меню. После этого переместите график на нужный монитор.

Отдельная панель инструментов на отсоединенных графиках позволяет применять аналитические объекты и индикаторы без необходимости переключения между мониторами. Используйте контекстное меню панели инструментов для управления набором доступных команд или для ее скрытия.Групповые чаты и каналы могут быть публичными или приватными. Их создатели решают, можно ли присоединиться к ним свободно или только по приглашению. Вы также можете назначить модераторов каналов и чатов для дополнительного контроля общения.
Минимальный объем и шаг его изменения зависят от настроек финансового инструмента на стороне брокера.
Для работы с функциями библиотеки .NET достаточно импортировать саму DLL без определения конкретных функций. MetaEditor автоматически импортирует все функции, с которыми можно работать:
.
Чтобы вызвать функции из библиотеки, просто импортируйте ее:
. Код C# функции Inc класса TestClass выглядит следующим образом:
. В результате выполнения скрипт возвращает значение 7.
Более подробную информацию о спецификаторах можно найти в MSDN.
.
Добавлены следующие свойства в перечисление ENUM_CHART_PROPERTY_INTEGER:
.
Добавлены следующие функции в перечисление ENUM_TERMINAL_INFO_INTEGER:
struct MqlTick
{
datetime time; // Last price update time
double bid; // Current Bid price
double ask; // Current Ask price
double last; // Current price of the Last trade
ulong volume; // Volume for the current Last price
long time_msc; // Last price update time in milliseconds
uint flags; // Tick flags
double volume_real; // Volume for the current Last price with greater accuracy
};
.
.
.
Для получения этих свойств используйте функцию SymbolInfoDouble.
Для следующего кода:
Компилятор выводит предупреждение:
'Main::PRICE_OPEN_' instead of 'ENUM_APPLIED_PRICE::PRICE_CLOSE' will be used
Началась хорошая тема -Как начать работу с MQL5
Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий
Как начать работу с MQL5
Владимир Карпутов, 2018.12.24 20:34
В этой теме обсуждаются примеры кода на MQL5. Будут примеры того, как получать данные из индикаторов, как программировать советников... в общем, любые вопросы от новичка по языку MQL5.
Если вы только начинаете знакомиться с терминалом MetaTrader 5, то могу порекомендовать следующие темы:
Как начать работу с Metatrader 5
С чего начать?
Воспользуйтесь советами в сервисе Freelance!
Есть одна статья, которую должен прочитать каждый продавец на рынке: она о валидации продуктов Маркета -...
----------------
Проверки, которые должен пройти торговый робот перед публикацией на Маркете
Перед публикацией любого продукта на рынке он должен пройти обязательную предварительную проверку, так как небольшая ошибка в логике работы эксперта или индикатора может привести к убыткам на торговом счете. Именно поэтому мы разработали ряд базовых проверок для обеспечения необходимого уровня качества продуктов Маркета.
Если в процессе проверки вашего продукта модераторами Маркета будут выявлены какие-либо ошибки, вам придется исправить их все. В данной статье рассмотрены наиболее частые ошибки, допускаемые разработчиками в своих торговых роботах и технических индикаторах. Мы также рекомендуем прочитать следующие статьи:
Спасибо...
Очень полезно, большие усилия...
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая платформа MetaTrader 5 build 2005: экономический календарь, приложения MQL5 как сервисы и API языка R
MetaQuotes Software Corp. , 20.02.2019 17:20
Обновление платформы MetaTrader 5 выйдет 21 февраля 2019 года. В новую версию внесены следующие изменения:
- Терминал: полностью переработан встроенный экономический календарь.

- Терминал: Добавлен новый тип MQL5-приложений — Сервисы. Этот новый тип позволяет создавать собственные потоки цен для терминала, т.е. осуществлять доставку цен из внешних систем в режиме реального времени, аналогично тому, как это реализовано на торговых серверах брокеров.

- Терминал: Добавлена обучающая программа.

- Терминал: История торгового счета может быть представлена в виде позиций. Платформа собирает данные о сделках, связанных с позицией (открытие, увеличение объема, частичное или полное закрытие) и группирует информацию в единую запись. Таким образом, вы можете получить доступ к деталям позиции: время открытия и закрытия, объем, цена и результат. Эта эффективная форма представления теперь доступна в исторических отчетах, экспортируемых в файлы.

- Terminal: Добавлен новый API, позволяющий запрашивать данные терминала MetaTrader 5 через приложения, использующие язык R.

R CMD INSTALL --build MetaTrader
- MT5Initialize инициализирует и устанавливает соединение с терминалом MetaTrader 5. При необходимости терминал запускается во время выполнения команды.
- MT5Shutdown деинициализирует и отключается от MetaTrader 5.
- MT5Version получает версию терминала MetaTrader 5.
- MT5TerminalInfo получает состояние и параметры подключения терминала к серверу брокера (номер счета и адрес сервера).
- MT5WaitTerminal ожидает, пока терминал MetaTrader 5 подключится к серверу брокера.
- MT5CopyTicksFrom(symbol, from, count, flags) копирует указанное количество тиков, начиная с указанной даты. Дата указывается в миллисекундах с 01.01.1970.
- MT5CopyTicksRange(symbol, from, to, flags) копирует тики внутри указанного периода. Даты указаны в миллисекундах с 01.01.1970.
- MT5CopyRatesFrom(symbol, timeframe, from, count) копирует указанное количество одноминутных баров, начиная с указанной даты. Дата указывается в секундах с 01.01.1970.
- MT5CopyRatesFromPos(symbol, timeframe, start_pos, count) копирует одноминутные бары с указанной позиции относительно последнего бара.
- MT5CopyRatesFromRange(symbol, timeframe, date_from, date_to) копирует бары из указанного периода. Даты указаны в секундах с 01.01.1970.
- Terminal: Оптимизированный диалог Close By , используемый для закрытия позиции встречной. Теперь диалог не тормозится, даже если у вас большое количество открытых позиций.
- Терминал: Исправлены ошибки расчета синтетических символов , из-за которых данные иногда могли пропускаться.
- Терминал: при удалении пользовательского символа файлы, хранящие историю его тиков и баров, также удаляются. Это позволяет избежать накопления неиспользуемых данных на жестком диске.
- Терминал: исправлено отображение результатов поиска на экранах с высоким разрешением.
- MQL5: Реализован доступ к данным экономического календаря из программ MQL5.
- MQL5: Исправления и улучшения скорости работы, связанные с историей тиков и баров.
- MQL5: Исправления и значительные улучшения скорости работы, связанные с функциями изменения истории тиков и баров пользовательских торговых символов, CustomTicks* и CustomRates* .
- MQL5: Новые функции преобразования данных.
- Добавлена функция MathSwap для изменения порядка байтов в значениях ushort, uint и ulong.
- MQL5: Добавлены сетевые функции для создания TCP-соединений с удаленными хостами через системные сокеты:
- SocketCreate создает сокет с указанными флагами и возвращает его дескриптор
- SocketClose закрывает сокет
- SocketConnect подключается к серверу с контролем времени ожидания
- SocketIsConnected проверяет, подключен ли сокет в данный момент
- SocketIsReadable получает количество байтов, которые можно прочитать из сокета.
- SocketIsWritable проверяет, возможна ли запись данных в этот сокет в текущий момент времени
- SocketTimeouts устанавливает время ожидания приема и отправки данных для объекта системного сокета.
- SocketRead читает данные из сокета
- SocketSend записывает данные в сокет
- SocketTlsHandshake инициирует безопасное соединение TLS (SSL) с указанным хостом, используя протокол TLS Handshake.
- SocketTlsCertificate получает информацию о сертификате, используемом для безопасного сетевого подключения.
- SocketTlsRead считывает данные из безопасного TLS-соединения.
- SocketTlsReadAvailable считывает все доступные данные из безопасного соединения TLS.
- SocketTlsSend отправляет данные, используя безопасное соединение TLS.
Адрес хоста, к которому устанавливается соединение с использованием сетевых функций, должен быть явно добавлен в список разрешенных адресов в настройках терминала.
- ERR_NETSOCKET_INVALIDHANDLE (5270): в функцию передан неверный дескриптор сокета
- ERR_NETSOCKET_TOO_MANY_OPENED (5271): открыто слишком много сокетов (максимум 128)
- ERR_NETSOCKET_CANNOT_CONNECT (5272): ошибка при подключении к удаленному хосту
- ERR_NETSOCKET_IO_ERROR (5273): ошибка при отправке/получении данных из сокета
- ERR_NETSOCKET_HANDSHAKE_FAILED (5274): ошибка установления защищенного соединения (рукопожатие TLS)
- ERR_NETSOCKET_NO_CERTIFICATE (5275) — нет данных о сертификате, используемом для безопасного соединения
- MQL5: Добавлены новые функции для строковых операций :
- MQL5: Добавлена новая функция для операций с массивами :
- MQL5: В функции CustomRatesUpdate , CustomRatesReplace , CustomTicksAdd и CustomTicksReplace добавлен новый параметр "uint count". Это позволяет указать количество элементов переданного массива, которые будут использоваться для этих функций. Значение WHOLE_ARRAY используется для параметра по умолчанию. Это означает, что весь массив будет использован.
- MQL5: Добавлена функция CustomBookAdd для передачи статуса стакана цен для пользовательского символа. Функция позволяет транслировать стакан цен, как если бы цены поступали с сервера брокера.
- MQL5: Добавлена перегрузка функции CustomSymbolCreate . Это позволяет создать собственный торговый символ на основе существующего. После создания любое свойство символа можно редактировать с помощью соответствующих функций.
- Обновлена функция StringToTime , преобразующая строку с датой/временем в значение даты и времени. Теперь он поддерживает следующие форматы даты:
- гггг.мм.дд [чч:ми]
- гггг.мм.дд [чч:ми:сс]
- ггггммдд [чч:ми:сс]
- ггггммдд [ччмисс]
- гггг/мм/дд [чч:ми:сс]
- гггг-мм-дд [чч:ми:сс]
- MQL5: Новое свойство TERMINAL_VPS в перечислении ENUM_TERMINAL_INFO_INTEGER ; он показывает, что терминал работает на сервере виртуального хостинга MetaTrader (MetaTrader VPS). Если приложение запущено на хост-сервере, вы можете отключить все его визуальные функции, так как виртуальный сервер не имеет графического пользовательского интерфейса.
- MQL5: Новое свойство SYMBOL_EXIST в перечислении ENUM_SYMBOL_INFO_INTEGER означает, что символ под этим именем существует.
- MQL5: Исправлен набор текста при использовании предварительных объявлений функций шаблона.
- MQL5: Добавлена переинициализация индикаторов при смене торгового счета.
- MQL5: Оптимизирована функция StringSplit .
- MQL5: Исправлены ошибки в работе стандартной библиотеки.
- Tester: Добавлена функция TesterStop — штатное досрочное завершение работы эксперта на тестовом агенте. Теперь вы можете принудительно прекратить тестирование по достижении заданного количества убыточных сделок, заданного уровня просадки или любого другого критерия.
- Tester: Отключена возможность тестировать и оптимизировать советники через MQL5 Cloud Network в реальном тиковом режиме. Этот режим можно использовать только на локальных агентах и локальных сетевых фермах.
- Тестер: Улучшена работа с индикаторами при визуальном тестировании. Теперь график цены и линии индикатора отрисовываются синхронно, даже для максимальной скорости визуализации.
- Tester: оптимизировано и значительно ускорено тестирование и оптимизация.
- Tester: Исправлена отладка индикаторов на исторических данных. Теперь функции индикатора OnInit и OnDeinit можно корректно отлаживать.
- Tester: Реализован более быстрый доступ к историческим данным при тестировании мультивалютных экспертов.
- Тестер: исправлено случайное зависание визуального тестера во время отладки на исторических данных.
- Tester: Реализован более быстрый запуск проходов оптимизации при обработке пакета задач агентом.
- Tester: Изменена политика распределения пакетов задач агентам тестирования. Размер пакета был увеличен, и, таким образом, потребление ресурсов при сетевых операциях было значительно снижено.
- Tester: изменено поведение опций, позволяющих использовать локальные, сетевые и облачные агенты. Теперь, когда вы отключаете опции, агенты завершают обработку полученных задач, при этом новые задачи им больше не выдаются. В более ранних версиях поведение было похоже на команду «Отключить», которая немедленно останавливала работу агента.

- MetaEditor: в отладчике добавлена поддержка символов, отличных от ANSI. Теперь выражения отображаются правильно, даже если имя переменной указано на кириллице.
- MetaEditor: Исправлено отображение результатов поиска на экранах с высоким разрешением.
- Добавлен перевод пользовательского интерфейса на хорватский язык.
- Документация обновлена.
Обновление будет доступно через систему LiveUpdate.Экономический календарь — это наше собственное решение. В нем вы найдете более 600 финансовых новостей и показателей, относящихся к 13 крупнейшим экономикам мира: США, Европейскому Союзу, Японии, Великобритании, Канаде, Австралии, Китаю и другим. Актуальные данные собираются из открытых источников в режиме реального времени.
В новой версии обновленный контент и расширенные фильтры событий: по времени, приоритету, валюте и стране.
Доступ к данным календаря теперь можно получить из программ MQL5. Детали смотрите ниже.
В отличие от экспертов, индикаторов и скриптов сервисы не привязаны к конкретному графику. Такие приложения работают в фоновом режиме и запускаются автоматически при запуске терминала (если только такое приложение не было принудительно остановлено).
Сервисами можно управлять из нового раздела в окне Навигатора:
Как создавать услуги
Для создания шаблона сервиса используйте соответствующую опцию Мастера MQL5 . Службы имеют одну точку входа OnStart , как и сценарии. На этом этапе можно реализовать бесконечный цикл приема и обработки данных с помощью сетевых функций .
Как запускать сервисы
Чтобы запустить несколько копий советника или индикатора с разными параметрами, нужно запускать их на разных графиках. В этом случае создаются разные экземпляры программы, которые затем работают независимо. Сервисы не привязаны к чартам, поэтому реализован специальный механизм создания экземпляров сервисов.
Выберите сервис в Навигаторе и нажмите «Добавить сервис» в его контекстном меню. При этом откроется стандартный диалог программы MQL5, в котором вы сможете включить/отключить торговлю и получить доступ к настройкам сигнала, а также задать различные параметры.

Экземпляр службы можно запускать и останавливать с помощью соответствующего меню экземпляра. Для управления всеми экземплярами используйте сервисное меню.Новая функция поможет новичкам научиться взаимодействовать с платформой. Мы добавили более 100 интерактивных советов по основным возможностям платформы.
- Подсказки плавно отображаются в виде индикатора выполнения на панели инструментов и, таким образом, не отвлекают пользователя.
- Подсказки появляются только для тех действий, которые вы никогда не совершали в платформе.
- Все подсказки содержат интерактивные ссылки, по которым можно перейти к нужным элементам интерфейса. Например, торговый диалог или меню с нужной программой можно запустить прямо из подсказки.
Заполненная область индикатора выполнения будет увеличиваться всякий раз, когда вы выполняете соответствующие действия и продолжаете тренировку.Мы подготовили специальный пакет для MetaTrader. Он содержит DLL для взаимодействия между R и терминалом MetaTrader 5, документацию и вспомогательные файлы r. Завершаем регистрацию пакета в репозитории CRAN , после чего он будет доступен для скачивания и установки.
Пакет можно установить с помощью специальной команды:
Доступны следующие команды, связанные с запросом данных:
Список поддерживаемых команд будет расширен.
Новые функции
CalendarCountryById — получает описание страны по идентификатору.
CalendarEventById — получает описание события по идентификатору.
CalendarValueById — получает описание значения события по идентификатору.
CalendarEventByCountry — получает массив доступных событий для страны.
CalendarEventByCurrency — получает массив доступных событий для затронутой валюты.
CalendarValueHistoryByEvent — получает массив значений за указанный период времени по идентификатору события.
CalendarValueHistory — получает массив значений за указанный период времени для всех событий, отфильтрованных по стране и/или валюте.
CalendarValueLastByEvent — получает массив значений последних событий по идентификатору. Эта функция позволяет запрашивать значения, появившиеся с момента предыдущего запроса. Для этой операции дополнительно используется входной/выходной параметр «change_id».
При каждом изменении базы данных календаря свойство change_id (идентификатор последнего изменения) обновляется. При запросе данных вы указываете «change_id», и терминал возвращает события, появившиеся после этого времени, а также текущее значение «change_id», которое можно использовать для следующего запроса. При первом вызове функции укажите нулевой «change_id»: функция не будет возвращать никаких событий, а будет возвращать текущий «change_id» для дальнейших запросов.
CalendarValueLast — получает массив последних значений для всех событий, отфильтрованных по стране и/или валюте. Эта функция позволяет запрашивать значения, появившиеся с момента предыдущего запроса. Аналогично CalendarValueLastByEvent для запроса используется свойство change_id.
Новые структуры
MqlCalendarCountry — описание страны.
MqlCalendarEvent — описание события.
MqlCalendarValue — описание значения события.
Новые перечисления
Новые коды ошибок
CharArrayToStruct копирует массив uchar в структуру POD.
StructToCharArray копирует структуру POD в массив uchar.
Добавлены новые коды ошибок для работы с сетевыми функциями:
StringReserve резервирует для строки буфер памяти указанного размера.
StringSetLength задает указанную длину строки в символах.
ArrayRemove удаляет из массива указанное количество элементов, начиная с указанного индекса.
ArrayInsert вставляет в массив-получатель указанное количество элементов из исходного массива, начиная с указанного индекса.
ArrayReverse переворачивает в массиве указанное количество элементов, начиная с указанного индекса.
Имя символа, из которого должны быть скопированы свойства пользовательского символа, указывается в параметре "symbol_origin".
Тестирование, выполненное с использованием этой функции, считается успешным. После вызова функции торговая история, полученная при тестировании, и вся торговая статистика передаются в терминал.
Здравствуйте.
Нужно ли мне удалить сборку 1940 перед установкой этой 2005?
Я пробовал без удаления и после установки это тот же 1940, что и раньше.
Кроме того, я не могу обновиться с прошлого года, в чем причина?
Должен ли я удалить все и повторить попытку?
Спасибо...