Определяю размер позиции следующим образом:
var buyPosSize = (int)(secRt.CurrencyBalance *0.9 / sec.FinInfo.BuyDeposit.Value);

Обычно все работает корректно, но иногда размер заявки меняется без видимых причин.
Реальный пример: скрипт выставляет заявку на 27 лотов, как ему и положено. Она держится 10+ пересчетов скрипта, затем заменяется заявкой на 3 лота и на следующем пересчете снова заменяется на 27.
Подозреваю, что дело в брокере (Финам). Если это так, то есть ли способы решить эту проблему не меняя брокера?