Есть смысл ?

 


Есть смысл читать в самом начале эксперта все свойства ордера в свои переменные или при каждом обращении пользовать

OrderOpenPrice(), Symbol(); OrderTicket(); ....

как быстрее или как правильнее?

 
MarchCat писал (а):


Есть смысл читать в самом начале эксперта все свойства ордера в свои переменные или при каждом обращении пользовать

OrderOpenPrice(), Symbol(); OrderTicket(); ....

как быстрее или как правильнее?


Присоединяюсь к вопросу, со своей стороны хотел бы добавить просьбу к разработчикам написать рекомендации по использованию функций для повышения быстродействия. В одной из веток был намек stringo о том что использование функции iBars() и подобных замедляет работу эксперта.
 
Управление ордерами – это просто

Статья описывает разнообразные способы контроля открытых позиций и отложенных ордеров и призвана облегчить написание экспертов.


Учёт ордеров в большой программе

Рассматриваются общие принципы построения учёта ордеров в сложной программе.

 
MarchCat:


Есть смысл читать в самом начале эксперта все свойства ордера в свои переменные или при каждом обращении пользовать

OrderOpenPrice(), Symbol(); OrderTicket(); ....

как быстрее или как правильнее?

Функции доступа к параметрам выбранной через OrderSelect сделки выдают значения напрямую без каких-либо тормозов. То есть, ими можно пользоваться напрямую без копирования в свои переменные. Копированием в свои переменные можно получить лишь небольшое ускорение.

А вот операции поиска и выбора через OrderSelect(...) достаточно дорогие. Многие в своих экспертах на каждом тике устраивают полный перебор открытых (и даже закрытых) позиций и теряют много времени. Особенно это тормозит в тестере на многомиллионных переборах тиков.

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

Как решение - в эксперте есть две части управления:
  • реальная работа без тестера - можно гарантированно перебирать все что есть на каждом тике
  • в тестере (IsTesting поможет) - вести контроль открытости позиции (тикет, характеристики) в своей переменной, а также счетчики результатов закрытых позиций
В тестере ускорение расчетов будет в десятки раз.
Причина обращения: