public double NPV(Trade trade, SimMarket simMarket) { double npv = 0.0; try { double fx = simMarket.FxSpot(trade.NpvCurrency() + _baseCcyCode).link.value(); double numeraire = simMarket.Numeraire(); npv = trade.Instrument().NPV() * fx / numeraire; } catch (Exception ex) { //ALOG("Failed to price trade " << trade->id() << " : " << e.what()); npv = 0; } return(npv); }