public HistoricalDataReader GetReader(string symbolAlias) { HistoricalDataReader reader = new HistoricalDataReader(symbolAlias); reader.Data = this.DownloadedData; return(reader); }
public HistoricalDataReader GetReader() { var reader = new HistoricalDataReader(this._symbol); reader.Data = this.DownloadedData; return(reader); }
public void DownloadStockHistoryData(object downloadParams) { HistoricalDownloadParams _downloadParams = downloadParams as HistoricalDownloadParams; IEnumerable <string> stocks = _downloadParams.stockList as IEnumerable <string>; string downloadStr; int numYears = _downloadParams.NumYears; CSVOutputSettings outputSettings = _downloadParams.OutputSettings; Dictionary <string, string> indexDict = new Dictionary <string, string>(); indexDict.Add("^PSEi", "PSE"); indexDict.Add("^ALLSHARES", "ALL"); indexDict.Add("^FINANCIAL", "FIN"); indexDict.Add("^INDUSTRIAL", "IND"); indexDict.Add("^HOLDING", "HDG"); indexDict.Add("^PROPERTY", "PRO"); indexDict.Add("^SERVICE", "SVC"); indexDict.Add("^MINING-OIL", "M-O"); try { foreach (string symbol in stocks) { string tmpSymbol = symbol; if (tmpSymbol.Contains("^")) { tmpSymbol = indexDict[symbol]; downloadStr = "http://www2.pse.com.ph/servlet/ChartForPhisixServlet?indexID=%s&years=%f"; } else { downloadStr = "http://www2.pse.com.ph/servlet/PSEChartServlet?securitySymbol=%s&years=%f"; } downloadStr = downloadStr.Replace("%s", tmpSymbol).Replace("%f", numYears.ToString()); outputSettings.Filename = symbol + ".csv"; // before download callback if (_downloadParams.BeforeStockDataDownloadCallback != null) { _downloadParams.BeforeStockDataDownloadCallback(symbol); } HistoricalDataDownloader downloader = new HistoricalDataDownloader(new Uri(downloadStr)); downloader.Download(); HistoricalDataReader reader = downloader.GetReader(symbol); lock (DownloadWorker.threadLock) { reader.ToCSV(outputSettings); Variables.DownloadedCount++; // after download if (_downloadParams.AfterStockDataDownloadCallback != null) { _downloadParams.AfterStockDataDownloadCallback(symbol); } } } } catch (Exception e) { //throw new Exception(e.Message); if (_downloadParams.OnExceptionCallback != null) { _downloadParams.OnExceptionCallback(e); } // abort threads foreach (Thread t in Variables.threadList) { if (t.IsAlive) { t.Abort(); } } } }