public static object _CreatePCACurveSimulator(string objectName,
                                               object[,] anchorDate,
                                               object[,] initialRates,
                                               object[,] tenors,
                                               object[,] components,
                                               object[,] vols,
                                               object[,] multiplier,
                                               object[,] useRelative,
                                               object[,] floorAtZero)
 {
     try
     {
         Date     _anchorDate   = XU.GetDate0D(anchorDate, "anchorDate");
         Double[] _initialRates = XU.GetDouble1D(initialRates, "initialRates");
         Tenor[]  _tenors       = XU.GetTenor1D(tenors, "tenors");
         Double[,] _components = XU.GetDouble2D(components, "components");
         Double[] _vols        = XU.GetDouble1D(vols, "vols");
         Double   _multiplier  = XU.GetDouble0D(multiplier, "multiplier");
         Boolean  _useRelative = XU.GetBoolean0D(useRelative, "useRelative");
         Boolean  _floorAtZero = XU.GetBoolean0D(floorAtZero, "floorAtZero");
         Object   _result      = XLCurves.CreatePCACurveSimulator(_anchorDate, _initialRates, _tenors, _components, _vols, _multiplier, _useRelative, _floorAtZero);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
 public static object _CreateEquityModel(string objectName,
                                         object[,] discountCurve,
                                         object[,] shares,
                                         object[,] spotPrices,
                                         object[,] volatilities,
                                         object[,] divYields,
                                         object[,] correlations,
                                         object[,] rateForecastCurves)
 {
     try
     {
         var _discountCurve      = XU.GetObject0D <IDiscountingSource>(discountCurve, "discountCurve");
         var _shares             = XU.GetSpecialType1D <Share>(shares, "shares");
         var _spotPrices         = XU.GetDouble1D(spotPrices, "spotPrices");
         var _volatilities       = XU.GetDouble1D(volatilities, "volatilities");
         var _divYields          = XU.GetDouble1D(divYields, "divYields");
         var _correlations       = XU.GetDouble2D(correlations, "correlations");
         var _rateForecastCurves = XU.GetObject1D <IFloatingRateSource>(rateForecastCurves, "rateForecastCurves");
         var _result             = XLEquities.CreateEquityModel(_discountCurve, _shares, _spotPrices, _volatilities,
                                                                _divYields, _correlations, _rateForecastCurves);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
Exemple #3
0
 public static object _CreateMultiHWAndFXToy(string objectName,
                                             object[,] anchorDate,
                                             object[,] numeraireCcy,
                                             object[,] rateSimulators,
                                             object[,] currencies,
                                             object[,] spots,
                                             object[,] vols,
                                             object[,] correlations)
 {
     try
     {
         var _anchorDate     = XU.GetDate0D(anchorDate, "anchorDate");
         var _numeraireCcy   = XU.GetSpecialType0D <Currency>(numeraireCcy, "numeraireCcy");
         var _rateSimulators = XU.GetObject1D <HullWhite1F>(rateSimulators, "rateSimulators");
         var _currencies     = XU.GetSpecialType1D <Currency>(currencies, "currencies");
         var _spots          = XU.GetDouble1D(spots, "spots");
         var _vols           = XU.GetDouble1D(vols, "vols");
         var _correlations   = XU.GetDouble2D(correlations, "correlations");
         var _result         = XLFX.CreateMultiHWAndFXToy(_anchorDate, _numeraireCcy, _rateSimulators, _currencies,
                                                          _spots, _vols, _correlations);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
 public static object _CreateCDS(string objectName,
                                 object[,] refEntity,
                                 object[,] ccy,
                                 object[,] paymentDates,
                                 object[,] notionals,
                                 object[,] rates,
                                 object[,] accrualFractions,
                                 object[,] boughtProtection)
 {
     try
     {
         var _refEntity        = XU.GetSpecialType0D <ReferenceEntity>(refEntity, "refEntity");
         var _ccy              = XU.GetSpecialType0D <Currency>(ccy, "ccy");
         var _paymentDates     = XU.GetDate1D(paymentDates, "paymentDates");
         var _notionals        = XU.GetDouble1D(notionals, "notionals");
         var _rates            = XU.GetDouble1D(rates, "rates");
         var _accrualFractions = XU.GetDouble1D(accrualFractions, "accrualFractions");
         var _boughtProtection = XU.GetBoolean0D(boughtProtection, "boughtProtection");
         var _result           = XLCredit.CreateCDS(_refEntity, _ccy, _paymentDates, _notionals, _rates, _accrualFractions,
                                                    _boughtProtection);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
 public static object _CreateFloatLeg(string objectName,
                                      object[,] currency,
                                      object[,] floatingIndex,
                                      object[,] resetDates,
                                      object[,] paymentDates,
                                      object[,] notionals,
                                      object[,] spreads,
                                      object[,] accrualFractions)
 {
     try
     {
         var _currency         = XU.GetSpecialType0D <Currency>(currency, "currency");
         var _floatingIndex    = XU.GetSpecialType0D <FloatingIndex>(floatingIndex, "floatingIndex");
         var _resetDates       = XU.GetDate1D(resetDates, "resetDates");
         var _paymentDates     = XU.GetDate1D(paymentDates, "paymentDates");
         var _notionals        = XU.GetDouble1D(notionals, "notionals");
         var _spreads          = XU.GetDouble1D(spreads, "spreads");
         var _accrualFractions = XU.GetDouble1D(accrualFractions, "accrualFractions");
         var _result           = XLRates.CreateFloatLeg(_currency, _floatingIndex, _resetDates, _paymentDates, _notionals,
                                                        _spreads, _accrualFractions);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
Exemple #6
0
 public static object _CreateFloatLeg(string objectName,
                                      object[,] currency,
                                      object[,] floatingIndex,
                                      object[,] resetDates,
                                      object[,] paymentDates,
                                      object[,] notionals,
                                      object[,] spreads,
                                      object[,] accrualFractions)
 {
     try
     {
         Currency      _currency         = XU.GetCurrency0D(currency, "currency");
         FloatingIndex _floatingIndex    = XU.GetFloatingIndex0D(floatingIndex, "floatingIndex");
         Date[]        _resetDates       = XU.GetDate1D(resetDates, "resetDates");
         Date[]        _paymentDates     = XU.GetDate1D(paymentDates, "paymentDates");
         Double[]      _notionals        = XU.GetDouble1D(notionals, "notionals");
         Double[]      _spreads          = XU.GetDouble1D(spreads, "spreads");
         Double[]      _accrualFractions = XU.GetDouble1D(accrualFractions, "accrualFractions");
         FloatLeg      _result           = XLRates.CreateFloatLeg(_currency, _floatingIndex, _resetDates, _paymentDates, _notionals, _spreads, _accrualFractions);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
 public static object _FitCurveNelsonSiegel(string objectName,
                                            object[,] anchorDate,
                                            object[,] dates,
                                            object[,] rates)
 {
     try
     {
         Date     _anchorDate = XU.GetDate0D(anchorDate, "anchorDate");
         Date[]   _dates      = XU.GetDate1D(dates, "dates");
         Double[] _rates      = XU.GetDouble1D(rates, "rates");
         ICurve   _result     = XLCurves.FitCurveNelsonSiegel(_anchorDate, _dates, _rates);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
 public static object _CreateDatesAndRatesCurve(string objectName,
                                                object[,] dates,
                                                object[,] rates,
                                                object[,] currency)
 {
     try
     {
         Date[]             _dates    = XU.GetDate1D(dates, "dates");
         Double[]           _rates    = XU.GetDouble1D(rates, "rates");
         Currency           _currency = XU.GetCurrency0D(currency, "currency", Currency.ANY);
         IDiscountingSource _result   = XLCurves.CreateDatesAndRatesCurve(_dates, _rates, _currency);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
 public static object _CreateCashLeg(string objectName,
                                     object[,] paymentDates,
                                     object[,] amounts,
                                     object[,] currencies)
 {
     try
     {
         var _paymentDates = XU.GetDate1D(paymentDates, "paymentDates");
         var _amounts      = XU.GetDouble1D(amounts, "amounts");
         var _currencies   = XU.GetSpecialType1D <Currency>(currencies, "currencies");
         var _result       = XLRates.CreateCashLeg(_paymentDates, _amounts, _currencies);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
Exemple #10
0
 public static object _CreateDatesAndRatesCurve(string objectName,
                                                object[,] dates,
                                                object[,] rates,
                                                object[,] currency)
 {
     try
     {
         var _dates    = XU.GetDate1D(dates, "dates");
         var _rates    = XU.GetDouble1D(rates, "rates");
         var _currency = XU.GetSpecialType0D(currency, "currency", Currency.ANY);
         var _result   = XLCurves.CreateDatesAndRatesCurve(_dates, _rates, _currency);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
Exemple #11
0
 public static object _CreateCashLeg(string objectName,
                                     object[,] paymentDates,
                                     object[,] amounts,
                                     object[,] currencies)
 {
     try
     {
         Date[]     _paymentDates = XU.GetDate1D(paymentDates, "paymentDates");
         Double[]   _amounts      = XU.GetDouble1D(amounts, "amounts");
         Currency[] _currencies   = XU.GetCurrency1D(currencies, "currencies");
         CashLeg    _result       = XLRates.CreateCashLeg(_paymentDates, _amounts, _currencies);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
 public static object _CreateLoanFixedRate(string objectName,
                                           object[,] currency,
                                           object[,] balanceDates,
                                           object[,] balanceAmounts,
                                           object[,] fixedRate)
 {
     try
     {
         var _currency       = XU.GetSpecialType0D <Currency>(currency, "currency");
         var _balanceDates   = XU.GetDate1D(balanceDates, "balanceDates");
         var _balanceAmounts = XU.GetDouble1D(balanceAmounts, "balanceAmounts");
         var _fixedRate      = XU.GetDouble0D(fixedRate, "fixedRate");
         var _result         = XLRates.CreateLoanFixedRate(_currency, _balanceDates, _balanceAmounts, _fixedRate);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
 public static object _CreateHazardCurve(string objectName,
                                         object[,] referenceEntity,
                                         object[,] anchorDate,
                                         object[,] dates,
                                         object[,] hazardRates)
 {
     try
     {
         var _referenceEntity = XU.GetSpecialType0D <ReferenceEntity>(referenceEntity, "referenceEntity");
         var _anchorDate      = XU.GetDate0D(anchorDate, "anchorDate");
         var _dates           = XU.GetDate1D(dates, "dates");
         var _hazardRates     = XU.GetDouble1D(hazardRates, "hazardRates");
         var _result          = XLCredit.CreateHazardCurve(_referenceEntity, _anchorDate, _dates, _hazardRates);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
 public static object _CreateFixedLeg(string objectName,
                                      object[,] currency,
                                      object[,] paymentDates,
                                      object[,] notionals,
                                      object[,] rates,
                                      object[,] accrualFractions)
 {
     try
     {
         var _currency         = XU.GetSpecialType0D <Currency>(currency, "currency");
         var _paymentDates     = XU.GetDate1D(paymentDates, "paymentDates");
         var _notionals        = XU.GetDouble1D(notionals, "notionals");
         var _rates            = XU.GetDouble1D(rates, "rates");
         var _accrualFractions = XU.GetDouble1D(accrualFractions, "accrualFractions");
         var _result           = XLRates.CreateFixedLeg(_currency, _paymentDates, _notionals, _rates, _accrualFractions);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
Exemple #15
0
 public static object _CreateLoanFloatingRate(string objectName,
                                              object[,] currency,
                                              object[,] balanceDates,
                                              object[,] balanceAmounts,
                                              object[,] floatingIndex,
                                              object[,] floatingSpread)
 {
     try
     {
         Currency         _currency       = XU.GetCurrency0D(currency, "currency");
         Date[]           _balanceDates   = XU.GetDate1D(balanceDates, "balanceDates");
         Double[]         _balanceAmounts = XU.GetDouble1D(balanceAmounts, "balanceAmounts");
         FloatingIndex    _floatingIndex  = XU.GetFloatingIndex0D(floatingIndex, "floatingIndex");
         Double           _floatingSpread = XU.GetDouble0D(floatingSpread, "floatingSpread");
         LoanFloatingRate _result         = XLRates.CreateLoanFloatingRate(_currency, _balanceDates, _balanceAmounts, _floatingIndex, _floatingSpread);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
 public static object _CreateLoanFloatingRate(string objectName,
                                              object[,] currency,
                                              object[,] balanceDates,
                                              object[,] balanceAmounts,
                                              object[,] floatingIndex,
                                              object[,] floatingSpread)
 {
     try
     {
         var _currency       = XU.GetSpecialType0D <Currency>(currency, "currency");
         var _balanceDates   = XU.GetDate1D(balanceDates, "balanceDates");
         var _balanceAmounts = XU.GetDouble1D(balanceAmounts, "balanceAmounts");
         var _floatingIndex  = XU.GetSpecialType0D <FloatingIndex>(floatingIndex, "floatingIndex");
         var _floatingSpread = XU.GetDouble0D(floatingSpread, "floatingSpread");
         var _result         = XLRates.CreateLoanFloatingRate(_currency, _balanceDates, _balanceAmounts, _floatingIndex,
                                                              _floatingSpread);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
Exemple #17
0
 public static object[,] _PFE(object[,] products,
                              object[,] valueDate,
                              object[,] forwardValueDates,
                              object[,] requiredPecentiles,
                              object[,] model,
                              object[,] nSims)
 {
     try
     {
         Product[]          _products           = XU.GetObject1D <Product>(products, "products");
         Date               _valueDate          = XU.GetDate0D(valueDate, "valueDate");
         Date[]             _forwardValueDates  = XU.GetDate1D(forwardValueDates, "forwardValueDates");
         Double[]           _requiredPecentiles = XU.GetDouble1D(requiredPecentiles, "requiredPecentiles");
         NumeraireSimulator _model = XU.GetObject0D <NumeraireSimulator>(model, "model");
         Int32              _nSims = XU.GetInt320D(nSims, "nSims");
         Double[,] _result = XLValuation.PFE(_products, _valueDate, _forwardValueDates, _requiredPecentiles, _model, _nSims);
         return(XU.ConvertToObjects(_result));
     }
     catch (Exception e)
     {
         return(XU.Error2D(e));
     }
 }