Example #1
0
 public static MoneynessProvider DivAdjusted(double spot,
                                             DividendQuote[] dividends,
                                             DiscountCurve discountCurve,
                                             ITimeMeasure time)
 {
     return(new DivAdjustedMoneyness(spot, new AffineDivCurveUtils(dividends, discountCurve, time)));
 }
Example #2
0
 public AssetForwardCurve(double spot, DividendQuote[] dividends, DiscountCurve assetFinancingCurve,
                          ITimeMeasure time)
 {
     Contract.Requires(EnumerableUtils.IsSorted(dividends.Select(div => div.Date)));
     this.time     = time;
     Spot          = spot;
     divCurveUtils = new AffineDivCurveUtils(dividends, assetFinancingCurve, time);
 }
Example #3
0
 public ProductDiscount(DiscountCurve discount1, DiscountCurve discount2, FinancingId financing)
     : base(discount1.RefDate, financing)
 {
     if (discount1.RefDate != discount2.RefDate)
         throw new Exception("ProductDiscount : incompatible ref date !");
     
     this.discount1 = discount1;
     this.discount2 = discount2;
 }
Example #4
0
        public AssetMarket(AssetId asset, DateTime refDate, ITimeMeasure time,
                           double spot,
                           DiscountCurve riskFreeDiscount,
                           DiscountCurve repoCurve,
                           DividendQuote[] dividends,
                           VolatilityMatrix volMatrix)
        {
            Time             = time;
            Spot             = spot;
            RiskFreeDiscount = riskFreeDiscount;
            RepoCurve        = repoCurve;
            Dividends        = dividends;
            VolMatrix        = volMatrix;
            RefDate          = refDate;
            Asset            = asset;

            if (refDate != repoCurve.RefDate || refDate != time.RefDate)
            {
                throw new Exception("AssetMarket : incompatible ref date !");
            }
        }
Example #5
0
        public AssetForwardCurve Forward(DiscountCurve cashFinancingCurve)
        {
            var assetFinancingCurve = AssetFinancingCurve(cashFinancingCurve);

            return(new AssetForwardCurve(Spot, Dividends, assetFinancingCurve, Time));
        }
Example #6
0
 public DiscountCurve AssetFinancingCurve(DiscountCurve cashFinancingCurve)
 {
     return(DiscountCurve.Product(RepoCurve, cashFinancingCurve, FinancingId.AssetCollat(Asset)));
 }
Example #7
0
 public static DiscountCurve Product(DiscountCurve discount1, DiscountCurve discount2, FinancingId financing)
 {
     return new ProductDiscount(discount1, discount2, financing);
 }