Example #1
0
        /// <summary>
        /// Save the dataset to a CSV file.
        /// </summary>
        /// <param name="targetFile">The target file.</param>
        /// <param name="format">The format to use.</param>
        /// <param name="set">The data set.</param>
        public static void SaveCSV(FileInfo targetFile, CSVFormat format, IMLDataSet set)
        {
            try
            {
                var file = new StreamWriter(targetFile.ToString());

                foreach (IMLDataPair data in set)
                {
                    var line = new StringBuilder();

                    for (int i = 0; i < data.Input.Count; i++)
                    {
                        double d = data.Input[i];
                        BasicFile.AppendSeparator(line, format);
                        line.Append(format.Format(d, EncogFramework.DefaultPrecision));
                    }

                    for (int i = 0; i < data.Ideal.Count; i++)
                    {
                        double d = data.Ideal[i];
                        BasicFile.AppendSeparator(line, format);
                        line.Append(format.Format(d, EncogFramework.DefaultPrecision));
                    }

                    file.WriteLine(line);
                }

                file.Close();
            }
            catch (IOException ex)
            {
                throw new EncogError(ex);
            }
        }
Example #2
0
        /// <summary>
        ///     Load financial data.
        /// </summary>
        /// <param name="ticker">The ticker symbol.</param>
        /// <param name="output">The output file.</param>
        /// <param name="outputFormat">The output format.</param>
        /// <param name="from">Starting date.</param>
        /// <param name="to">Ending date.</param>
        public void LoadAllData(String ticker, String output, CSVFormat outputFormat, DateTime from,
                                DateTime to)
        {
            try
            {
                Uri        urlData      = BuildURL(ticker, from, to);
                WebRequest httpData     = WebRequest.Create(urlData);
                var        responseData = (HttpWebResponse)httpData.GetResponse();

                if (responseData != null)
                {
                    Stream istreamData = responseData.GetResponseStream();
                    var    csvData     = new ReadCSV(istreamData, true, CSVFormat.English);

                    TextWriter tw = new StreamWriter(output);
                    tw.WriteLine("date,time,open price,high price,low price,close price,volume,adjusted price");

                    while (csvData.Next())
                    {
                        DateTime date          = csvData.GetDate("date");
                        double   adjustedClose = csvData.GetDouble("adj close");
                        double   open          = csvData.GetDouble("open");
                        double   close         = csvData.GetDouble("close");
                        double   high          = csvData.GetDouble("high");
                        double   low           = csvData.GetDouble("low");
                        var      volume        = (long)csvData.GetDouble("volume");

                        var line = new StringBuilder();
                        line.Append(NumericDateUtil.DateTime2Long(date));
                        line.Append(outputFormat.Separator);
                        line.Append(NumericDateUtil.Time2Int(date));
                        line.Append(outputFormat.Separator);
                        line.Append(outputFormat.Format(open, Precision));
                        line.Append(outputFormat.Separator);
                        line.Append(outputFormat.Format(high, Precision));
                        line.Append(outputFormat.Separator);
                        line.Append(outputFormat.Format(low, Precision));
                        line.Append(outputFormat.Separator);
                        line.Append(outputFormat.Format(close, Precision));
                        line.Append(outputFormat.Separator);
                        line.Append(volume);
                        line.Append(outputFormat.Separator);
                        line.Append(outputFormat.Format(adjustedClose, Precision));
                        tw.WriteLine(line.ToString());
                    }

                    tw.Close();
                }
            }
            catch (WebException ex)
            {
                throw new QuantError(ex);
            }
        }
Example #3
0
        /// <summary>
        /// Save the specified matrix.
        /// </summary>
        /// <param name="matrix">The matrix to save.</param>
        /// <param name="xmlOut">The XML writer.</param>
        public static void SaveMatrix(Matrix matrix, WriteXML xmlOut)
        {
            xmlOut.AddAttribute(PersistorUtil.ATTRIBUTE_MATRIX_ROWS, ""
                                + matrix.Rows);
            xmlOut.AddAttribute(PersistorUtil.ATTRIBUTE_MATRIX_COLS, ""
                                + matrix.Cols);
            xmlOut.BeginTag("Matrix");

            CSVFormat format = CSVFormat.EG_FORMAT;

            for (int row = 0; row < matrix.Rows; row++)
            {
                StringBuilder builder = new StringBuilder();

                for (int col = 0; col < matrix.Cols; col++)
                {
                    if (col > 0)
                    {
                        builder.Append(',');
                    }

                    double d = matrix[row, col];
                    builder.Append(format.Format(d, 20));
                }
                xmlOut.BeginTag(PersistorUtil.ROW);
                xmlOut.AddText(builder.ToString());
                xmlOut.EndTag();
            }

            xmlOut.EndTag();
        }
Example #4
0
        /// <summary>
        /// Construct a loaded row from an IMLData.
        /// </summary>
        /// <param name="format">The format to store the numbers in.</param>
        /// <param name="data">The data to use.</param>
        /// <param name="extra">The extra positions to allocate.</param>
        public LoadedRow(CSVFormat format, IMLData data, int extra)
        {
            int count = data.Count;

            _data = new String[count + extra];
            for (int i = 0; i < count; i++)
            {
                _data[i] = format.Format(data[i], 5);
            }
        }
Example #5
0
        /// <summary>
        /// Construct a loaded row from an array.
        /// </summary>
        /// <param name="format">The format to store the numbers in.</param>
        /// <param name="data">The data to use.</param>
        /// <param name="extra">The extra positions to allocate.</param>
        public LoadedRow(CSVFormat format, double[] data, int extra)
        {
            int count = data.Length;

            _data = new String[count + extra];
            for (int i = 0; i < count; i++)
            {
                _data[i] = format.Format(data[i], 5);
            }
        }
Example #6
0
        /// <summary>
        ///     Store a column.
        /// </summary>
        /// <param name="name">The name of the column.</param>
        /// <param name="d">The value to store.</param>
        public void StoreColumn(String name, double d)
        {
            if (line == null)
            {
                throw new EncogError("Must call BeginBar first.");
            }

            if (line.Length > 0)
            {
                line.Append(format.Separator);
            }

            line.Append(format.Format(d, Percision));

            if (!columnsDefined)
            {
                columns.Add(name);
            }
        }