Как появляются отрицательные значения - нужно разбираться. Возможно есть двойные сделки?

Что касается API, то в текущем через позиции - это сделать нельзя. Можно выставлять заявки вручную через ISecurityRt, но и рассчитывать позиции в этом случае придется тоже вручную.