Exemple #1
0
        private void _store_candles(string fstr, string d2)
        {
            DataTable dic = default(DataTable);

            QuandlAPI.QuandlError err = default(QuandlAPI.QuandlError);
            WnF_DBType            dbt = (WnF_DBType)Properties.Settings.Default.dbms;
            string cstr;

            err = _api.GetCandlesTable(fstr, d2, out dic, _tname);
            if (err != null)
            {
                Console.WriteLine("[QuandlChart._store_candles()] GetCandlesTable failed...\r\n" + err.message);
                return;
            }

#if DEBUG
            dynamic watch = System.Diagnostics.Stopwatch.StartNew();
#endif
            cstr = string.Format(Properties.Settings.Default.dbConn, _database);
            using (WnFDbConnectionWrapper dbcw = WnFDbConnectionWrapper.GetWrapper(dbt, cstr))
                dbcw.InsertTable(dic);

#if DEBUG
            watch.Stop();
            Console.WriteLine("[QuandlChart._store_candles()] " + dic.Rows.Count + " ellapsed " + watch.ElapsedMilliseconds);
#endif
            dic = null;
        }
Exemple #2
0
        public int GetCandles()
        {
            QuandlAPI.QuandlError err = default(QuandlAPI.QuandlError);
            DataTable             dt  = default(DataTable);
            bool   append;
            string d1, d2;
            int    no_candles = 0;
            string fstr;

            if (!_api.ReadURLString("Candles", out fstr))
            {
                MessageBox.Show("Error reading URL format string for candles.", Properties.Settings.Default.tm, MessageBoxButtons.OK);
                return((int)APIError.APIUrlFormat);
            }

            append = _is_append(out d1);
            d2     = DateTime.Today.ToString("yyyy-MM-dd");
            fstr   = _api.Get_URL(_database, _stockcode, ((QuandlAPI.QuandlPeriod)_period).ToString(), d1, "{0}", "{1}");

            if (!append)
            {
                Console.WriteLine("[QuandlChart.GetCandles()] calling _store_candles async for " + _stockcode);
                d_store_candles d = _store_candles;
                d.BeginInvoke(fstr.Replace("&rows={1}", ""), d2, null, null);

                err = _api.GetCandlesTable(string.Format(fstr, "{0}", QuandlAPI._MAX_JSON), d2, out _dohlcv);
                return((err == null) ? 0 :err.ToInt());
            }
            else
            {
                if (DateTime.Parse(d2) < DateTime.Parse(d1))
                {
                    d2 = string.Empty;
                }

                err = _api.GetCandlesTable(fstr.Replace("&rows={1}", ""), d2, out dt, _tname);
                if (err != null)
                {
                    return(err.ToInt());
                }

                no_candles = (dt.Rows.Count > 0) ? _dbc_wr.AppendTable(dt): 1;
                dt         = null;
                return(no_candles);
            }
        }