Новая версия платформы MetaTrader 5 build 2940: Перенос витрин MQL5-сервисов в рабочую область и обновление дизайна - страница 18

 
A100:

Порядок не должен меняться если он есть, а пока есть основания полагать, что его просто нет

Порядок есть, это же алгоритм.

При старте советник имеет сортировку по тикетам. Во время вызовов только HistorySelect(0, INT_MAX) новые ордера попадают всегда в конец. Потому что этот вызов HistorySelect - это прямой доступ к кешу, который всегда формируется дописыванием. Вызов не от нуля - автоматическая сортировка по тикету. Это весь текущий алгоритм.


Мне нужно было отладить синхронизацию ордеров/позиций/сделок в определенной ситуации. Оказалось, что HistorySelect выдает совсем иные данные после старта советника, чем когда советник работал.

A100:

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

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

Не просто так кеш работает именно правильно. Потому что при написании максимально производительного решения было логичным дозаписывать в конец, а не в середину.

 
fxsaber:

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

Не просто так кеш работает именно правильно. Потому что при написании максимально производительного решения было логичным дозаписывать в конец, а не в середину.

Этим и объясняется результат: когда есть кеш, то логично дописать в конец. А когда его нет - то идет построение списка с самого начала. Т.е. в каждом конкретном случае выбирается более производительное решение 

 
A100:

Этим и объясняется результат: когда есть кеш, то логично дописать в конец. А когда его нет - то идет построение списка с самого начала. Т.е. в каждом конкретном случае выбирается более производительное решение 

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

 

Торговый класс CPositionInfo.mqh

'POSITION_COMMISSION' я так понимаю выведена из оборота, раз это значение не подсвечивается в редакторе?

 
Vladimir Karputov:

Торговый класс CPositionInfo.mqh

'POSITION_COMMISSION' я так понимаю выведена из оборота, раз это значение не подсвечивается в редакторе?

Меня тоже смущает этот момент! 

 
Вероятнее всего ещё не доделали.
 
Старая болезнь - вот просто уже сильно сильно надоела: при визуальном тестировании НЕ ОТОЬБРАЖАЮТСЯ индикаторы, которые используются в советнике. Причем можно раз десять делать запуск тестирования - стоп - и снова запуск чтобы индикаторы появились. Пожалуйста сделайте что-то с этим - я уже не знаю как оправдываться перед людьми.
 
Vladimir Karputov:
Старая болезнь - вот просто уже сильно сильно надоела: при визуальном тестировании НЕ ОТОЬБРАЖАЮТСЯ индикаторы, которые используются в советнике. Причем можно раз десять делать запуск тестирования - стоп - и снова запуск чтобы индикаторы появились. Пожалуйста сделайте что-то с этим - я уже не знаю как оправдываться перед людьми.
+++. Тоже через день сталкиваюсь.
 
Если в Wizard  сгенерировать советник, то все индикаторы в визуальном режиме и на выходе отражаются. Наверное  у нас недоработка в коде. Нужно бы покопаться и доработать. У меня тоже не показывает.
 
Vladimir Karputov:

Торговый класс CPositionInfo.mqh

'POSITION_COMMISSION' я так понимаю выведена из оборота, раз это значение не подсвечивается в редакторе?

В стандартной библиотеке стоит, я пользуюсь, фиолетовенькая.

"Получает размер комиссии по позиции."

double  Commission() const