Новая версия платформы MetaTrader 5 build 1525: Представление истории в виде позиций и улучшение тестера

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MetaQuotes
Модератор
216035
MetaQuotes  

Новая версия платформы MetaTrader 5 build 1525: Представление истории в виде позиций и улучшение тестера

В пятницу 27 января 2017 года будет опубликовано обновление платформы MetaTrader 5. Обновление содержит следующие изменения:

  1. Terminal: Добавлено представление торговой истории в виде позиций. Терминал собирает данные по сделкам, относящимся к позиции (открытие, наращивание, частичное и полное закрытие), и группирует эти данные в единую запись, где можно сразу посмотреть:

    • Время открытия и закрытия позиции, определяемое по первой и последней сделке соответственно
    • Объем позиции; если позиция закрыта частично, показывается закрытый объем и исходный объем
    • Средневзвешенную цену открытия и цену закрытия позиции
    • Суммарный финансовый результат по сделкам, относящимся к позиции




    Для хеджинговых счетов данный вид представления позиций фактически аналогичен истории счета в MetaTrader 4.




  2. Terminal:  Добавлена команда для визуализации истории сделок на графике по конкретному символу.

    • Чтобы показать все сделки только по символу выбранной позиции/сделки, нажмите "Добавить сделки по [Имя символа]". Сделки будут добавлены на все открытые в данный момент графики по этому символу. Если таких графиков нет, будет открыт новый.
    • Чтобы показать сделки по всем символам из истории счета, нажмите "Добавить все сделки". На все открытые графики будут добавлены все сделки по соответствующим символам.




  3. Terminal: Добавлен показ международного имени торгового инструмента в спецификации контракта, а также возможность поиска по нему в диалоге управления инструментами.




  4. Terminal: Добавлена возможность быстро установить разрешение для окна терминала. Функция будет удобна для тех, кто снимает видеоролики. В меню доступны наиболее популярные разрешения для публикации роликов в видеосервисах, таких как YouTube.



  5. Terminal: шаблоны и профили графиков перенесены из [каталога данных терминала\Profiles] в [каталог данных терминала\MQL5\Profiles]. Теперь можно легко добавлять шаблоны в хранилище MQL5 Storage и использовать их с любого вашего компьютера.
  6. MQL5: Добавлена поддержка ресурсных переменных. Использование таких переменных может существенно облегчить написание некоторых программ. Например, вы можете написать OpenCL код в отдельном CL-файле, а затем включить этот файл в виде строки в ресурсы вашей MQL5-программы. Раньше вместо этого код пришлось бы описывать в виде одной большой строковой переменной.

    Объявление ресурсной переменной
    #resource путь_к_файлу_ресурса as тип_ресурсной_переменной имя_ресурсной_переменной

    Особенности
    • Для строковых файлов производится автоматическое определение кодировки по BOM (заголовку). Если BOM отсутствует, кодировка определяется по содержимому. Поддерживаются кодировки ANSI, UTF-8 и UTF-16. Все строки переводятся в Unicode.
    • К данным такого ресурса можно обращаться только через переменную. Автоматическая адресация через "::<resource name>" не работает.
    • Специальный тип ресурсной переменной bitmap указывает компилятору, что ресурс является графическим изображением. Ресурсная переменная в данном случае получает тип uint.
    • При использовании 24-битного изображения для всех его пикселей компонента альфа-канала устанавливается в значение 255.
    • При использовании 32-битного изображения без альфа-канала для всех его пикселей компонента альфа-канала также устанавливается в значение 255.
    • При загрузке 32-битного изображения с альфа-каналом никаких манипуляций с пикселями не происходит.
    • Ресурсная переменная-массив типа bitmap может иметь две размерности. В этом случае размер массива будет установлен как [высота_картинки][ширина_картинки].
    • В случае одномерного массива количество элементов будет установлено как высота_картинки*ширина_картинки.
    • Если размер файла ресурса не кратен размеру элемента массива, то остаток данных отсекается. Например, при размере файла в 14 байт, для массива int количество элементов будет составлять 3, а оставшиеся 2 байта (14 - sizeof(int)*3) будут отброшены.

    Примеры использования
    #resource "data.bin" as int ExtData[]             // объявление массива числового типа, содержащего данные из файла data.bin
    #resource "data.bin" as MqlRates ExtData[]        // объявление массива простых структур, содержащего данные из файла data.bin
    
    #resource "data.txt" as string ExtCode            // объявление строки, содержащей данные файла data.txt
    #resource "data.txt" as string ExtCode[]          // объявление строкового массива, содержащего строки файла data.txt
    
    #resource "image.bmp" as bitmap ExtBitmap[]       // объявление одномерного массива, содержащего в себе растр из файла BMP, размер массива = height * width
    #resource "image.bmp" as bitmap ExtBitmap2[][]    // объявление двумерного массива, содержащего в себе растр из файла BMP, размер массива [height][width]

  7. MQL5: Добавлено свойство CHART_SHOW для отключения отображения графика. Для получения и установки свойства используются функции ChartGetInteger и ChartSetInteger.

    Если установлено значение false, то отключается отрисовка любых атрибутов ценового графика и устраняются все отступы по краям графика: шкалы времени и цены, строка быстрой навигации, метки событий Календаря, значки сделок, тултипы индикаторов и баров, подокна индикаторов, гистограммы объёмов и т.д.

    Отключение отрисовки является идеальным решением для создания собственного интерфейса программы с использованием графических ресурсов.

    Графические объекты отрисовываются всегда независимо от установленного значения свойства CHART_SHOW.

  8. MQL5: Добавлено свойство CHART_KEYBOARD_CONTROL для включения/отключения управления графиком при помощи клавиатуры ("Home", "End", "PageUp", "+", "-", "Стрелка вверх" и т.д.). Установка CHART_KEYBOARD_CONTROL=false позволяет отключить скроллинг и масштабирование графика, но при этом сохраняется возможность получать события нажатия данных клавиш в OnChartEvent.

    Для получения и установки свойства используются функции ChartGetInteger и ChartSetInteger.

  9. MQL5: Добавлены новые функции и свойства для работы с OpenCL.

    Новые свойства для работы с памятью
    С помощью CLGetInfoIntegrer теперь можно получить четыре новых свойства:
    • CL_DEVICE_MAX_WORK_GROUP_SIZE — общее количество локальных рабочих групп, доступных для OpenCL устройства.
    • CL_KERNEL_WORK_GROUP_SIZE — общее количество локальных рабочих групп, доступных для OpenCL программы.
    • CL_KERNEL_LOCAL_MEM_SIZE — размер локальной памяти в байтах, которую использует OpenCL программа для всех параллельных задач в группе. Используйте CL_DEVICE_LOCAL_MEM_SIZE для получения доступного максимума.
    • CL_KERNEL_PRIVATE_MEM_SIZE — минимальный размер приватной памяти в байтах, используемой каждой задачей в кернеле OpenCL программы.

    bool CLExecutionStatus(int kernel)
    Возвращает состояние выполнения OpenCL программы. В качестве параметра передается хэндл на кернел программы OpenCL.

    bool CLSetKernelArgMemLocal(int kernel_handle,int arg_index,ulong local_mem_size)
    Задает локальный буфер в качестве аргумента kernel-функции. В качестве параметров передаются хэндл на кернел программы OpenCL, номер аргумента OpenCL функции и размер буфера.

  10. Добавлена функция TranslateKey, которая возвращает  Unicode-символ по виртуальному коду клавиши, учитывая текущий язык ввода и состояние управляющих клавиш. Функция использует ToUnicodeEx для преобразования нажатых пользователем клавиш в Unicode-символы.
    void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam)
      {
       if(id==CHARTEVENT_KEYDOWN)
         {
          short sym=TranslateKey((int)lparam);
          //--- если введённый символ успешно преобразован в Юникод
          if(sym>0)
             Print(sym,"'",ShortToString(sym),"'");
          else
             Print("Error in TranslateKey for key=",lparam);
         }
      }
  11. MQL5: Добавлен код ответа TRADE_RETCODE_LIMIT_POSITIONS. Количество открытых позиций, которое можно одновременно иметь на счете, может быть ограничено настройками сервера. При достижении лимита в ответ на выставление ордера сервер вернет ошибку TRADE_RETCODE_LIMIT_POSITIONS. Ограничение работает по-разному в зависимости от типа учета позиций на счете:

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

  12. MQL5: Исправлена ошибка, в некоторых случаях приводившая к пропуску тиков в тиковой истории.
  13. MQL5: Исправлены ошибки косвенной типизации шаблонов.
  14. MQL5: Обновлена библиотека работы с математической статистикой.
  15. Market: Исправлено открытие страницы продукта при скачивании демо-версии.
  16. Tester: После завершения оптимизации результаты теперь автоматически сортируются по колонке "Результат".
  17. Tester: В контекстное меню вкладки результатов оптимизации и журнала добавлена опция автоматического переключения на результаты после завершения оптимизации.
  18. Tester: Тестер стратегий теперь остается в режиме оптимизации после запуска одиночного тестирования. Ранее, если из вкладки результатов оптимизации запускалось одиночное тестирование, тестер стратегий полностью переходил в режим одиночного тестирования. Для проведения повторной оптимизации было необходимо включать ее вновь в настройках.
  19. Tester: Теперь наборы входных параметров можно сохранять не только в виде set-файлов, но и в виде настроек локального тестера стратегий с удобным доступом к ним через контекстное меню.



  20. Tester: Добавлен перевод интерфейса на монгольский, венгерский, румынский языки и язык урду.
  21. MetaEditor: Добавлена возможность менять порядок наблюдаемых выражений в окне отладки. Просто перетащите выражение в нужную позицию мышью.




  22. MetaEditor: Исправлена ошибка определения кодировки исходных файлов.
  23. MetaEditor: Исправлен поиск по файлам в кодировке UTF-8.
  24. MetaEditor: Исправлена ошибка выделения текста мышью при наличии в нем знаков табуляции.
  25. MetaEditor: Добавлен перевод интерфейса на венгерский и румынский языки.
  26. Обновлена документация.

Обновление будет доступно через систему LiveUpdate.

Rashid Umarov
Админ
16657
Rashid Umarov  
В этой ветке вы можете вести обсуждение данного билда
Vitaly Muzichenko
13903
Vitaly Muzichenko  

Rashid, а можно когда-нибудь добавить пункт №25 и в нём написать: "Теперь можно выделять, и нормально писать программы, а не как в win-блокноте 1995 года"

Спасибо! 

SeriousRacoon
1080
SeriousRacoon  

MetaEditor: Исправлена ошибка выделения текста мышью при наличии в нем знаков табуляции.

Курсор вверх-вниз тоже бегает неправильно, если есть табуляция. Вообще, я не вижу смысла допиливать самописный редактор, когда можно просто прикрутить Scintilla.

И главный вопрос по терминалу, точнее, два:

1) Когда почините вертикальное масштабирование? Попробуйте вертикально помасштабировать на фьючерсе RI (дневки для пущего эффекта).

2) Когда наконец сделаете плавное масштабирование по горизонтали? Все ругают квик, обычно заслуженно, но вот эти два пункта там сделаны идеально.

Есть третий вопрос: логарифмическая шкала. Да, нужно. Да, везде есть, во всех терминалах и везде на вебе.

---
22799
---  
Rashid Umarov:
В этой ветке вы можете вести обсуждение данного билда
@Rashid Umarov про TranslateKey не написано
Rashid Umarov
Админ
16657
Rashid Umarov  
Сейчас добавим, спасибо
Alexey Volchanskiy
27261
Alexey Volchanskiy  
Vitaly Muzichenko:

Rashid, а можно когда-нибудь добавить пункт №25 и в нём написать: "Теперь можно выделять, и нормально писать программы, а не как в win-блокноте 1995 года"

Спасибо! 

Кстати, возможно, многие не знают одной хорошей фишки редактора, сам недавно наткнулся случайно.

Если открытый в редакторе файл изменить внешней программой, например, редактором VS и записать его в нем, то он автоматически измениться и в редакторе МТ5! VS тоже такие внешние изменения обнаруживает, но по умолчанию переспрашивает, принять изменения или нет.

То есть можно редактировать проект одновремено в МТ5 и VS и он будет синхронизирован. 

В редакторе МТ4 такая фишка тоже появилась в последнем декабрьском билде.

Там что остроты вопроса с редактором больше не существует (для меня по крайней мере).

---
22799
---  
MetaQuotes Software Corp.:


  1. Terminal: Добавлено представление торговой истории в виде позиций. Терминал собирает данные по сделкам, относящимся к позиции (открытие, наращивание, частичное и полное закрытие), и группирует эти данные в единую запись, где можно сразу посмотреть


@Rashid Umarov

 верно ли определяется тип позиции на Неттинговом счёте ?

сейчас вижу тип = типу первой сделке. Например Buy

Но если происходит переворот (сделка in/out) то мы же имеем уже позицию в обратную сторону.

И получается расхождение - на чарте открытая поза Sell, а в истории открытая поза Buy. 

Это нормально?

Rashid Umarov
Админ
16657
Rashid Umarov  
o_O:

И получается расходждение - на чарте открытая поза Sell, а в истории открытая поза Buy. 

Это нормально?

Выглядит как ошибка, можете написать в Сервисдеск? ПРоверяли в тестере или на онлайн графике?
---
22799
---  
Rashid Umarov:
Выглядит как ошибка, можете написать в Сервисдеск? ПРоверяли в тестере или на онлайн графике?

#1659405

в онлайн.

у меня 1513 утренняя.

SeriousRacoon
1080
SeriousRacoon  
Alexey Volchanskiy:

Кстати, возможно, многие не знают одной хорошей фишки редактора, сам недавно наткнулся случайно.

Если открытый в редакторе файл изменить внешней программой, например, редактором VS и записать его в нем, то он автоматически измениться и в редакторе МТ5! VS тоже такие внешние изменения обнаруживает, но по умолчанию переспрашивает, принять изменения или нет.

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