Ejemplo n.º 1
0
        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)
        }
Ejemplo n.º 2
0
        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");
        }