Чтобы исключить косяк лучше начальный депозит задавать тоже пунктах: рубли / доллар * 50 = начальный баланс в пунктах
а потом
var depo = new EstimatedMoney();
var depo1 = depo.Execute(sec, i);
var GO = sec.ClosePrices[i] / плечо;
считаю кол-во контрактов для лонга верхняя отсечка тут 100:
var leNum = Math.Min(Math.Floor(depo1 / GO),100);
кол-во контрактов для шорта:
var seNum = leNum;
как-то так...