public List <Instrument> GenerateInstruments() { var randomGen = new Random(); var instNumber = randomGen.Next(5, 20); // random number of instruments var instList = new List <Instrument>(); for (var i = 0; i < instNumber; i++) { var instType = randomGen.Next(this._types.Length); instList.Add(InstrumentFactory.GetInstrument(this._types[instType])); } return(instList); }
public BasisPriceCurve(TO_BasisPriceCurve transportObject, ICurrencyProvider currencyProvider, ICalendarProvider calendarProvider) { Instruments = transportObject.Instruments .Select(x => (IAssetInstrument)InstrumentFactory.GetInstrument(x, currencyProvider, calendarProvider)) .ToList(); Pillars = transportObject.Pillars; DiscountCurve = new IrCurve(transportObject.DiscountCurve, currencyProvider); //need to re-link via the active model Curve = PriceCurveFactory.GetPriceCurve(transportObject.Curve, currencyProvider, calendarProvider); BaseCurve = PriceCurveFactory.GetPriceCurve(transportObject.BaseCurve, currencyProvider, calendarProvider); Name = transportObject.Name; AssetId = transportObject.AssetId; BuildDate = transportObject.BuildDate; PillarLabels = transportObject.PillarLabels; Currency = currencyProvider.GetCurrencySafe(transportObject.Currency); SpotCalendar = calendarProvider.GetCalendarSafe(transportObject.SpotCalendar); if (transportObject.SpotLag != null) { SpotLag = new Frequency(transportObject.SpotLag); } CurveType = transportObject.CurveType; }