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 FormulaBlackScholes([ExcelArgument(Description = "Strike")] object[,] strike, [ExcelArgument(Description = "The value date as and Excel date.")] object[,] valueDate, [ExcelArgument(Description = "The exercise date of the option. Must be greater than the value date.")] object[,] exerciseDate, [ExcelArgument(Description = "The spot proce of the underlying at the value date.")] object[,] spotPrice, [ExcelArgument(Description = "Annualized volatility.")] object[,] vol, [ExcelArgument(Description = "Continuously compounded risk free rate.")] object[,] riskfreeRate, [ExcelArgument(Description = "Continuously compounded dividend yield.")] object[,] divYield) { try { return(BlackEtc.BlackScholes(PutOrCall.Call, XU.GetDouble0D(strike, "strike"), (XU.GetDate0D(exerciseDate, "exerciseDate") - XU.GetDate0D(valueDate, "valueDate")) / 365.0, XU.GetDouble0D(spotPrice, "spotPrice"), XU.GetDouble0D(vol, "vol"), XU.GetDouble0D(riskfreeRate, "riskfreeRate"), XU.GetDouble0D(divYield, "divYield"))); } catch (Exception e) { return(XU.Error0D(e)); } }
public static object _CreateZARBermudanSwaption(string objectName, object[,] exerciseDates, object[,] longOptionality, object[,] startDate, object[,] tenor, object[,] rate, object[,] payFixed, object[,] notional) { try { var _exerciseDates = XU.GetDate1D(exerciseDates, "exerciseDates"); var _longOptionality = XU.GetBoolean0D(longOptionality, "longOptionality"); var _startDate = XU.GetDate0D(startDate, "startDate"); var _tenor = XU.GetSpecialType0D <Tenor>(tenor, "tenor"); var _rate = XU.GetDouble0D(rate, "rate"); var _payFixed = XU.GetBoolean0D(payFixed, "payFixed"); var _notional = XU.GetDouble0D(notional, "notional"); var _result = XLRates.CreateZARBermudanSwaption(_exerciseDates, _longOptionality, _startDate, _tenor, _rate, _payFixed, _notional); return(XU.AddObject(objectName, _result)); } catch (Exception e) { return(XU.Error0D(e)); } }
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 _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 _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 _IsHoliday(object[,] date, object[,] calendar) { try { var _date = XU.GetDate0D(date, "date"); var _calendar = XU.GetSpecialType0D <Calendar>(calendar, "calendar"); var _result = XLConventions.IsHoliday(_date, _calendar); return(XU.ConvertToObjects(_result)); } catch (Exception e) { return(XU.Error0D(e)); } }
public static object _ApplyBusinessDayAdjustment(object[,] date, object[,] convention, object[,] calendar) { try { var _date = XU.GetDate0D(date, "date"); var _convention = XU.GetSpecialType0D <BusinessDayConvention>(convention, "convention"); var _calendar = XU.GetSpecialType0D <Calendar>(calendar, "calendar"); var _result = XLConventions.ApplyBusinessDayAdjustment(_date, _convention, _calendar); return(XU.ConvertToObjects(_result)); } catch (Exception e) { return(XU.Error0D(e)); } }
public static object _GetYearFraction(object[,] date1, object[,] date2, object[,] convention) { try { var _date1 = XU.GetDate0D(date1, "date1"); var _date2 = XU.GetDate0D(date2, "date2"); var _convention = XU.GetSpecialType0D <DayCountConvention>(convention, "convention"); var _result = XLConventions.GetYearFraction(_date1, _date2, _convention); return(XU.ConvertToObjects(_result)); } catch (Exception e) { return(XU.Error0D(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 _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 _CreateEquityCall(string objectName, object[,] share, object[,] exerciseDate, object[,] strike) { try { var _share = XU.GetSpecialType0D <Share>(share, "share"); var _exerciseDate = XU.GetDate0D(exerciseDate, "exerciseDate"); var _strike = XU.GetDouble0D(strike, "strike"); var _result = XLEquities.CreateEquityCall(_share, _exerciseDate, _strike); 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 _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 _CreateZARFRA(string objectName, object[,] tradeDate, object[,] notional, object[,] rate, object[,] fraCode, object[,] payFixed) { try { var _tradeDate = XU.GetDate0D(tradeDate, "tradeDate"); var _notional = XU.GetDouble0D(notional, "notional"); var _rate = XU.GetDouble0D(rate, "rate"); var _fraCode = XU.GetSpecialType0D <string>(fraCode, "fraCode"); var _payFixed = XU.GetBoolean0D(payFixed, "payFixed"); var _result = XLRates.CreateZARFRA(_tradeDate, _notional, _rate, _fraCode, _payFixed); return(XU.AddObject(objectName, _result)); } catch (Exception e) { return(XU.Error0D(e)); } }
public static object _CreateZARSwap(string objectName, object[,] startDate, object[,] tenor, object[,] rate, object[,] payFixed, object[,] notional) { try { var _startDate = XU.GetDate0D(startDate, "startDate"); var _tenor = XU.GetSpecialType0D <Tenor>(tenor, "tenor"); var _rate = XU.GetDouble0D(rate, "rate"); var _payFixed = XU.GetBoolean0D(payFixed, "payFixed"); var _notional = XU.GetDouble0D(notional, "notional"); var _result = XLRates.CreateZARSwap(_startDate, _tenor, _rate, _payFixed, _notional); return(XU.AddObject(objectName, _result)); } catch (Exception e) { return(XU.Error0D(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)); } }