Exemplo n.º 1
0
        public static string  GetLatestDateFromQuandl()
        {
            QuandlDownloadRequest request = new QuandlDownloadRequest();

            request.APIKey    = "Fp8XizZQKq3P1pqcHNxc";
            request.Datacode  = new Datacode("NSE", "ICICIBANK"); // PRAGUESE is the source, PX is the datacode
            request.Format    = FileFormats.JSON;
            request.Frequency = Frequencies.Daily;
            request.StartDate = DateTime.Today.AddDays(-5);
            request.Sort      = SortOrders.Descending;
            //request.Transformation = Transformations.Difference;
            QuandlConnection conn = new QuandlConnection();
            string           json = "";

            try
            {
                json = conn.Request(request); // request is your QuandlDownloadRequst
                RootObject obj = JsonConvert.DeserializeObject <RootObject>(json);
                return(obj.to_date);
            }
            catch (Exception ex)
            {
                ClsLog.WriteLog("ERROR: Not able to Downlaoding data for " + "ICICIBANK" + ". Exception: " + ex.Message);
                //ClsDataBase.MarkScriptInvalid("ICICIBANK");
                return(null);
            }
        }
Exemplo n.º 2
0
 private void Initialize()
 {
     if (_request == null)
     {
         _request = new QuandlDownloadRequest();
     }
 }
Exemplo n.º 3
0
        public static DataTable GetQuandlData(string ticker, string dataSource, DateTime startDate, DateTime endDate)
        {
            QuandlDownloadRequest request = new QuandlDownloadRequest();

            request.APIKey    = quandlKey;
            request.Datacode  = new Datacode(dataSource, ticker);
            request.Format    = FileFormats.CSV;
            request.Frequency = Frequencies.Daily;
            request.StartDate = startDate;
            request.EndDate   = endDate;
            request.Sort      = SortOrders.Ascending;

            string ss = request.ToRequestString().Replace("/v1/", "/v3/");

            DataTable dt = new DataTable();

            using (WebClient client = new WebClient())
            {
                try
                {
                    client.DownloadFile(ss, "my.csv");
                    dt = ModelHelper.CsvToDatatable("my.csv");
                    File.Delete("my.csv");
                }
                catch { }
            }
            return(dt);
        }
Exemplo n.º 4
0
        static IQuandlRequest CreateRequest(string sym, Datacode dc, FileFormats form)
        {
            QuandlDownloadRequest qdr = new QuandlDownloadRequest();

            qdr.APIKey   = APIK;
            qdr.Datacode = dc;
            qdr.Format   = form;
            return(qdr);
        }
Exemplo n.º 5
0
        public void ToRequestString_InvalidDatacodeCode_ExceptionThrown()
        {
            var request = new QuandlDownloadRequest()
            {
                Datacode = new Datacode("DW", string.Empty)
            };

            request.ToRequestString();
        }
Exemplo n.º 6
0
        public void ToRequestString_StartDateBeforeEndDate_ExceptionNotThrown()
        {
            var request = new QuandlDownloadRequest()
            {
                Datacode  = new Datacode("DW", "TEST"),
                StartDate = DateTime.Now.AddDays(-10),
                EndDate   = DateTime.Now.AddDays(10) // End 20 days after start
            };

            var requestString = request.ToRequestString();
        }
Exemplo n.º 7
0
        public void ToRequestString_NonCSVFormat_HeadersNotUsedInRequestString()
        {
            var request = new QuandlDownloadRequest()
            {
                Datacode = new Datacode("DW", "TEST"),
                Format   = FileFormats.HTML
            };

            var requestString = request.ToRequestString();

            Assert.IsFalse(requestString.Contains("&exclude_headers="));
        }
Exemplo n.º 8
0
        public void ToRequestString_InvalidTruncation_ExceptionThrown()
        {
            var request = new QuandlDownloadRequest()
            {
                Datacode   = new Datacode("DW", "TEST"),
                Truncation = 0
            };

            var requestString = request.ToRequestString();

            Assert.IsFalse(requestString.Contains("&rows=0"));
        }
Exemplo n.º 9
0
        public void ToRequestString_ZeroTruncation_NotUsedInRequestString()
        {
            var request = new QuandlDownloadRequest()
            {
                Datacode   = new Datacode("DW", "TEST"),
                Truncation = 0
            };

            var requestString = request.ToRequestString();

            Assert.IsFalse(requestString.Contains("&rows=0"));
        }
Exemplo n.º 10
0
        public void ToRequestString_ValidTruncation_UsedInRequestString()
        {
            var request = new QuandlDownloadRequest()
            {
                Datacode   = new Datacode("DW", "TEST"),
                Truncation = 1
            };

            var requestString = request.ToRequestString();

            Assert.IsTrue(requestString.Contains("&rows=1"));
        }
Exemplo n.º 11
0
        dynamic GetLastAvailableYieldCurveUntil(DateTime date)
        {
            QuandlDownloadRequest request = new QuandlDownloadRequest();

            request.APIKey    = Quandl_APIKey;
            request.Datacode  = new Datacode("USTREASURY", "YIELD");
            request.Format    = FileFormats.JSON;
            request.Frequency = Frequencies.None;
            request.StartDate = date.AddDays(-5);
            request.EndDate   = date;
            //request.Truncation = 150;
            request.Sort           = SortOrders.Ascending;
            request.Transformation = Transformations.None;

            IQuandlConnection connection = new QuandlConnection();
            string            data       = connection.Request(request);

            dynamic dyn = JObject.Parse(data);

            //the last available data point
            dynamic lastcurve = dyn.data.Last;

            return(lastcurve);
        }
Exemplo n.º 12
0
        public static void DownlaodBulkEodData(ref BackgroundWorker BGW, List <DateTime> Dates)
        {
            try
            {
                Collection <ClsScriptsMaster> ScriptCodes = ClsDataBase.GetScriptsCode(false);
                Collection <ClsPriceDataSet>  ColEodData  = new Collection <ClsPriceDataSet>();
                ArrayList    TempData     = new ArrayList();
                string       json         = "";
                ClsDashBoard ObjDashBoard = new ClsDashBoard();
                ClsDashBoard.OverallPbarMax = ScriptCodes.Count;
                //ClsDashBoard.ChangeOPbarValue = false;
                //ClsDashBoard.OverallPbarMax = ScriptCodes.Count;
                int i = 1; int j = 1;
                foreach (var Scode in ScriptCodes)
                {
                    ClsLog.WriteLog("Starting Data Download for script: " + Scode.ScriptsName + "(" + Scode.ScriptsCode + ")");

                    QuandlDownloadRequest request = new QuandlDownloadRequest();
                    request.APIKey    = "Fp8XizZQKq3P1pqcHNxc";
                    request.Datacode  = new Datacode("NSE", Scode.ScriptsCode); // PRAGUESE is the source, PX is the datacode
                    request.Format    = FileFormats.JSON;
                    request.Frequency = Frequencies.Daily;
                    request.StartDate = Dates[0];
                    if (Dates.Count > 1)
                    {
                        request.EndDate = Dates[Dates.Count - 1];
                    }
                    //request.Truncation = 150;
                    request.Sort = SortOrders.Descending;
                    //request.Transformation = Transformations.Difference;
                    QuandlConnection conn = new QuandlConnection();
                    try
                    {
                        json = conn.Request(request); // request is your QuandlDownloadRequst
                    }
                    catch (Exception ex)
                    {
                        ClsLog.WriteLog("ERROR: Not able to Downlaoding data for " + Scode.ScriptsCode + ". Exception: " + ex.Message);
                        ClsDataBase.MarkScriptInvalid(Scode.ScriptsCode);
                        continue;
                    }

                    RootObject obj = JsonConvert.DeserializeObject <RootObject>(json);
                    ClsDashBoard.ScriptOStatus    = "Total Scripts: " + ScriptCodes.Count.ToString() + " Downloading " + i.ToString() + " Of " + ScriptCodes.Count.ToString();
                    ClsDashBoard.OverallProgress  = i;
                    ClsDashBoard.ScriptPbarMax    = 0;
                    ClsDashBoard.ChangeSPbarValue = true;
                    BGW.ReportProgress(0);
                    ClsDashBoard.ScriptSStatus = Scode.ScriptsCode + " Total Records:" + obj.data.Count.ToString();
                    ClsLog.WriteLog(Scode.ScriptsCode + " Total Records:" + obj.data.Count.ToString());
                    ClsDashBoard.ScriptPbarMax    = obj.data.Count;
                    ClsDashBoard.ChangeSPbarValue = true;
                    BGW.ReportProgress(0);
                    i = i + 1;
                    j = 0;

                    //ClsDashBoard.ScriptPbarMax = obj.data.Count;
                    if (obj.data.Count != 0)
                    {
                        foreach (var item in obj.data)
                        {
                            ColEodData.Add(new ClsPriceDataSet()
                            {
                                ScriptId   = Scode.ScriptId,
                                Date       = Convert.ToDateTime(item[0].ToString()),
                                OpenPrice  = item[1] != null ? Convert.ToDouble(item[1].ToString()) : 0.0,
                                HighPrice  = item[2] != null ? Convert.ToDouble(item[2].ToString()) : 0.0,
                                LowPrice   = item[3] != null ? Convert.ToDouble(item[3].ToString()) : 0.0,
                                LastPrice  = item[4] != null ? Convert.ToDouble(item[4].ToString()) : 0.0,
                                ClosePrice = item[5] != null ? Convert.ToDouble(item[5].ToString()) : 0.0,
                                TotalVal   = item[6] != null ? Convert.ToDouble(item[6].ToString()) : 0.0,
                                TurnOver   = item[7] != null ? Convert.ToDouble(item[7].ToString()) : 0.0
                            });
                            ClsDashBoard.ScriptProgress = j;
                            BGW.ReportProgress(0);
                            j = j + 1;
                        }
                    }
                    else
                    {
                        ColEodData.Add(new ClsPriceDataSet()
                        {
                            ScriptId   = Scode.ScriptId,
                            Date       = request.StartDate,
                            OpenPrice  = 0.0,
                            HighPrice  = 0.0,
                            LowPrice   = 0.0,
                            LastPrice  = 0.0,
                            ClosePrice = 0.0,
                            TotalVal   = 0.0,
                            TurnOver   = 0.0
                        });
                        ClsDashBoard.ScriptProgress = j;
                        BGW.ReportProgress(0);
                        j = j + 1;
                    }
                    ClsDataBase.UpdateEodData(ColEodData, Scode.TableName);
                    ColEodData.Clear();
                    ClsLog.WriteLog("Data Download for script: " + Scode.ScriptsName + "(" + Scode.ScriptsCode + ") Completed.");
                }
                ClsLog.WriteLog("Running EMA DMA SP...");
                ClsDashBoard.ScriptOStatus = "Data Download Complete. Running EMA DMA Update SP.";
                ClsDashBoard.ScriptSStatus = "Data Download Complete. Running EMA DMA Update SP.";
                BGW.ReportProgress(0);
                ClsDataBase.UpdateEmaDma();
                ClsLog.WriteLog("Running EMA DMA SP...Completed");
            }
            catch (Exception ex)
            {
                ClsLog.WriteLog(ex.Message);
            }
        }