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)); } }
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)); } }
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)); } }
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)); } }
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)); } }
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)); } }
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)); } }
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)); } }
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)); } }
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)); } }
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)); } }
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)); } }
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)); } }
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)); } }
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)); } }