Непрочитанное сообщение evge » 08 май 2020, 13:30
Не могу сказать что это правильное поведение.
Но первый раз запускается робот и OnUpdate() получает управление.
Если робота остановить кнопкой в диспетчере или через меню контекстное, то он снимает выставленные заявки, но при втором запуске не возращает их на место и OnUpdate() не получает управление, как это было при первом запуске.
Тоже этот момент проверил и подтверждаю. Проверял ещё проще, поставил в коде только одну команду выставления заявки EnterLongLimit(Input1.Cloe[0] - GetPriceStep() * 50). Запустил робота, заявка выставилась. Остановил робота, заявка снялась. Запустил снова - тишина. Т.е. OnUpdate() не получил управление.
Возможно, это баг, т.к. необъяснимо чем отличается первый запуск от паузы и повторного запуска, по логике и там и там надо тогда уж вызывать OnUpdate() и пусть алгоритм решает ставить вновь заявку или нет.
Но тоже могут быть свои грабли, если при повторном запуске вызывать OnUpdate(). Например, если ваш робот собирает данные каждого бара и предполагается что OnUpdate() это всегда только новый бар, т.к. каждая пауза\запуск на одном баре будут искажать данные в роботе.
никогда такого не было и вот опять