示例#1
0
        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);
        }
示例#2
0
 public ValuationEngine(Date today, DateGrid dg, SimMarket simMarket)
 {
     _today     = today;
     _dg        = dg;
     _simMarket = simMarket;
 }
示例#3
0
 public override void Calculate(Trade trade, int tradeIndex, SimMarket simMarket, Date date, int dateIndex)
 {
     NPV(trade, simMarket);
 }
示例#4
0
 public override void CalculateT0(Trade trade, int tradeIndex, SimMarket simMarket)
 {
     NPV(trade, simMarket);
 }
示例#5
0
 public virtual void CalculateT0(Trade trade, int tradeIndex, SimMarket simMarket)
 {
     throw new NotImplementedException();
 }