コード例 #1
0
        public void SaveToFile(Dictionary<string, List<FundamentalBase>> data,
							   Parameters p,
							   string provider,
							   string securityName)
        {
            var path = ConstructSavePath(p, securityName, provider);
            _pathHelper.CreateDirectory(Path.GetDirectoryName(path));

            foreach (var fundamentals in data)
            {
                if (fundamentals.Value.Count != 0)
                {
                    using (var streamWriter = new StreamWriter(path))
                    {
                        foreach (var f in fundamentals.Value)
                        {
                            var value = f.FormatValue();
                            var date = f.Date.ToShortDateString();
                            var line = date + p.Delimiter + value;

                            streamWriter.WriteLine(line);
                        }
                    }
                }
            }
        }
コード例 #2
0
        private string ConstructSavePath(Parameters p, string securityName, string timeFrameName, int timeFrameInterval)
        {
            var pathToFolder = p.OutputPath;
            const string dataTypeFolder = "Quotes";
            string timeFramePath;
            var symbolName = securityName;
            var fileExtension = p.FileExtension;

            if (timeFrameInterval == 0)
            {
                timeFramePath = TimeFrame.GetTimeFrame(0);
            }
            else
            {
                timeFramePath = timeFrameInterval + " " + timeFrameName.ToLower();
            }

            var firstLetterOfSymbol = securityName.Substring(0, 1);

            return pathToFolder + "\\" + dataTypeFolder + "\\" + timeFramePath + "\\" + firstLetterOfSymbol + "\\" + symbolName +
                   fileExtension;
        }
コード例 #3
0
 private string ConstructSavePath(Parameters p, string securityName, string provider)
 {
     const string dataTypeFolder = "Fundamentals";
     var firstLetterOfSymbol = securityName.Substring(0, 1);
     return p.OutputPath + "\\" + dataTypeFolder + "\\" + provider + "\\" + firstLetterOfSymbol + "\\" + securityName +
            p.FileExtension;
 }
コード例 #4
0
		private string ProcessFundamentalsAsync(Parameters parameters, Dictionary<string, List<string>> fundamentals)
		{
			foreach (var provider in fundamentals)
			{
				foreach (var file in provider.Value)
				{
					var security = Path.GetFileNameWithoutExtension(file);
					_logger.Info(String.Format("Converting symbol: {0}", security));

					if (_token.IsCancellationRequested)
					{
						_logger.Info("Stopping proccess...");
						InitAsyncRelated();
						return "Canceled";
					}

					var data = _fundamentalDataConverter.ProcessDataFromFile(file, provider.Key);
					_fundamentalDataConverter.SaveToFile(data, parameters, provider.Key, security);
				}
			}

			return "Fundamentals parsed";
		}
コード例 #5
0
        public void SaveToFile(List<QuotesData> data,
							   Parameters p,
							   string securityName,
							   string timeFrameName,
							   int timeFrameInterval)
        {
            var path = ConstructSavePath(p, securityName, timeFrameName, timeFrameInterval);
            _pathHelper.CreateDirectory(Path.GetDirectoryName(path));

            using (var streamWriter = new StreamWriter(path))
            {
                foreach (var d in data)
                {
                    string dt;

                    if (timeFrameInterval == 0)
                    {
                        dt = d.DateTime.ToString(p.DateFormat);
                    }
                    else
                    {
                        dt = d.DateTime.ToString(p.DateFormat + p.DateTimeDelimiter + p.TimeFormat);
                    }

                    streamWriter.WriteLine(dt + p.Delimiter + d.Open.ToString(p.OHLCFormat) + p.Delimiter +
                                           d.High.ToString(p.OHLCFormat) + p.Delimiter + d.Low.ToString(p.OHLCFormat) + p.Delimiter +
                                           d.Close.ToString(p.OHLCFormat) + p.Delimiter + d.Volume.ToString(p.VFormat));
                }
            }
        }
コード例 #6
0
		private string ProcessQuotesAsync(Parameters parameters, IEnumerable<string> fileNames)
		{
			foreach (var filename in fileNames)
			{
				_logger.Info(String.Format("Converting symbol: {0}", Path.GetFileName(filename)));

				if (_token.IsCancellationRequested)
				{
					_logger.Info("Stopping proccess...");
					InitAsyncRelated();
					return "Canceled";
				}

				string securityName;
				string timeFrameName;
				int timeFrameInterval;

				var data = _quotesDataConverter.ProcessDataFromFile(filename,
																	out securityName,
																	out timeFrameName,
																	out timeFrameInterval);

				_quotesDataConverter.SaveToFile(data, parameters, securityName, timeFrameName, timeFrameInterval);
			}

			return "Quotes parsed";
		}
コード例 #7
0
		private async Task<string> ConvertFundamentalsAsync(Parameters parameters, Dictionary<string, List<string>> fileNames)
		{
			var result = await Task.Factory.StartNew(() => ProcessFundamentalsAsync(parameters, fileNames));
			return result;
		}
コード例 #8
0
		private async Task<string> ConvertQuotesAsync(Parameters parameters, IEnumerable<string> fileNames)
		{
			var result = await Task.Factory.StartNew(() => ProcessQuotesAsync(parameters, fileNames));
			return result;
		}
コード例 #9
0
		private void ReadCheckboxes(Parameters parameters)
		{
			if (cbAnalystRatings.Checked)
			{
				parameters.FundamentalProviders.Add(cbAnalystRatings.Text);
			}

			if (cbEconomics.Checked)
			{
				parameters.FundamentalProviders.Add(cbEconomics.Text);
			}

			if (cbEstimatedEarnings.Checked)
			{
				parameters.FundamentalProviders.Add(cbEstimatedEarnings.Text);
			}

			if (cbSecuritySentiment.Checked)
			{
				parameters.FundamentalProviders.Add(cbSecuritySentiment.Text);
			}

			if (cbFMDFundamental.Checked)
			{
				parameters.FundamentalProviders.Add(cbFMDFundamental.Text);
			}

			if (cbWSODFundamental.Checked)
			{
				parameters.FundamentalProviders.Add(cbWSODFundamental.Text);
			}
		}
コード例 #10
0
		private Parameters LoadProgramParameters()
		{
			var parameters = new Parameters();

			parameters.DateFormat = cbDTFormatDate.Text;
			parameters.DateTimeDelimiter = cbDTFormatDelimiter.Text;
			parameters.TimeFormat = cbDTFormatTime.Text;

			if (cbDTFormatDelimiter.Text == @"Space")
			{
				parameters.DateTimeDelimiter = " ";
			}

			if (cbDTFormatDelimiter.Text == @"Tab")
			{
				parameters.DateTimeDelimiter = "	";
			}

			parameters.Delimiter = cbDataDelimiter.Text;

			parameters.InputPath = tbInputFolder.Text;
			parameters.OutputPath = tbOutputFolder.Text;

			parameters.FileExtension = cbFileFormat.Text;
			parameters.OHLCFormat = cbOHLC.Text;
			parameters.VFormat = cbVolume.Text;

			ReadCheckboxes(parameters);

			return parameters;
		}