Пример #1
0
        public static async Task <bool> Run()
        {
            var symbols = SqlExecutor.GetSymbols();

            var       pathToScriptFile = @"DBScripts\StockDataTables\SelectStockBySymbol.sql";
            var       sqlScript        = File.ReadAllText(Common.GetScriptPath(pathToScriptFile));
            DataTable dt;

            foreach (var symbol in symbols)
            {
                var paramCollection = new List <KeyValuePair <string, string> >();
                paramCollection.Add(new KeyValuePair <string, string>(Common.SymbolIdColumn, symbol.Id.ToString()));
                sqlScript = sqlScript.Replace(Common.TableNameOld, symbol.Symbol[0].ToString() + Common.TableNameSuffix);
                dt        = StockDataLoader.MakeStockTable(symbol.Symbol[0].ToString() + Common.TableNameSuffix);
                SqlExecutor.ExecuteQueryFillDataTable(sqlScript, paramCollection, dt);
                Console.WriteLine(string.Format("Calculate SMA for Symbol:{0}", symbol.Symbol));

                ////for (int i = 0; i < dt.Rows.Count; i++)
                ////{
                ////    CalculateSMA(5, i, dt);
                ////    CalculateSMA(10, i, dt);
                ////    CalculateSMA(30, i, dt);
                ////    CalculateSMA(60, i, dt);
                ////}
                dt.AcceptChanges();
                var ret = await SqlExecutor.BulkCopy(dt);
            }
            return(true);
        }
Пример #2
0
        private static DataTable GetPrices(int symbolId, string symbol, int updatePeriod)
        {
            var date = Convert.ToDateTime(ConfigurationManager.AppSettings["StartTime"]);

            if (updatePeriod > 0)
            {
                date = DateTime.Now.Subtract(TimeSpan.FromDays(updatePeriod + 1));
            }
            var paramCollection = new List <KeyValuePair <string, string> >();

            paramCollection.Add(new KeyValuePair <string, string>(Common.SymbolIdColumn, symbolId.ToString()));
            paramCollection.Add(new KeyValuePair <string, string>(Common.DateColumn, date.ToString()));

            var newSqlScript = selectStockBySymbolSqlScript.Replace(Common.TableNameOld, symbol[0].ToString() + Common.TableNameSuffix);
            var dt           = StockDataLoader.MakeStockTable(symbol[0].ToString() + Common.TableNameSuffix);

            SqlExecutor.ExecuteQueryFillDataTable(newSqlScript, paramCollection, dt);
            return(dt);
        }