Хотелось бы узнать почему система отражает разные данные, в программе показывает что позиция открыта, а на реальном счете, что позиция закрыта, разве данные не синхронизируются.
Не могу знать, может у Вас два скрипта работает по одному инструменту? Один в шортах, другой в лонгах, совокупная позиция = 0. Может программа виртуальную позицию показывает, т.е. в лаборатории вход есть, а в реале нет - проскальзывания не хватило. Гадать можно долго...
А глобальных переменных можно хранить данные ? Т.е. описывать и инициализировать в не public virtual void Execute(IContext ctx, ISecurity source)
Можно, но лучше сначала с текущей проблемой разберитесь, иначе не раз еще об нее споткнетесь.