Обновление платформы MetaTrader 4 билд 625: Журналы в MetaTrader Market и новый MetaViewer

 

MetaTrader 4 билд 625: Журналы в MetaTrader Market и новый MetaViewer

Обновление содержит следующие изменения:

  1. Market: В MetaTrader AppStore появилась новая категория товаров - Журналы. Теперь в магазине наряду с покупкой торговых приложений можно легко и быстро приобрести отраслевые издания, посвященные трейдингу и финансам.




    Как и программы для MetaTrader 4, журналы можно купить через раздел Маркет на MQL5.community, а также непосредственно через терминал MetaTrader 4. Все журналы сопровождаются подробным описанием, а также галереей ознакомительных скриншотов:




    На витрине журналов всегда отображаются актуальные выпуски. Предыдущие номера вы можете найти на вкладке "Архив".

    Для покупки журнала необходимо иметь аккаунт на MQL5.com и достаточную для покупки сумму денег на нем. Данные аккаунта необходимо указать в настройках терминала на вкладке "Сообщество":




    Для покупки журнала необходимо нажать кнопку "Купить" на его странице. После этого будет показан диалог подтверждения покупки:



    Для продолжения покупки необходимо согласиться с правилами использования сервиса Маркет, а затем ввести пароль вашего аккаунта на MQL5.community. После этого с вашего аккаунта будет списана указанная сумма денег и произойдет скачивание журнала. Вместо кнопки "Купить" появится кнопка "Открыть".

    Файлы журналов скачиваются в папку Мои документы\MQL5 Market\Magazines\[Название издания]\[Название номера]. Скачивание может осуществляться в двух форматах:

    • MQB - данный формат используется для платных журналов. Этот формат является защищенным. При покупке и скачивании осуществляется шифрация файла таким образом, чтобы он мог быть открыт только на том компьютере, с которого он был скачан. Факт создания такой защищенной копии называется активацией. Каждый журнал может быть активирован как минимум 5 раз на различном оборудовании. Продавцы журналов могут увеличить количество активаций по своему усмотрению.
    • PDF - данный формат используется для бесплатных журналов. После скачивания такой файл можно переносить и просматривать на других устройствах.

    Для просмотра файлов MQB в терминал MetaTrader 4 добавлен специальный компонент - MetaViewer. Именно это приложение будет запущено при нажатии кнопки "Открыть" на странице скачанного журнала. Также файлы MQB будут автоматически открываться в MetaViewer при их запуске из проводника Windows.


    MetaViewer представляет собой удобное средство для просмотра журналов и книг в формате MQB и PDF. Для перелистывания используются стрелки на клавиатуре: для постраничного - стрелки вправо и влево, для прокрутки - стрелки вверх и вниз. В меню и на панели управления MetaViewer представлены дополнительные команды для настройки вида журналов и навигации по ним:
    • File - команды для открытия файлов и выхода из программы.
    • View - команды настройки отображения: переключение языка интерфейса, переключение вида страниц, включение панели управления и строки состояния, а также вращение страниц.
    • Navigation - команды навигации по журналам: переключение между страницами, переход к первой, последней или выбранной странице.
    • Zoom - команды управления масштабом страниц: увеличение и уменьшение размера, адаптация по высоте, ширине и по фактическому размеру страницы.
    • Help - информация о программе и полезные ссылки.

  2. Tester: Добавлена поддержка оптимизации по пользовательскому результату, реализованному в обработчике OnTester в эксперте.



    При наличии обработчика OnTester в результатах оптимизации отображается столбец OnTester result со значениями, полученными из данного обработчика:



  3. Tester: Реализована функция TesterStatistics для доступа к результатам тестирования из обработчика OnTester.
  4. Tester: Добавлена возможность оптимизации по входному параметру типа перечисления.
  5. Tester: Исправлен вывод строковых параметров эксперта в отчете тестера.
  6. Terminal: Функциональность кнопки "Разрешить эксперты" изменена на "Разрешить автоматическую торговлю". Теперь, как и в MT5, все эксперты получают все предназначенные им события (Tick, Timer, ChartEvent) независимо от состояния этой кнопки. Состояние кнопки "Разрешить автоматическую торговлю" влияет только на работоспособность торговых функций OrderSend, OrderModify, OrderClose, OrderDelete.




  7. Terminal: Добавлено еще одно условие отключения автоматической торговли экспертами - смена символа или периода графика. В случае включения данного условия при смене символа или периода графика эксперту, подключенному к этому графику, будет запрещено торговать.




  8. Signals: Исправлено некорректное отображение описаний сигналов на языках, отличных от локализации установленной Windows.
  9. MQL4: В новой версии компилятор требует явного размещения статических переменных класса.
  10. MQL4: Добавлено получение свойства SYMBOL_PATH у символа.
  11. MQL4: Добавлена работа свойств OBJPROP_FILL и OBJPROP_HIDDEN у объектов.
  12. MQL4: Исправлена некорректная работа IsStopped при смене счета. IsStopped не возвращал true при смене счета.
  13. MQL4: Исправлена некорректная работа ChartIndicatorsTotal и ChartIndicatorName.
  14. MQL4: Исправлена ошибка в работе ArrayCopy при копировании части массива в самого себя.
  15. MQL4: Исправлено выставление описания уровней индикаторов функцией IndicatorSetString.
  16. MQL4: Исправлено получение в некоторых случаях неверного номера своего окна индикатором через функцию ChartWindowFind().
  17. MQL4: Исправлено некорректное обрезание слишком длинных строк функцией ObjectSetText().
  18. MQL4: Исправлена ошибка в IndicatorSetInteger(), приводящая при некоторых значениях к невыставлению свойств уровней индикаторов.
  19. MQL4: Работа StringSplit приведена в соответствие со справкой - при передаче NULL-строки возвращается 0.
  20. MQL4: Исправлена ошибка некорректного отображения отладчиком элементов статического массива, перераспределенного во время выполнения в динамический.
  21. MQL4: Исправлена ошибка передачи строк в DLL, когда в качестве значения строки передавался NULL.
  22. MQL4: В язык добавлены перечисления ENUM_SYMBOL_TRADE_EXECUTION и ENUM_SYMBOL_TRADE_MODE.
  23. MQL4: Ускорена работа файловых операций.
  24. MQL4: Исправлена конвертация строк из ANSI в Unicode и обратно для иероглифических языков.
  25. Исправления по сообщениям на форуме и крешлогам.


Также для обеспечения оптимальной работы и высокой производительности клиентский терминал MetaTrader 4 требует поддержки процессором компьютера набора инструкций SSE2.

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

Сюда дальше пишем?

Вот не понял:

Это ж вроде не функция, а предопределённая переменная? И по справке предопределённая переменная.

 
МТ5? В четвёрке такая подсказка не всплывает. А в пятёрке это функция, аналогичная iBars() в четвёрке.
 
Spy:
МТ5? В четвёрке такая подсказка не всплывает. А в пятёрке это функция, аналогичная iBars() в четвёрке.
Нет, четвёрка. 625 билд.
 

В 625 билде при подключении библиотеки alglib

#include <Math\Alglib\alglib.mqh>

стала вылазить ошибка

unresolved static variable 'CMath::m_state'     ap.mqh  1170    33

со ссылкой на выделенную строку в файле ap.mqh:

class CMath
  {
public:
   //--- class variables
   static bool                  m_first_call;
   static double                m_last;
   static CHighQualityRandState m_state;
   //--- machine constants
   static const double m_machineepsilon;
   static const double m_maxrealnumber;
   static const double m_minrealnumber;
   //--- constructor, destructor
                     CMath(void);
                    ~CMath(void);
   //--- methods
   static bool       IsFinite(const double d);
   static double     RandomReal(void);
   static int        RandomInteger(const int n);
   static double     Sqr(const double x) { return(x*x); }
   static double     AbsComplex(const complex &z);
   static double     AbsComplex(const double r);
   static complex    Conj(const complex &z);
   static complex    Csqr(const complex &z);
  };

В чем причина, как поправить? В 616 ошибки не было.

 

в билде 625 не нравится строка:

OrderSend( Symbol(), OP_SELL, lot, Bid, 3, 0, 0, "хез ", Expert_Id, 0, Red );, пишет return value of 'OrderSend' should be checked

в билде 610 все было нормально

 
vasek:

в билде 625 не нравится строка:

OrderSend( Symbol(), OP_SELL, lot, Bid, 3, 0, 0, "хез ", Expert_Id, 0, Red );, пишет return value of 'OrderSend' should be checked

в билде 610 все было нормально


Это кажется в 620 началось. Рекомендует проверять значение, если функция его возвращает. То есть или if, или присвоение. Предупреждение, а не ошибка.
 
Y.A.K._:
Нет, четвёрка. 625 билд.

Значит "особенности перевода". Тьфу, перехода. )) Короче, баг.
 
Y.A.K._:

Это кажется в 620 началось. Рекомендует проверять значение, если функция его возвращает. То есть или if, или присвоение. Предупреждение, а не ошибка.

ага, достаточно написать int ticket = OrderSend( Symbol(), OP_SELL, lot, Bid, 3, 0, 0, "хез ", Expert_Id, 0, Red ); и предупреждение пропадает
 
alsu:

В 625 билде при подключении библиотеки alglib

#include <Math\Alglib\alglib.mqh>

стала вылазить ошибка

unresolved static variable 'CMath::m_state'     ap.mqh  1170    33

со ссылкой на выделенную строку в файле ap.mqh:

class CMath
  {
public:
   //--- class variables
   static bool                  m_first_call;
   static double                m_last;
   static CHighQualityRandState m_state;
   //--- machine constants
   static const double m_machineepsilon;
   static const double m_maxrealnumber;
   static const double m_minrealnumber;
   //--- constructor, destructor
                     CMath(void);
                    ~CMath(void);
   //--- methods
   static bool       IsFinite(const double d);
   static double     RandomReal(void);
   static int        RandomInteger(const int n);
   static double     Sqr(const double x) { return(x*x); }
   static double     AbsComplex(const complex &z);
   static double     AbsComplex(const double r);
   static complex    Conj(const complex &z);
   static complex    Csqr(const complex &z);
  };
В чем причина, как поправить? В 616 ошибки не было.

Разобрался.


Статический член класса не был проинициализирован. 616 компилятор это пропускал, 625 не пропускает.

Проблема решена добавлением непосредственно после определения класса CMath строки инициализации соответствующего члена.

CHighQualityRandState CMath::m_state;


Разработчики, подправьте, пожалуйста, библиотеку в CodeBase.

 
Y.A.K._:

Это кажется в 620 началось. Рекомендует проверять значение, если функция его возвращает. То есть или if, или присвоение. Предупреждение, а не ошибка.

Мне кажется, это правильное предупреждение. Уж результат торговых-то операций обязательно надо проверять. Так что пусть дисциплинируют. )