Beispiel #1
0
 public OutputFrequency(OutputSeries outputSeries, Maturity maximumMaturity)
 {
     OutputSeries    = outputSeries;
     MaximumMaturity = maximumMaturity;
 }
Beispiel #2
0
        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();
        }