Example #1
0
        public void LoadCurrentDeals()
        {
            _deals = _dbManager.GetAllDeals();

            ResetInstrumentPosition();
            foreach (var deal in _deals)
            {
                ObsInstruPosition pos;
                if (!_currentPosDico.TryGetValue(deal.InstrumentId, out pos))
                {
                    var newPos = new ObsInstruPosition(deal);
                    _currentPosDico.Add(deal.InstrumentId, newPos);

                    ObsPositions.Add(newPos);
                    continue;
                }
                Pnl.ComputeInstrumentPosition(pos, deal);
            }

            ResetBookPosition();
            foreach (ObsInstruPosition instruPos in _currentPosDico.Values)
            {
                ObsBookPosition pos;
                if (!_bookPositionDico.TryGetValue(instruPos.Book, out pos))
                {
                    var newPos = new ObsBookPosition(instruPos);
                    _bookPositionDico.Add(instruPos.Book, newPos);
                    ObsBookPosition.Add(newPos);
                    return;
                }
                Pnl.ComputeBookPosition(pos, instruPos);
            }

            foreach (ObsInstruPosition instruPos in _expiredPosDico.Values)
            {
                ObsBookPosition pos;
                if (!_bookPositionDico.TryGetValue(instruPos.Book, out pos))
                {
                    var newPos = new ObsBookPosition(instruPos);
                    _bookPositionDico.Add(instruPos.Book, newPos);
                    ObsBookPosition.Add(newPos);
                    return;
                }
                Pnl.ComputeBookPosition(pos, instruPos);
            }
        }
Example #2
0
        private BookPosition[] ComputeBookPosition(Dictionary <string, InstrumentPosition> instruPosDico)
        {
            var bookPositionDico = new Dictionary <string, BookPosition>();

            foreach (InstrumentPosition instruPos in instruPosDico.Values)
            {
                BookPosition pos;
                if (!bookPositionDico.TryGetValue(instruPos.Book, out pos))
                {
                    var newPos = new BookPosition(instruPos);
                    bookPositionDico.Add(instruPos.Book, newPos);
                    continue;
                }
                Pnl.ComputeBookPosition(pos, instruPos);
            }

            return(bookPositionDico.Values.ToArray());
        }