public static void StartButtonClicked(Settings objSettings, Action<string> AddMessageToLog) { // //http://nseindia.com/content/historical/EQUITIES/2012/SEP/cm04SEP2012bhav.csv.zip // IScrip[] Scrips = { new NSE { strScripName = "NSE Equity", strScripDirectory = "NSE Equity", strScripBaseURL="http://nseindia.com/content/historical/EQUITIES", bFireScrip = false } , new NSE { strScripName = "MTO", strScripDirectory = "NSE Equity", strScripBaseURL="http://nseindia.com/archives/equities/mto/", bFireScrip = false }, new NSE { strScripName = "SEC", strScripDirectory = "NSE Equity", strScripBaseURL="http://www.nseindia.com/content/equities/", bFireScrip = false }, new NSE { strScripName = "VIX", strScripDirectory = "NSE Equity", strScripBaseURL="http://www.nseindia.com/content/vix/histdata/", bFireScrip = false }, new NSE { strScripName = "NSE FO", strScripDirectory = "NSE FO", strScripBaseURL = "http://nseindia.com/content/historical/DERIVATIVES" , bFireScrip = false } , new NSE { strScripName = "NSE Forex", strScripDirectory = "NSE Forex", strScripBaseURL = "http://nseindia.com/archives/equities/bhavcopy/pr/", bFireScrip = false}, new NSE { strScripName = "NCDEX", strScripDirectory = "NCDEX", strScripBaseURL = "http://www.ncdex.com/Downloads/Bhavcopy_Summary_File/Export_csv/", bFireScrip = false }, new NSE { strScripName = "BULKDEAL", strScripDirectory = "BULKDEAL", strScripBaseURL = "http://www.nseindia.com/content/equities/bulkdeals/datafiles/", bFireScrip = false }, new NSE { strScripName = "BLOCKDEAL", strScripDirectory = "BLOCKDEAL", strScripBaseURL = "http://www.nseindia.com/content/equities/bulkdeals/datafiles/", bFireScrip = false }, new NSE { strScripName = "FIIFUTURES", strScripDirectory = "FIIFUTURES", strScripBaseURL = "http://www.nseindia.com/content/fo/", bFireScrip = false }, new NSE { strScripName = "COMBINEDREPORT", strScripDirectory = "COMBINEDREPORT", strScripBaseURL = "http://www.nseindia.com/archives/combine_report/", bFireScrip = false }, new NSE { strScripName = "BSE_EQUITY", strScripDirectory = "BSE_EQUITY", strScripBaseURL = "http://www.bseindia.com/bhavcopy/", bFireScrip = false }, new NSE { strScripName = "BSE_MTO", strScripDirectory = "BSE_MTO", strScripBaseURL = "http://www.bseindia.com/BSEDATA/gross/", bFireScrip = false }, new NSE { strScripName = "BSE_FO", strScripDirectory = "BSE_FO", strScripBaseURL = "http://www.bseindia.com/deri/downloads/BhavCopy/", bFireScrip = false }, new NSE { strScripName = "YAHOOIEOD1MIN", strScripDirectory = "YAHOOIEOD1MIN", strScripBaseURL = "http://chartapi.finance.yahoo.com/instrument/1.0/", bFireScrip = false }, new NSE { strScripName = "YAHOOIEOD5MIN", strScripDirectory = "YAHOOIEOD5MIN", strScripBaseURL = "http://chartapi.finance.yahoo.com/instrument/5.0/", bFireScrip = false }, new NSE { strScripName = "YAHOOEOD", strScripDirectory = "YAHOOEOD", strScripBaseURL = "http://ichart.finance.yahoo.com/table.csv?s=", bFireScrip = false }, new NSE { strScripName = "YAHOOFUNDAMENTAL", strScripDirectory = "YAHOOFUNDAMENTAL", strScripBaseURL = "http://download.finance.yahoo.com/d/quotes.csv?s=", bFireScrip = false }, new NSE { strScripName = "GOOGLEEOD", strScripDirectory = "GOOGLEEOD", strScripBaseURL = "http://www.google.com/finance/getprices?q=", bFireScrip = false }, new NSE { strScripName = "GOOGLEIEOD", strScripDirectory = "GOOGLEIEOD", strScripBaseURL = "http://www.google.com/finance/getprices?q=", bFireScrip = false }, new NSE { strScripName = "MFAMFI", strScripDirectory = "MFAMFI", strScripBaseURL = "http://www.amfiindia.com/DownloadNAVHistoryReport_Po.aspx?frmdt=", bFireScrip = false }, new NSE { strScripName = "MFNSE", strScripDirectory = "MFNSE", strScripBaseURL = "http://www.nseindia.com/archives/equities/mkt/", bFireScrip = false }, new NSE { strScripName = "FOP", strScripDirectory = "FOP", strScripBaseURL = "http://www.nseindia.com/content/nsccl/", bFireScrip = false }, new NSE { strScripName = "INDIAINDICES", strScripDirectory = "INDIAINDICES", strScripBaseURL = "http://www.nseindia.com/content/indices/histdata/", bFireScrip = false } }; string strTOPFolder, strUrl, strTempUrl; int iEndDayOfMonth, iEndMonthofYear; bool bDoNOTDowload = false; string strBuildBhavFileName=string.Empty; foreach (IScrip objscrip in Scrips) { if ((objSettings.ChkNseEquity) && ( (objscrip.strScripName == "NSE Equity") || (objscrip.strScripName == "MTO") || (objscrip.strScripName == "SEC") || (objscrip.strScripName == "VIX")) ) objscrip.bFireScrip=true; if ((objSettings.ChkNseFO) && objscrip.strScripName == "NSE FO") objscrip.bFireScrip = true; if ((objSettings.chkNseForex) && objscrip.strScripName == "NSE Forex") objscrip.bFireScrip = true; if ((objSettings.ChkNseNcdex) && objscrip.strScripName == "NCDEX") objscrip.bFireScrip = true; if ((objSettings.ChkNseBulkdeal) && objscrip.strScripName == "BULKDEAL") objscrip.bFireScrip = true; if ((objSettings.ChkNseBlockdeal) && objscrip.strScripName == "BLOCKDEAL") objscrip.bFireScrip = true; if ((objSettings.ChkNseFIIFutures) && objscrip.strScripName == "FIIFUTURES") objscrip.bFireScrip = true; if ((objSettings.ChkNseCombinedReport) && objscrip.strScripName == "COMBINEDREPORT") objscrip.bFireScrip = true; if ((objSettings.ChkBseEquity) && ((objscrip.strScripName == "BSE_EQUITY") || (objscrip.strScripName == "BSE_MTO"))) objscrip.bFireScrip = true; if ((objSettings.ChkBseFo) && objscrip.strScripName == "BSE_FO") objscrip.bFireScrip = true; if ((objSettings.ChkYahooIEOD1) && objscrip.strScripName == "YAHOOIEOD1MIN") objscrip.bFireScrip = true; if ((objSettings.ChkYahooIEOD5) && objscrip.strScripName == "YAHOOIEOD5MIN") objscrip.bFireScrip = true; if ((objSettings.ChkYahooEOD) && objscrip.strScripName == "YAHOOEOD") objscrip.bFireScrip = true; if ((objSettings.ChkYahooFundamental) && objscrip.strScripName == "YAHOOFUNDAMENTAL") objscrip.bFireScrip = true; if ((objSettings.ChkGoogleEOD) && objscrip.strScripName == "GOOGLEEOD") objscrip.bFireScrip = true; if ((objSettings.ChkGoogleIEOD) && objscrip.strScripName == "GOOGLEIEOD") objscrip.bFireScrip = true; if ((objSettings.ChkIndiaIndices) && objscrip.strScripName == "INDIAINDICES") objscrip.bFireScrip = true; if ((objSettings.ChkMutualFund) && objscrip.strScripName == "MFAMFI") objscrip.bFireScrip = true; if ((objSettings.ChkMutualFund) && objscrip.strScripName == "MFNSE") objscrip.bFireScrip = true; if ((objSettings.ChkFOP) && objscrip.strScripName == "FOP") objscrip.bFireScrip = true; } foreach (IScrip obj in Scrips) { if (obj.bFireScrip) { strUrl = obj.strScripBaseURL; strTempUrl = strUrl; int i = objSettings.StartDate.Value.Day; int j = objSettings.StartDate.Value.Month; int k = objSettings.StartDate.Value.Year; if ((obj.strScripName == "BSE_EQUITY") || (obj.strScripName == "BSE_MTO") || obj.strScripName == "BSE_FO") strTOPFolder = AddSubFolders(objSettings.TargetFolder, "BSE"); else if ((obj.strScripName == "YAHOOIEOD1MIN") || (obj.strScripName == "YAHOOIEOD5MIN") || (obj.strScripName == "YAHOOEOD") || (obj.strScripName == "YAHOOFUNDAMENTAL")) strTOPFolder = AddSubFolders(objSettings.TargetFolder, "YAHOO"); else if ((obj.strScripName == "GOOGLEEOD") || (obj.strScripName == "GOOGLEIEOD")) strTOPFolder = AddSubFolders(objSettings.TargetFolder, "GOOGLE"); else if (obj.strScripName == "INDIAINDICES") strTOPFolder = AddSubFolders(objSettings.TargetFolder, "INDIAINDICES"); else if ((obj.strScripName == "MFAMFI") || (obj.strScripName == "MFNSE")) strTOPFolder = AddSubFolders(objSettings.TargetFolder, "MUTUALFUND"); //else // if ((obj.strScripName == "MFNSE") || (obj.strScripName == "MFNSE")) // strTOPFolder = AddSubFolders(objSettings.TargetFolder, "MFNSE"); else if ((obj.strScripName == "FOP") || (obj.strScripName == "FOP")) strTOPFolder = AddSubFolders(objSettings.TargetFolder, "FOP"); else strTOPFolder = AddSubFolders(objSettings.TargetFolder, "NSE"); Nullable<DateTime> dtCurrentDate = objSettings.StartDate; obj.LogMessage = AddMessageToLog; if ((obj.strScripName == "YAHOOIEOD1MIN") || (obj.strScripName == "YAHOOIEOD5MIN") || (obj.strScripName == "YAHOOEOD") || (obj.strScripName == "YAHOOFUNDAMENTAL") || (obj.strScripName == "GOOGLEEOD") || (obj.strScripName == "GOOGLEIEOD") || (obj.strScripName == "INDIAINDICES")) { if (!Directory.Exists(Path.Combine(strTOPFolder, obj.strScripName))) Directory.CreateDirectory(Path.Combine(strTOPFolder, obj.strScripName)); if (obj.strScripName == "YAHOOIEOD1MIN") obj.DownloadYahooIEOD(strUrl, strTOPFolder, obj.strScripName, objSettings.YahooIEOD1MinList, objSettings.StartDate, objSettings.EndDate); else if (obj.strScripName == "YAHOOIEOD5MIN") obj.DownloadYahooIEOD(strUrl, strTOPFolder, obj.strScripName, objSettings.YahooIEOD5MinList, objSettings.StartDate, objSettings.EndDate); else if (obj.strScripName == "YAHOOEOD") obj.DownloadYahooIEOD(strUrl, strTOPFolder, obj.strScripName, objSettings.YahooEODList, objSettings.StartDate, objSettings.EndDate); else if (obj.strScripName == "YAHOOFUNDAMENTAL") obj.DownloadYahooIEOD(strUrl, strTOPFolder, obj.strScripName, objSettings.YahooFundamentalList, objSettings.StartDate, objSettings.EndDate); else if (obj.strScripName == "GOOGLEEOD") obj.DownloadGoogleData(strUrl, strTOPFolder, obj.strScripName, objSettings.GoogleEODList); else if (obj.strScripName == "GOOGLEIEOD") obj.DownloadGoogleData(strUrl, strTOPFolder, obj.strScripName, objSettings.GoogleIEODList); else if (obj.strScripName == "INDIAINDICES") obj.DownloadIndiaIndicesData(strUrl, strTOPFolder, obj.strScripName, objSettings.IndiaIndicesList,objSettings.StartDate,objSettings.EndDate); continue; } while (k <= objSettings.EndDate.Value.Year) { string strYearDir; if (obj.strScripName == "SEC") strYearDir = Path.Combine(strTOPFolder, obj.strScripName); else strYearDir = Path.Combine(strTOPFolder, obj.strScripName, dtCurrentDate.Value.Year.ToString()); if (!Directory.Exists(strYearDir)) Directory.CreateDirectory(strYearDir); //if (obj.strScripName == "VIX") //{ // strBuildBhavFileName = "hist_india_vix_"; // if (i < 10) // strBuildBhavFileName += "0"; // strBuildBhavFileName += i.ToString() + "-"; // if (j < 10) // strBuildBhavFileName += "0"; // strBuildBhavFileName += j.ToString() + "-"; // strBuildBhavFileName += k.ToString() + "_"; // if (objSettings.EndDate.Value.Day < 10) // strBuildBhavFileName += "0"; // strBuildBhavFileName += objSettings.EndDate.Value.Day.ToString() + "-"; // if (objSettings.EndDate.Value.Month < 10) // strBuildBhavFileName += "0"; // strBuildBhavFileName += objSettings.EndDate.Value.Month.ToString() + "-" + objSettings.EndDate.Value.Year.ToString() + ".csv"; // obj.DownloadQuote(obj.strScripBaseURL + strBuildBhavFileName, Path.Combine(strYearDir, strBuildBhavFileName)); // break; //} iEndMonthofYear = 12; if (dtCurrentDate.Value.Year == objSettings.EndDate.Value.Year) iEndMonthofYear = objSettings.EndDate.Value.Month; j = dtCurrentDate.Value.Month; while (j <= iEndMonthofYear) { string strMonthName = CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(dtCurrentDate.Value.Month); strMonthName = strMonthName.ToUpper(); string strMonthDir; if (obj.strScripName == "SEC") strMonthDir = strYearDir; else strMonthDir = Path.Combine(strYearDir, strMonthName); if (!Directory.Exists(strMonthDir)) Directory.CreateDirectory(strMonthDir); iEndDayOfMonth = GetEndOfMonth(dtCurrentDate); if ((dtCurrentDate.Value.Year == objSettings.EndDate.Value.Year) && (dtCurrentDate.Value.Month == objSettings.EndDate.Value.Month)) iEndDayOfMonth = objSettings.EndDate.Value.Day; i = dtCurrentDate.Value.Day; Nullable<DateTime> dtTempDate = dtCurrentDate; while (i <= iEndDayOfMonth) { // if (!obj.strScripName.Equals("VIX")) strBuildBhavFileName = obj.BuildBhavFileName(i, strMonthName, j, k, obj.strScripName); if (obj.strScripName == "NSE Equity" || obj.strScripName == "NSE FO") strUrl += "/" + dtCurrentDate.Value.Year.ToString() + "/" + strMonthName + "/" + strBuildBhavFileName; else if (obj.strScripName == "BSE_MTO") strUrl += dtCurrentDate.Value.Year.ToString() + "/" + strBuildBhavFileName; else strUrl += strBuildBhavFileName; if ((dtTempDate.Value.DayOfWeek == DayOfWeek.Saturday) && objSettings.ChkIgnoreSaturday) bDoNOTDowload = true; else if ((dtTempDate.Value.DayOfWeek == DayOfWeek.Sunday) && objSettings.ChkIgnoreSunday) bDoNOTDowload = true; if (!bDoNOTDowload) obj.DownloadQuote(strUrl, Path.Combine(strMonthDir, strBuildBhavFileName)); i++; dtTempDate = dtTempDate.Value.AddDays(1); bDoNOTDowload = false; strUrl = strTempUrl; } j++; dtCurrentDate = new DateTime(dtCurrentDate.Value.Year, dtCurrentDate.Value.Month, 1).AddMonths(1); } k++; } } } // foreach (IScrip obj in Scrips) }
public void ProcessNSEEQUITY(Settings objSettings, Action<string> AddMessageToLog) { AddMessageToLog("Starting Processing...\n"); string NSEMTOFolder = Path.Combine(objSettings.TargetFolder, "EODData", "NSE", "MTO"); string NSEEQUITYFolder = Path.Combine(objSettings.TargetFolder, "EODData", "NSE", "NSE Equity"); string NSEESECFILE = Path.Combine(objSettings.TargetFolder, "EODData", "NSE", "SEC", "sec_list.csv"); var allmtocsv_files_list = new List<string>(); var allnsecsv_files_list = new List<string>(); int count = 0; string[] yearfolders; while (count < 2) { //Get all year folders present under this folder if (count == 0) { yearfolders = Directory.GetDirectories(NSEMTOFolder); } else { yearfolders = Directory.GetDirectories(NSEEQUITYFolder); } foreach (string yearfolder in yearfolders) { //Get all month folders present under this year folder string[] monthfolders; if (count == 0) { monthfolders = Directory.GetDirectories(Path.Combine(NSEMTOFolder, yearfolder)); } else { monthfolders = Directory.GetDirectories(Path.Combine(NSEEQUITYFolder, yearfolder)); } foreach (string monthfolder in monthfolders) { Utility.UnzipFiles(monthfolder); //Get all MTO files present under this month folder string[] mtocsv_files = null, nsecsv_files = null; if (count == 0) mtocsv_files = Directory.GetFiles(Path.Combine(monthfolder), "*.DAT"); else nsecsv_files = Directory.GetFiles(Path.Combine(monthfolder), "*.csv"); if (count == 0) allmtocsv_files_list.AddRange(mtocsv_files); else allnsecsv_files_list.AddRange(nsecsv_files); } } count++; } string[] allmtocsv_files_array = allmtocsv_files_list.ToArray(); string[] allnsecsv_files_array = allnsecsv_files_list.ToArray(); ExecuteNSEEQUITYProcessing(allmtocsv_files_array, allnsecsv_files_array, NSEESECFILE, objSettings.OutputFormat, objSettings.OutputFolder, AddMessageToLog); AddMessageToLog("Processing Finished\n"); }