swerg пишет:Надо будет докручивать логику, чтобы отписка была только после исполнения / снятия второй заявки.
Да, точно, сразу не сообразил. А её можно вообще докрутить?
OnTransReply не подойдёт, так как по документации не вызывается для импортированных заявок.
OnOrder вызывается несколько раз для одной заявки при её создании, поэтому просто завести таблицу и считать там число срабатываний не получится.
Можно, конечно, подписаться на 10 минут с момента последнего срабатывания onOrder(), внося инструменты в таблицу и проверяя в main(), правда это только для ликвидных инструментов. Ну или самостоятельно снимать ордер чаще чем раз в 10 минут.
В программе экспорта стаканов по ODBC указано ограничение не больше 10 стаканов, подозреваю что в Квике тоже будет такое же ограничение, поэтому совсем долго держать ненужную подписку я бы не стал.
swerg пишет:Если вы планируете постоянно заявку "перемещать" в стакане - то не совсем понятно зачем подписываться / отписываться.
В примере выше так будет происходить, если я правильно понял код.
Т.е.
1. подписались
2. решили передвинуться
3. заявка снята -> отписались
4. заявка поставлена -> подписались
swerg пишет:Наверняка же после исполнения заявки вы будете выставлять новую, другого направления.
Не всегда, иногда надо просто купить или продать по лучшей цене, нежели кидать в мидпрайс 
Я бы подписался вообще на все стаканы всех инструментов, но в Квике нет такой возможности (и, подозреваю, его производительности не хватит) да и не нужны все стаканы по умолчанию.