public OutputFrequency(OutputSeries outputSeries, Maturity maximumMaturity) { OutputSeries = outputSeries; MaximumMaturity = maximumMaturity; }
private void RunModel(int model, List <InputItem> input) { MatlabModel mm = new MatlabModel(); MWNumericArray X0 = new double[] { }; foreach (InputItem item in input) { foreach (FundAssetCategory category in item.CategoryList) { foreach (int yieldspan in item.YieldSpanList) { foreach (int step in item.StepList) { MWNumericArray Y = this.GetFundTimeSeries(yieldspan, category); MWNumericArray X = this.GetIndexTimeSeries(item.Type, yieldspan); OutputSeries outputseries = new OutputSeries(); for (int start = step + 1; start < Y.NumberOfElements; start++) { try { MWArray[] R = null; switch (model) { case 1: R = mm.model1(3, Y, X, step, start, X0); break; case 2: R = mm.model2(3, Y, X, step, start, X0); break; default: break; } DateTime tradedate = TradeDayList[start]; if (tradedate <= this.EndDate && tradedate >= this.StartDate) { OutputItem output = new OutputItem(); output.TradeDate = tradedate; output.Position = ((MWNumericArray)R[0]).ToScalarDouble(); output.RSquare = ((MWNumericArray)R[2]).ToScalarDouble(); output.SubPostion = (double[, ])R[1].ToArray(); outputseries.Category = category; outputseries.Model = model; outputseries.Type = item.Type; outputseries.Step = step; outputseries.YieldSpan = yieldspan; outputseries.OutputList.Add(output); } } catch (Exception ex) { throw ex; } } this.OutputSeriesList.Add(outputseries); } } } } mm.Dispose(); }