예제 #1
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 _CreateModelDeterministicCreditWithFXJump(string objectName,
                                                                object[,] survivalProbSource,
                                                                object[,] otherCurrency,
                                                                object[,] fxSource,
                                                                object[,] valueCurrencyDiscount,
                                                                object[,] fxVol,
                                                                object[,] relJumpSizeInDefault,
                                                                object[,] expectedRecoveryRate)
 {
     try
     {
         ISurvivalProbabilitySource _survivalProbSource       = XU.GetObject0D <ISurvivalProbabilitySource>(survivalProbSource, "survivalProbSource");
         Currency                      _otherCurrency         = XU.GetCurrency0D(otherCurrency, "otherCurrency");
         IFXSource                     _fxSource              = XU.GetObject0D <IFXSource>(fxSource, "fxSource");
         IDiscountingSource            _valueCurrencyDiscount = XU.GetObject0D <IDiscountingSource>(valueCurrencyDiscount, "valueCurrencyDiscount");
         Double                        _fxVol = XU.GetDouble0D(fxVol, "fxVol");
         Double                        _relJumpSizeInDefault = XU.GetDouble0D(relJumpSizeInDefault, "relJumpSizeInDefault");
         Double                        _expectedRecoveryRate = XU.GetDouble0D(expectedRecoveryRate, "expectedRecoveryRate");
         DeterministicCreditWithFXJump _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 _CreateCDS(string objectName,
                                 object[,] refEntity,
                                 object[,] ccy,
                                 object[,] paymentDates,
                                 object[,] notionals,
                                 object[,] rates,
                                 object[,] accrualFractions,
                                 object[,] boughtProtection)
 {
     try
     {
         ReferenceEntity _refEntity        = XU.GetReferenceEntity0D(refEntity, "refEntity");
         Currency        _ccy              = XU.GetCurrency0D(ccy, "ccy");
         Date[]          _paymentDates     = XU.GetDate1D(paymentDates, "paymentDates");
         Double[]        _notionals        = XU.GetDouble1D(notionals, "notionals");
         Double[]        _rates            = XU.GetDouble1D(rates, "rates");
         Double[]        _accrualFractions = XU.GetDouble1D(accrualFractions, "accrualFractions");
         Boolean         _boughtProtection = XU.GetBoolean0D(boughtProtection, "boughtProtection");
         CDS             _result           = XLCredit.CreateCDS(_refEntity, _ccy, _paymentDates, _notionals, _rates, _accrualFractions, _boughtProtection);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
예제 #4
0
 public static object _CreateMultiHWAndFXToy(string objectName,
                                             object[,] anchorDate,
                                             object[,] numeraireCcy,
                                             object[,] rateSimulators,
                                             object[,] currencies,
                                             object[,] spots,
                                             object[,] vols,
                                             object[,] correlations)
 {
     try
     {
         Date          _anchorDate     = XU.GetDate0D(anchorDate, "anchorDate");
         Currency      _numeraireCcy   = XU.GetCurrency0D(numeraireCcy, "numeraireCcy");
         HullWhite1F[] _rateSimulators = XU.GetObject1D <HullWhite1F>(rateSimulators, "rateSimulators");
         Currency[]    _currencies     = XU.GetCurrency1D(currencies, "currencies");
         Double[]      _spots          = XU.GetDouble1D(spots, "spots");
         Double[]      _vols           = XU.GetDouble1D(vols, "vols");
         Double[,] _correlations = XU.GetDouble2D(correlations, "correlations");
         NumeraireSimulator _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 _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));
     }
 }
예제 #6
0
 public static object _CreateLoanFixedRate(string objectName,
                                           object[,] currency,
                                           object[,] balanceDates,
                                           object[,] balanceAmounts,
                                           object[,] fixedRate)
 {
     try
     {
         Currency      _currency       = XU.GetCurrency0D(currency, "currency");
         Date[]        _balanceDates   = XU.GetDate1D(balanceDates, "balanceDates");
         Double[]      _balanceAmounts = XU.GetDouble1D(balanceAmounts, "balanceAmounts");
         Double        _fixedRate      = XU.GetDouble0D(fixedRate, "fixedRate");
         LoanFixedRate _result         = XLRates.CreateLoanFixedRate(_currency, _balanceDates, _balanceAmounts, _fixedRate);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
예제 #7
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));
     }
 }
예제 #8
0
 public static object _CreateFixedLeg(string objectName,
                                      object[,] currency,
                                      object[,] paymentDates,
                                      object[,] notionals,
                                      object[,] rates,
                                      object[,] accrualFractions)
 {
     try
     {
         Currency _currency         = XU.GetCurrency0D(currency, "currency");
         Date[]   _paymentDates     = XU.GetDate1D(paymentDates, "paymentDates");
         Double[] _notionals        = XU.GetDouble1D(notionals, "notionals");
         Double[] _rates            = XU.GetDouble1D(rates, "rates");
         Double[] _accrualFractions = XU.GetDouble1D(accrualFractions, "accrualFractions");
         FixedLeg _result           = XLRates.CreateFixedLeg(_currency, _paymentDates, _notionals, _rates, _accrualFractions);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }
예제 #9
0
 public static object _CreateFXForecastCurve(string objectName,
                                             object[,] baseCurrency,
                                             object[,] counterCurrency,
                                             object[,] fxRateAtAnchorDate,
                                             object[,] baseCurrencyFXBasisCurve,
                                             object[,] counterCurrencyFXBasisCurve)
 {
     try
     {
         Currency           _baseCurrency                = XU.GetCurrency0D(baseCurrency, "baseCurrency");
         Currency           _counterCurrency             = XU.GetCurrency0D(counterCurrency, "counterCurrency");
         Double             _fxRateAtAnchorDate          = XU.GetDouble0D(fxRateAtAnchorDate, "fxRateAtAnchorDate");
         IDiscountingSource _baseCurrencyFXBasisCurve    = XU.GetObject0D <IDiscountingSource>(baseCurrencyFXBasisCurve, "baseCurrencyFXBasisCurve");
         IDiscountingSource _counterCurrencyFXBasisCurve = XU.GetObject0D <IDiscountingSource>(counterCurrencyFXBasisCurve, "counterCurrencyFXBasisCurve");
         Object             _result = XLFX.CreateFXForecastCurve(_baseCurrency, _counterCurrency, _fxRateAtAnchorDate, _baseCurrencyFXBasisCurve, _counterCurrencyFXBasisCurve);
         return(XU.AddObject(objectName, _result));
     }
     catch (Exception e)
     {
         return(XU.Error0D(e));
     }
 }