Исключение ArgumentNullException в классе PnLManager в методе ProcessMessage()
Atom Ответить
05.06.2020


Продолжаем парад багов. Устойчиво воспроизводится на QUIK 8.5.

В случае если сообщение о выполненной сделке приходит быстрее, чем об изменении статуса Order, в котором он получает свой биржевой идентификатор, в методе PnLManager.ProcessMessage() генерируется исключение. Проблема в том, что там есть код, который рассчитывает, что к моменту обработки сообщения точно будет известен идентификатор заявки. И это никак не контролируется.

Выпадает на строчке: else if (!execMsg.OrderStringId.IsEmpty()), т.к. у заявки OrderStringId равен null

Кстати, вы, похоже, не в курсе, что для проверки строки на пустое значение существует метод String.IsNullOrEmpty(), который и надо тут использовать. Но основная проблема в том, что код не готов к тому, что сообщение о сделке придет раньше обновления статуса заявки.



Спасибо:




2 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 05.06.2020
Ответить


Отличный баг репорт. Фикс залил. Продолжайте в том же духе.
Спасибо:

Alexander

Фотография
Дата: 06.06.2020
Ответить


Спасибо за быструю реакцию.
Автор топика
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy