Новая версия платформы MetaTrader 5 build 3180: Векторы и матрицы в MQL5 и повышение удобства работы - страница 32

 
fxsaber #:

Сейчас ордера  в истории сортируются каждый раз по номеру тикета, поэтому на 100-м месте могут быть разные значения. И при попадании ордера в историю последний (место в таблице) ордер может не меняться.

Так что если изменилось число записей в таблице истории, то проблематично определить, в каком месте этой таблицы произошли изменения.


Это только в Тестере они почему-то дописываются в конец, а в Терминале - нет.

Раз ордера в истории отсортированы по тикету, найти нужный ордер бинарным поиском на порядки быстрее, чем загрузить ту историю HistorySelect(0, INT_MAX).

 
JRandomTrader #:

Раз ордера в истории отсортированы по тикету, найти нужный ордер бинарным поиском на порядки быстрее, чем загрузить ту историю HistorySelect(0, INT_MAX).

В Тестере, где все делается для максимальной скорости, нет такой сортировки. Все ордера в Тестере дописываются в конец исторической таблицы. Это быстро и логично.

 
fxsaber #:

В Тестере, где все делается для максимальной скорости, нет такой сортировки. Все ордера в Тестере дописываются в конец исторической таблицы. Это быстро и логично.

Ну, я в тестере, для проверки идей, гоняю роботов на основе совсем не того кода, который работает на реале. Только алгоритмы открытия/закрытия совпадают, базовый код разный.

 
JRandomTrader #:

Ну, я в тестере, для проверки идей, гоняю роботов на основе совсем не того кода, который работает на реале. Только алгоритмы открытия/закрытия совпадают, базовый код разный.

Думаю, так поступает большинство. Вы в курсе, что сортировка по тикетам появилась меньше года назад. Никаких комментариев от разработчиков по этому поводу нет совсем.

 
fxsaber #:

Думаю, так поступает большинство. Вы в курсе, что сортировка по тикетам появилась меньше года назад. Никаких комментариев от разработчиков по этому поводу нет совсем.

Была одна недокументированная фича, стала другая. По идее, что той, что другой можно пользоваться на свой страх и риск.

А какие-то комментарии от разработчиков тут вообще исключительная редкость, если речь не идёт о явных ошибках.

 
JRandomTrader #:

Была одна недокументированная фича, стала другая. По идее, что той, что другой можно пользоваться на свой страх и риск.

А какие-то комментарии от разработчиков тут вообще исключительная редкость, если речь не идёт о явных ошибках.

Сам продолжаю использовать b2958 c EX5 от последних бет. Только на нем возможно обходить все гадости за разумное вычислительное время.

 
class My_class
  {
private:
   class My_private_class
     {
      int            a,b,c;
     };
   CQueue<My_private_class*> q;
  };

Компилятор ругается:

cannot access to private class 'My_private_class' declared in class 'My_class'  Queue.mqh       265     4
   see declaration of class 'My_class::My_private_class'        2.mq5   16      10
cannot access to private class 'My_private_class' declared in class 'My_class'  Queue.mqh       289     4
   see declaration of class 'My_class::My_private_class'        2.mq5   16      10
cannot access to private class 'My_private_class' declared in class 'My_class'  IEqualityComparable.mqh 15      29
   in template 'bool Equals(T,T)' specified with [T=My_class::My_private_class*]        EqualFunction.mqh       11      6
   see declaration of class 'My_class::My_private_class'        2.mq5   16      10
3 errors, 0 warnings            4       1

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

Причина обращения: