Да, так я делаю, но у меня советник тиковый, и есть три процедуры которые вызываются каждый тик. и я решил сделать "оптимизацию" и в случае если открытых позиций нет - просто сразу выходить. Но на тесте получается наоборот - сильно медленнее.
Если предусмотрено наличие только одной позиции по символу, то проще проверить PositionSelect(_Symbol); Может эта функция меньше грузит чем PositionsTotal()?
Тут, наверное, еще может пригодиться запуск эксперта в режиме профилирования. По результатам можно будет точно сказать, виновата ли PositionsTotal() или дело в чем-то другом. Просто есть сомнения, что реализация PositionsTotal() настолько ресурсоемкая. Но полностью этого без проверки исключать нельзя.
Попробуйте вместо вызова PositionsTotal() на каждом тике завести глобальную переменную для хранения количества открытых позиций. При каждой операции открытия/закрытия присваивайте ей результат PositionsTotal(), а на каждом тике проверяйте, равна ли эта переменная нулю.
Если да, то выход без исполнения дальнейшего кода.
Поскольку операций открытия/закрытия существенно меньше, чем тиков, то сильно уменьшится количество вызовов PositionsTotal().
Для отслеживания операций можно использовать обработчик OnTrade() или OnTradeTransaction()
"Толковый" это тот кто его написал и не тратит время на то, что может быть автоматизировано.
Роман, таких графиков которые показаны на первой странице, на реале не бывает.
Если покажете все настройки тестера, название брокера и тип счета, а также видео визуального режима тестера (где на Market Watch, есть столбик Спреда),и в режиме реальных тиков, то скажу он хороший или плохой.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Да, так я делаю, но у меня советник тиковый, и есть три процедуры которые вызываются каждый тик. и я решил сделать "оптимизацию" и в случае если открытых позиций нет - просто сразу выходить. Но на тесте получается наоборот - сильно медленнее.
Если предусмотрено наличие только одной позиции по символу, то проще проверить PositionSelect(_Symbol); Может эта функция меньше грузит чем PositionsTotal()?
Здравствуйте, Роман.
Кстати да, хороший способ, спасибо, так и сделаю
Кстати да, хороший способ, спасибо, так и сделаю
не советую
т.к. даже при единственном неисполнении торгового приказа произойдет сбой.
не советую
т.к. даже при единственном неисполнении торгового приказа произойдет сбой.
А именно?
самый умный зарегистрировался)
не пойму
"Толковый" это тот кто его написал и не тратит время на то, что может быть автоматизировано.
"Толковый" это тот кто его написал и не тратит время на то, что может быть автоматизировано.
Роман, таких графиков которые показаны на первой странице, на реале не бывает.
Если покажете все настройки тестера, название брокера и тип счета, а также видео визуального режима тестера (где на Market Watch, есть столбик Спреда),и в режиме реальных тиков, то скажу он хороший или плохой.
А именно?
только опыт положит нужное понимание на полочку
даже если объясню, все равно не поймешь
считать кол-во ордеров через внешние переменные - путь очень геморройный и ненадежный, поверь на слово, ничего не получиться