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); } } } } }
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; }
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; }
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"; }
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)); } } }
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"; }
private async Task<string> ConvertFundamentalsAsync(Parameters parameters, Dictionary<string, List<string>> fileNames) { var result = await Task.Factory.StartNew(() => ProcessFundamentalsAsync(parameters, fileNames)); return result; }
private async Task<string> ConvertQuotesAsync(Parameters parameters, IEnumerable<string> fileNames) { var result = await Task.Factory.StartNew(() => ProcessQuotesAsync(parameters, fileNames)); return result; }
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); } }
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; }