Example #1
0
        //method which loads the details of previously calibrated ARIMA/ARCH/GARCH models into modellist
        private void loadmodels(int position)
        {
            string interim1 = Fnames[position].Replace(".xlsx", "");
            string interim2 = Tab[position].Replace("$", "");
            string interim3 = Flocations[position].Replace(fnames[position], interim1 + interim2 + "Models.csv");

            if (!File.Exists(interim3))
            {
                return;
            }
            StreamReader sr = new StreamReader(interim3);
            string       line;

            sr.ReadLine();
            Modellist.Clear();
            while ((line = sr.ReadLine()) != null)
            {
                bool          subtractmean = false;
                char[]        delimiters   = new char[] { '\t', ' ' };
                string[]      details      = line.Split(delimiters);
                string        Transform    = details[0];
                double        Shape        = double.Parse(details[1]);
                double        Scale        = double.Parse(details[2]);
                string        Model        = details[3];
                int           P            = int.Parse(details[4]);
                int           Q            = int.Parse(details[5]);
                int           D            = int.Parse(details[6]);
                double        A            = double.Parse(details[7]);
                double        SS           = double.Parse(details[8]);
                double        Variance     = double.Parse(details[9]);
                List <double> Parameters   = new List <double>();
                for (int i = 0; i < P + Q; i++)
                {
                    Parameters.Add(double.Parse(details[10 + i]));
                }
                int           archQ          = int.Parse(details[10 + P + Q]);
                int           archP          = int.Parse(details[11 + P + Q]);
                double        archAIC        = double.Parse(details[12 + P + Q]);
                List <double> archParameters = new List <double>();
                if (archQ == 0)
                {
                    archParameters.Add(0);
                }
                else
                {
                    //if we have an ARCH(Q) model then there are Q+1 parameters
                    for (int i = 0; i < archP + (archQ + 1); i++)
                    {
                        archParameters.Add(double.Parse(details[13 + P + Q + i]));
                    }
                }
                subtractmean = bool.Parse(details[13 + P + Q + archP + (archQ + 1)]);
                Modellist.Add(new model(Model, P, Q, D, A, 0, Parameters, new List <double> {
                    0.0
                }, Variance, new List <double> {
                    0.0
                }, SS, Transform, Shape, Scale, archQ, archP, archParameters, archAIC, subtractmean));
            }
        }