// 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); }
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); } }