Добрый день. Во-первых, спасибо за прекрасную библиотеку, очень понравилось с ней работать. Я пытаюсь написать высокочастотного робота для торговли на ФОРТС, для этого я зарегистрировал ДЕМО счет на IT-Invest (никак не могу понять, есть ли принципиальные отличия ДЕМО счета от реального), но у меня сразу возникли проблемы.
1. Я подписываюсь на события MyTrades, NewTrades и QuotesChanged. Правильно ли я понимаю, что каждому событию соответствует отдельный поток и они не синхронизированны?
2. По MyTrades я только обновляю текущую позицию. В NewTrades и QuotesChanged у меня происходит принятие решения, и могут создаваться новые заявки/удаляться старые. Нужно ли блокировать исполнение во всех других потоках для этого? Я столкнулся с проблемой, когда робот пытается переставить заявку, статус которой (смотрю в терминале SmartX) Filled, а в программе статус Active, как такое могло произойти?
3. Можно ли делать Cancel у заявки, по которой еще не пришел OrderID? У меня кидается исключение, хотя я предполагал, что в библиотеке такие вещи будут делаться прозрачно (т.е. если заявку нельзя отменить, то она будет снята тогда, когда это станет возможным).
Если есть какие-то общие рекомендации по тому как лучше организовать работу подобной МТС, буду рад выслушать любые замечания.