Как быстрей?

 
Джентальмены, у кого есть опыт? Как будет быстрей? Пробежать в цикле на каждом тике, посчитать количество открытых позиций, или после каждого действия с позицией менять колличественную переменную?
 
Vitalii Stepanov:
Джентальмены, у кого есть опыт? Как будет быстрей? Пробежать в цикле на каждом тике, посчитать количество открытых позиций, или после каждого действия с позицией менять колличественную переменную?

PositionsTotal()

Возвращает количество открытых позиций.

https://www.mql5.com/ru/docs/trading/positionstotal

Документация по MQL5: Торговые функции / PositionsTotal
Документация по MQL5: Торговые функции / PositionsTotal
  • www.mql5.com
PositionsTotal - Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Yevhenii Levchenko #:

PositionsTotal()

Возвращает количество открытых позиций.

https://www.mql5.com/ru/docs/trading/positionstotal

Спасибо, но я имел ввиду скорость работы кода.

 
Vitalii Stepanov #:

Спасибо, но я имел ввиду скорость работы кода.

Главное ещё простота и надежность.

А если с количественной переменной что-то не так (не правильной будет)? Значит нужно проверять, тогда нужно пройти цикл, те же затраты..

Проще PositionsTotal().

 
Evgeniy Chumakov #:

Главное ещё простота и надежность.

А если с количественной переменной что-то не так (не правильной будет)? Значит нужно проверять, тогда нужно пройти цикл, те же затраты..

Проще PositionsTotal().

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

 
Vitalii Stepanov:
Джентальмены, у кого есть опыт? Как будет быстрей? Пробежать в цикле на каждом тике, посчитать количество открытых позиций, или после каждого действия с позицией менять колличественную переменную?

Проверить это:

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

 
trader6_1 #:

Проверить это:

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

Не понятно как это сделать, ведь функция ничего не возвращает.

 
Vitalii Stepanov #:

Не понятно как это сделать, ведь функция ничего не возвращает.

https://www.mql5.com/ru/docs/trading/positionstotal

Документация по MQL5: Торговые функции / PositionsTotal
Документация по MQL5: Торговые функции / PositionsTotal
  • www.mql5.com
PositionsTotal - Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
OnTradeTransaction?
 
trader6_1 #:

Проверить это:

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

Т.е. предлагаете пересчет позиций засунуть в  OnTradeTransaction?

Не понятно как перераспределить функции между ОнТик и  OnTradeTransaction.

 
Vitalii Stepanov #:

Спасибо, но я имел ввиду скорость работы кода.

 Вообще говоря, оптимизировать надо там, где это нужно и не в ущерб надежности/читаемости кода. PositionsTotal просто отдает число, которое уже хранится в памяти терминала. Максимум что вы сэкономите - несколько тактов на запрос, но можете поиметь лютый геморой.

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