Ejemplo n.º 1
0
 public static object _CreateFXForecastCurve(string objectName,
                                             object[,] baseCurrency,
                                             object[,] counterCurrency,
                                             object[,] fxRateAtAnchorDate,
                                             object[,] baseCurrencyFXBasisCurve,
                                             object[,] counterCurrencyFXBasisCurve)
 {
     try
     {
         var _baseCurrency             = XU.GetSpecialType0D <Currency>(baseCurrency, "baseCurrency");
         var _counterCurrency          = XU.GetSpecialType0D <Currency>(counterCurrency, "counterCurrency");
         var _fxRateAtAnchorDate       = XU.GetDouble0D(fxRateAtAnchorDate, "fxRateAtAnchorDate");
         var _baseCurrencyFXBasisCurve =
             XU.GetObject0D <IDiscountingSource>(baseCurrencyFXBasisCurve, "baseCurrencyFXBasisCurve");
         var _counterCurrencyFXBasisCurve =
             XU.GetObject0D <IDiscountingSource>(counterCurrencyFXBasisCurve, "counterCurrencyFXBasisCurve");
         var _result = XLFX.CreateFXForecastCurve(_baseCurrency, _counterCurrency, _fxRateAtAnchorDate,
                                                  _baseCurrencyFXBasisCurve, _counterCurrencyFXBasisCurve);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
Ejemplo n.º 2
0
 public static object _CreateModelDeterministicCreditWithFXJump(string objectName,
                                                                object[,] survivalProbSource,
                                                                object[,] otherCurrency,
                                                                object[,] fxSource,
                                                                object[,] valueCurrencyDiscount,
                                                                object[,] fxVol,
                                                                object[,] relJumpSizeInDefault,
                                                                object[,] expectedRecoveryRate)
 {
     try
     {
         var _survivalProbSource =
             XU.GetObject0D <ISurvivalProbabilitySource>(survivalProbSource, "survivalProbSource");
         var _otherCurrency         = XU.GetSpecialType0D <Currency>(otherCurrency, "otherCurrency");
         var _fxSource              = XU.GetObject0D <IFXSource>(fxSource, "fxSource");
         var _valueCurrencyDiscount =
             XU.GetObject0D <IDiscountingSource>(valueCurrencyDiscount, "valueCurrencyDiscount");
         var _fxVol = XU.GetDouble0D(fxVol, "fxVol");
         var _relJumpSizeInDefault = XU.GetDouble0D(relJumpSizeInDefault, "relJumpSizeInDefault");
         var _expectedRecoveryRate = XU.GetDouble0D(expectedRecoveryRate, "expectedRecoveryRate");
         var _result = XLCredit.CreateModelDeterministicCreditWithFXJump(_survivalProbSource, _otherCurrency,
                                                                         _fxSource, _valueCurrencyDiscount, _fxVol, _relJumpSizeInDefault, _expectedRecoveryRate);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
Ejemplo n.º 3
0
 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));
     }
 }
Ejemplo n.º 4
0
 public static object[,] _CurveInterp(object[,] curve,
                                      object[,] dates)
 {
     try
     {
         ICurve _curve = XU.GetObject0D <ICurve>(curve, "curve");
         Date[,] _dates    = XU.GetDate2D(dates, "dates");
         Double[,] _result = XLCurves.CurveInterp(_curve, _dates);
         return(XU.ConvertToObjects(_result));
     }
     catch (Exception e)
     {
         return(XU.Error2D(e));
     }
 }
Ejemplo n.º 5
0
 public static object _GetDF(object[,] curve,
                             object[,] date)
 {
     try
     {
         var _curve  = XU.GetObject0D <IDiscountingSource>(curve, "curve");
         var _date   = XU.GetDate0D(date, "date");
         var _result = XLRates.GetDF(_curve, _date);
         return(XU.ConvertToObjects(_result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
Ejemplo n.º 6
0
 public static object _GetFXRate(object[,] fxCurve,
                                 object[,] date)
 {
     try
     {
         var _fxCurve = XU.GetObject0D <IFXSource>(fxCurve, "fxCurve");
         var _date    = XU.GetDate0D(date, "date");
         var _result  = XLFX.GetFXRate(_fxCurve, _date);
         return(XU.ConvertToObjects(_result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
Ejemplo n.º 7
0
 public static object[,] _PCACurveSimulatorGetRates(object[,] simulator,
                                                    object[,] simulationDates,
                                                    object[,] requiredTenors)
 {
     try
     {
         PCACurveSimulator _simulator       = XU.GetObject0D <PCACurveSimulator>(simulator, "simulator");
         Date[]            _simulationDates = XU.GetDate1D(simulationDates, "simulationDates");
         Tenor[]           _requiredTenors  = XU.GetTenor1D(requiredTenors, "requiredTenors");
         Double[,] _result = XLCurves.PCACurveSimulatorGetRates(_simulator, _simulationDates, _requiredTenors);
         return(XU.ConvertToObjects(_result));
     }
     catch (Exception e)
     {
         return(XU.Error2D(e));
     }
 }
Ejemplo n.º 8
0
 public static object _ValueZARSwap1Curve(object[,] swap,
                                          object[,] valueDate,
                                          object[,] curve)
 {
     try
     {
         var _swap      = XU.GetObject0D <IRSwap>(swap, "swap");
         var _valueDate = XU.GetDate0D(valueDate, "valueDate");
         var _curve     = XU.GetObject0D <IDiscountingSource>(curve, "curve");
         var _result    = XLRates.ValueZARSwap1Curve(_swap, _valueDate, _curve);
         return(XU.ConvertToObjects(_result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
Ejemplo n.º 9
0
 public static object _GetSurvivalProb(object[,] survivalProbabilitySource,
                                       object[,] date1,
                                       object[,] date2)
 {
     try
     {
         ISurvivalProbabilitySource _survivalProbabilitySource = XU.GetObject0D <ISurvivalProbabilitySource>(survivalProbabilitySource, "survivalProbabilitySource");
         Date   _date1  = XU.GetDate0D(date1, "date1");
         Date   _date2  = XU.GetDate0D(date2, "date2", null);
         Double _result = XLCredit.GetSurvivalProb(_survivalProbabilitySource, _date1, _date2);
         return(XU.ConvertToObjects(_result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
Ejemplo n.º 10
0
 public static object _CreateRateForecastCurveFromDiscount(string objectName,
                                                           object[,] floatingRateIndex,
                                                           object[,] discountCurve,
                                                           object[,] fixingCurve)
 {
     try
     {
         FloatingIndex       _floatingRateIndex = XU.GetFloatingIndex0D(floatingRateIndex, "floatingRateIndex");
         IDiscountingSource  _discountCurve     = XU.GetObject0D <IDiscountingSource>(discountCurve, "discountCurve");
         IFloatingRateSource _fixingCurve       = XU.GetObject0D <IFloatingRateSource>(fixingCurve, "fixingCurve", null);
         IFloatingRateSource _result            = XLRates.CreateRateForecastCurveFromDiscount(_floatingRateIndex, _discountCurve, _fixingCurve);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
Ejemplo n.º 11
0
 public static object _CreateCurveModel(string objectName,
                                        object[,] discountCurve,
                                        object[,] rateForecastCurves,
                                        object[,] fxForecastCurves)
 {
     try
     {
         IDiscountingSource    _discountCurve      = XU.GetObject0D <IDiscountingSource>(discountCurve, "discountCurve");
         IFloatingRateSource[] _rateForecastCurves = XU.GetObject1D <IFloatingRateSource>(rateForecastCurves, "rateForecastCurves");
         IFXSource[]           _fxForecastCurves   = XU.GetObject1D <IFXSource>(fxForecastCurves, "fxForecastCurves");
         NumeraireSimulator    _result             = XLValuation.CreateCurveModel(_discountCurve, _rateForecastCurves, _fxForecastCurves);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
Ejemplo n.º 12
0
 public static object _CreateHWModelDemo(string objectName,
                                         object[,] meanReversion,
                                         object[,] flatVol,
                                         object[,] baseCurve,
                                         object[,] forecastIndices)
 {
     try
     {
         var _meanReversion   = XU.GetDouble0D(meanReversion, "meanReversion");
         var _flatVol         = XU.GetDouble0D(flatVol, "flatVol");
         var _baseCurve       = XU.GetObject0D <IDiscountingSource>(baseCurve, "baseCurve");
         var _forecastIndices = XU.GetSpecialType0D <FloatingIndex>(forecastIndices, "forecastIndices");
         var _result          = XLRates.CreateHWModelDemo(_meanReversion, _flatVol, _baseCurve, _forecastIndices);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
Ejemplo n.º 13
0
 public static object _Value(string objectName,
                             object[,] products,
                             object[,] valueDate,
                             object[,] model,
                             object[,] nSims)
 {
     try
     {
         Product[]          _products  = XU.GetObject1D <Product>(products, "products");
         Date               _valueDate = XU.GetDate0D(valueDate, "valueDate");
         NumeraireSimulator _model     = XU.GetObject0D <NumeraireSimulator>(model, "model");
         Int32              _nSims     = XU.GetInt320D(nSims, "nSims", 1);
         ResultStore        _result    = XLValuation.Value(_products, _valueDate, _model, _nSims);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
Ejemplo n.º 14
0
 public static object[,] _EPE(object[,] products,
                              object[,] valueDate,
                              object[,] forwardValueDates,
                              object[,] model,
                              object[,] nSims)
 {
     try
     {
         Product[]          _products          = XU.GetObject1D <Product>(products, "products");
         Date               _valueDate         = XU.GetDate0D(valueDate, "valueDate");
         Date[]             _forwardValueDates = XU.GetDate1D(forwardValueDates, "forwardValueDates");
         NumeraireSimulator _model             = XU.GetObject0D <NumeraireSimulator>(model, "model");
         Int32              _nSims             = XU.GetInt320D(nSims, "nSims");
         Double[]           _result            = XLValuation.EPE(_products, _valueDate, _forwardValueDates, _model, _nSims);
         return(XU.ConvertToObjects(_result));
     }
     catch (Exception e)
     {
         return(XU.Error2D(e));
     }
 }
Ejemplo n.º 15
0
 public static object[,] _PFE(object[,] products,
                              object[,] valueDate,
                              object[,] forwardValueDates,
                              object[,] requiredPecentiles,
                              object[,] model,
                              object[,] nSims)
 {
     try
     {
         var _products           = XU.GetObject1D <Product>(products, "products");
         var _valueDate          = XU.GetDate0D(valueDate, "valueDate");
         var _forwardValueDates  = XU.GetDate1D(forwardValueDates, "forwardValueDates");
         var _requiredPecentiles = XU.GetDouble1D(requiredPecentiles, "requiredPecentiles");
         var _model  = XU.GetObject0D <NumeraireSimulator>(model, "model");
         var _nSims  = XU.GetInt320D(nSims, "nSims");
         var _result = XLValuation.PFE(_products, _valueDate, _forwardValueDates, _requiredPecentiles, _model,
                                       _nSims);
         return(XU.ConvertToObjects(_result));
     }
     catch (Exception e)
     {
         return(XU.Error2D(e));
     }
 }