Новая версия платформы MetaTrader 5 build 4410: улучшения в работе - страница 10

 

Размеры программ растут и меняются из-за:

  • использования разных полиморфных протекторов VM Protect и Themida с разными настройками, что дает плавающий размер защитного модуля
  • увеличение кода в подготовке запуска нового компилятора
  • увеличение кода в подготовке включения математической библиотеки OpenBLAS нативно в MQL5
  • внедрение git хранилища и его движка на замену сабвершена
Откровенные глупости про майнер не надо распространять.
 
Добрый день. Вопрос разработчикам. Что бы переключаться между профилями надо нажимать аж три клавиши (Ctrl+Fn+F5 или Shift+Fn+F5). Нельзя ли сделать так, что бы переключаться между профилями можно было одной клавишей. Или подскажите как это сделать. Спасибо за понимание.  
 
atraktar44 #:
Добрый день. Вопрос разработчикам. Что бы переключаться между профилями надо нажимать аж три клавиши (Ctrl+Fn+F5 или Shift+Fn+F5). Нельзя ли сделать так, что бы переключаться между профилями можно было одной клавишей. Или подскажите как это сделать. Спасибо за понимание.  

В биосе ноутбука можно установить состояние Fn клавиши по умолчанию:

1. Отжатая Fn считается отжатой (default)

2.  Отжатая Fn считается зажатой, а зажатая отжатой. Т.е. состояние клавиши наоборот.

 
Artyom Trishkin #:
Защита от переименования - не баг. 

Может это и не баг, но крайне вредный для трейдеров вид "защиты" - в условиях санкций и ограничений требуется проксировать торговлю на отдельных счетах (н-р в ftmo.com), и такая "защита" не дает использовать Proxifier и иные аналогиычные программы для перенаправления соединений (а встроенный функционал прокси вообще на работает - писал об этом выше).

 
Sergei Lebedev #:

Может это и не баг, но крайне вредный для трейдеров вид "защиты" - в условиях санкций и ограничений требуется проксировать торговлю на отдельных счетах (н-р в ftmo.com), и такая "защита" не дает использовать Proxifier и иные аналогиычные программы для перенаправления соединений (а встроенный функционал прокси вообще на работает - писал об этом выше).

Вас одного коснулись санкции? Больше никто не жаловался. 
 
fxsaber #:

Класс определен внутри OnStart, поэтому должен видеть переменные в том скопе, в котором определен.

Не должен.

 
fxsaber #:
b4462, локальные классы не видят локальные переменные. Строка для поискаOshibka 114.

Вот объяснение от ББ

Ваш пример кода на C++ демонстрирует общую проблему видимости переменных в контексте локальных классов. Локальные классы, определенные внутри функций, действительно имеют ограничения по доступу к локальным переменным функции, в которой они объявлены. В частности, локальные классы не могут доступаться к нелокальным переменным по ссылке или изменять их, если только эти переменные не являются статическими. Вот почему первый случай с комментированной переменной i работает: переменная объявлена вне локального класса и не используется в нем.

Во втором случае переменная i объявлена в функции OnStart и вы пытаетесь изменить её в статической функции локального класса A , что приводит к ошибке. Статические функции класса не имеют доступа к экземпляру объекта и соответственно не могут доступаться к нестатическим переменным функции, в которой класс был объявлен.

Для решения этой проблемы можно объявить i как статическую переменную в функции OnStart . Это позволит статической функции Func класса A корректно инкрементировать i , поскольку статические переменные не привязаны к конкретному вызову функции и существуют независимо от создания и удаления объектов функции:

void OnStart()
{
  static int i = 0; // Теперь работает, потому что i - статическая.

  class A
  {
  public:
    static void Func() { i++; } // Теперь 'i' доступна как статическая переменная.
  };

  A::Func();
}

Этот подход работает, потому что статическая переменная i существует независимо от того, вызывается функция OnStart или нет, и её можно использовать в статических методах класса.


Попробуйте
 
Koldun Zloy #:

Не должен.

Жаль, что получается неполноценная локальность.

Rashid Umarov #:

Вот объяснение от ББ

Что это? Первый раз встретился со словосочетанием "не могут доступаться".

Попробуйте

К сожалению, такое ограничение не позволяет реализовать идею ускорения работы с указателями, которую думал, что возможно сделать через локальные классы.


Было бы здорово иметь возможность в MQL5 преобразования указателя на объект, чтобы не тратить ресурсы на проверку валидности указателя каждый раз, когда идет обращения к полям/методам класса.


Возможно, нововведения решат проблему лишних расчетов с указателями и массивами.

 
Roman #:

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



При уменьшении масштаба графика, исчезает часть отрисовки (прореживается).


Так-же не даёт выставить фиксированный масштаб.
Фиксированный минимум нельзя выставить с отрицательным значением.

zz


Будет ли заведена задача в ваш план исправлений?
 
fxsaber #:
Было бы здорово иметь возможность в MQL5 преобразования указателя на объект

Просто в голову пришло:

Добавить возможность объясвить локальную не статическую переменную-ссылку на объект класса. Тогда это работало бы так-же, как метод withRef, но без необходимости делать аргумент-прокладку.

class A {};

class B
  {
   A*   m_x;
   void method();
  };

void B::method(void)
  {
   ref x = m_x; // Единократная проверка указателя
   // Дальше можно обращаться к m_x через ссылку x без проверки указателя
  }