Как быстрей? - страница 2

 
для расчета скорости есть профилировщик
Подставьте один код и потом - другой  и сравните.
 
Dmitiry Ananiev #:
для расчета скорости есть профилировщик
Подставьте один код и потом - другой  и сравните.

Да, спасибо. Но к сожалению для меня эти функции МQ - Это черный ящик. Я плохо представляю, как ими пользоваться. Впрочем, конечно это адекватный ответ на мой изначальный вопрос. Взять и попробовать, разные варианты кода. Дело не в том, что я хочу, что бы кто то выложил мне бесплатно секрет быстрой работы кода, а просто вопрос к людям с опытом, именно в MQL. Я не профессионал в програмировании, и поэтому многое скрыто от моего взгляда. Поэтому я и спрашиваю об этом. И вполне возможно, что эта тема может быть актуальна для многих.

Еще раз благодарю всех кто может посодействовать, или как то помочь. А с профилеровщиком попробую разобраться...

 
Vitalii Stepanov #:

Да, спасибо. Но к сожалению для меня эти функции МQ - Это черный ящик. Я плохо представляю, как ими пользоваться. Впрочем, конечно это адекватный ответ на мой изначальный вопрос. Взять и попробовать, разные варианты кода. Дело не в том, что я хочу, что бы кто то выложил мне бесплатно секрет быстрой работы кода, а просто вопрос к людям с опытом, именно в MQL. Я не профессионал в програмировании, и поэтому многое скрыто от моего взгляда. Поэтому я и спрашиваю об этом. И вполне возможно, что эта тема может быть актуальна для многих.

Еще раз благодарю всех кто может посодействовать, или как то помочь. А с профилеровщиком попробую разобраться...

Профилировщик - архинужная вещь для "тяжёлых" вычислений. Он выявляет "узкое" место, где и требуется оптимизация. Я уже не раз сталкивался с ситуацией, когда "по логике" кажется, что наибольшее время тратится на один участок кода, а прогнав в профилировщике, выяснялось, что это вовсе некритичный участок, а оптимизировать работу надо совсем в другом месте. 

Обязательно разбирайся, если уж такие мелочи, как подсчёт позиций вызывает желание оптимизации.

Скорее всего, там не только в подсчёте позиций загвоздка. У меня, скажем, класс торговой позиции при запуске не только определяет число открытых позиций, но и загружает все их характеристики, и тут получается целая структура данных. Но, в профилировщике я вижу, что этот код занимает очень небольшое время, и смысла там что-то оптимизировать нет. 

 
trader6_1 #:

Если не было события OnTradeTransaction, то PositionsTotal можно не пересчитывать.

Две причины, почему так делать нельзя.

  1. Во время выполнения OnTick может поменяться количество позиций.
  2. Количество позиций может поменяться вне выполнения OnTick, но OnTick мог стоять в очереди раньше, чем OnTradeTransaction.
Есть и другие причины.
Причина обращения: