MarchCat писал (а):
Есть смысл читать в самом начале эксперта все свойства ордера
в свои переменные или при каждом обращении пользовать
OrderOpenPrice(), Symbol(); OrderTicket(); ....
как быстрее или как правильнее?
Присоединяюсь к вопросу, со своей стороны хотел бы добавить просьбу к разработчикам написать рекомендации по использованию функций для повышения быстродействия. В одной из веток был намек stringo о том что использование функции iBars() и подобных замедляет работу эксперта.
Управление ордерами – это просто
Учёт ордеров в большой программе
Статья описывает разнообразные способы контроля открытых позиций и отложенных ордеров и призвана облегчить написание экспертов.
Учёт ордеров в большой программе
Рассматриваются общие принципы построения учёта ордеров в сложной программе.
MarchCat:
Функции доступа к параметрам выбранной через OrderSelect сделки выдают
значения напрямую без каких-либо тормозов. То есть, ими можно
пользоваться напрямую без копирования в свои переменные. Копированием
в свои переменные можно получить лишь небольшое ускорение.
Есть смысл читать в самом начале эксперта все свойства ордера
в свои переменные или при каждом обращении пользовать
OrderOpenPrice(), Symbol(); OrderTicket(); ....
как быстрее или как правильнее?
А вот операции поиска и выбора через OrderSelect(...) достаточно дорогие. Многие в своих экспертах на каждом тике устраивают полный перебор открытых (и даже закрытых) позиций и теряют много времени. Особенно это тормозит в тестере на многомиллионных переборах тиков.
Один из способов кардинального ускорения расчетов в тестере - это рациональный самостятельный контроль позиций. Например, стратегия ведет только одну сделку, но постоянно ресканит все открытые позиции для контроля текущего состояния и закрытые сделки для управления размером лота. Конечно же, тупой перебор занимает время.
Как решение - в эксперте есть две части управления:
- реальная работа без тестера - можно гарантированно перебирать все что есть на каждом тике
- в тестере (IsTesting поможет) - вести контроль открытости позиции (тикет, характеристики) в своей переменной, а также счетчики результатов закрытых позиций
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Есть смысл читать в самом начале эксперта все свойства ордера в свои переменные или при каждом обращении пользовать
OrderOpenPrice(), Symbol(); OrderTicket(); ....
как быстрее или как правильнее?