コード例 #1
0
        // For a specific strike and maturity, we use the option(call or put) which is out of the money
        // this methode is in charge to retreive the current option ric out of the money
        private double GetOutTheMoneyOptionPrice(ObsInstruPosition pos, string optionType)
        {
            // build option tt code
            string targetOptionTtCode = Option.GetOptionTtCode(pos.ProductName, optionType, pos.MaturityDate, pos.Strike);
            // get or suscribe option price
            double targetOptionPrice;

            _instrumentPriceSafeDico.TryGetValue(targetOptionTtCode, out targetOptionPrice);
            return(targetOptionPrice);
        }
コード例 #2
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);
            }
        }