public static DateTime updateAllTrackedSymbolsData(ConsoleRunningParameters cParams, DataModels.AllWatchLists allWatchLists) { List <string> watchSymbols = new List <string>(); foreach (var list in allWatchLists.Lists) { foreach (var item in list.watchlistItems) { if (!watchSymbols.Contains(item.symbol) && !item.symbol.Contains("/") && item.assetType == "EQUITY") { watchSymbols.Add(item.symbol); } } } //add list //List<string> fromFile = ReadStockTickerList.ReadStockTickerListByLineOfText($"{cParams.tradeDataPath}\\SandP500List.txt"); //foreach (string ticker in fromFile) //{ // if(!watchSymbols.Contains(ticker)) // watchSymbols.Add(ticker); //} Log.write($"{DateTime.Now.ToString()} Watching {watchSymbols.Count.ToString()} Symbols"); foreach (string symbol in watchSymbols) { Console.Write($"{symbol.PadRight(10)}"); } Log.write($"{watchSymbols.Count.ToString()} valid symbols found within {allWatchLists.Lists.Count.ToString()} watch lists."); int countTrackedStockSymbols = 0; List <string> TrackedStockSymbols = MarketHistory.ReadWriteJSONToDisk.getListOfStocksWithHistory(cParams.tradeDataPath); Log.write($"{DateTime.Now.ToString()} Tracked {TrackedStockSymbols.Count.ToString()} Symbols"); foreach (string symbol in TrackedStockSymbols) { Console.Write($"{symbol.PadRight(10)}"); countTrackedStockSymbols++; } Console.WriteLine(""); List <string> newSymbolsToTrack = watchSymbols.Where(s => !TrackedStockSymbols.Contains(s)).ToList(); StoreNewSymbolsByMinuteData(cParams.client, cParams.apiKey, cParams.tradeDataPath, newSymbolsToTrack); UpdateTrackedSymbolsMyMinuteData(cParams.client, cParams.apiKey, cParams.tradeDataPath, TrackedStockSymbols); return(DateTime.Now); }
public static void Main(string[] args) { //Load up all the setting and operating parameters ConsoleRunningParameters cmdParams = new ConsoleRunningParameters(); Ultility.delay(250); //Get Watch lists var allWatchLists = AIStockTradingBotLogic.Watchlists.GetAllWatchLists(cmdParams.client); //Saving data really only needs to happen once a day cmdParams.SavedAllByMinuteData = RecordingMinuteHistory.updateAllTrackedSymbolsData(cmdParams, allWatchLists); //-----looping section----- "preMarket", "regularMarket", "postMarket", "outsideMarket" //often Call //TODO Check For Trades //TODO Check Currently Trading stocks list Log.write($"EndTime {DateTime.Now.ToString()}"); }