Ну, никогда не угадаешь зачем люди будут использовать то, что ты делаешь ))) А в описании ни каких ограничений на применение функции только для открытых позиций нет, как, например, для IPosition.Profit

Мне, кстати говоря, это было нужно для расчета комиссии. Если GetShares(ctx.BarsCount-1) != GetShares(ctx.BarsCount-2) значит была сделка и пора считать комиссию. В текущем виде, само-собой, это не работало.