Combine open positions and watchlist pricing feeds into one intraday feed.

This commit is contained in:
2025-04-14 12:33:52 -04:00
parent 761d90a8f5
commit eb9d45f4bd
2 changed files with 46 additions and 22 deletions

View File

@@ -26,6 +26,7 @@ namespace MarketData.Services
MDTrace.WriteLine(LogLevel.DEBUG,"UPDATEDAILY2 /DATE:");
MDTrace.WriteLine(LogLevel.DEBUG,"UPDATELATESTPRICEOPENPOSITIONS");
MDTrace.WriteLine(LogLevel.DEBUG,"UPDATELATESTPRICEWATCHLIST /WATCHLIST:");
MDTrace.WriteLine(LogLevel.DEBUG,"UPDATEINTRADAYPRICING:");
MDTrace.WriteLine(LogLevel.DEBUG,"UPDATELATESTANALYSTRATINGS");
MDTrace.WriteLine(LogLevel.DEBUG,"UPDATEANALYSTRATINGS");
MDTrace.WriteLine(LogLevel.DEBUG,"UPDATESECFILINGSWATCHLIST /WATCHLIST:");
@@ -55,6 +56,7 @@ namespace MarketData.Services
tasks.Add("UPDATEDAILY2",TaskUpdateDaily2);
tasks.Add("UPDATELATESTPRICEOPENPOSITIONS",TaskUpdateLatestPriceOpenPositions);
tasks.Add("UPDATELATESTPRICEWATCHLIST",TaskUpdateLatestPriceWatchList);
tasks.Add("UPDATEINTRADAYPRICING",TaskUpdateIntradayPricing);
tasks.Add("UPDATELATESTANALYSTRATINGS",TaskUpdateLatestAnalystRatings);
tasks.Add("UPDATEANALYSTRATINGS",TaskUpdateAnalystRatings);
tasks.Add("UPDATESECFILINGSWATCHLIST",TaskUpdateSECFilingsWatchList);
@@ -180,7 +182,33 @@ namespace MarketData.Services
if(!commandArgs.Has("WATCHLIST")){Console.WriteLine("UPDATELATESTPRICEWATCHLIST MISSING WATCHLIST");return;}
UpdateLatestPriceWatchList(commandArgs.Coalesce<String>("WATCHLIST"));
await Task.FromResult(true);
}
}
public async Task TaskUpdateIntradayPricing(CommandArgs commandArgs)
{
try
{
if(!CheckRunCriteria())return;
String watchListName="Valuations";
MDTrace.WriteLine(LogLevel.DEBUG,$"UPDATEINTRADAYPRICING");
List<String> watchlistSymbols = WatchListDA.GetWatchList(watchListName);
PortfolioTrades portfolioTrades=PortfolioDA.GetOpenTrades();
List<String> portfolioSymbols=(from PortfolioTrade portfolioTrade in portfolioTrades select portfolioTrade.Symbol).Distinct().ToList();
if(portfolioSymbols.Any(x=>x.Equals("SPY")))portfolioSymbols.Add("SH");
List<String> symbols = new List<String>();
symbols.AddRange(portfolioSymbols);
symbols.AddRange(watchlistSymbols);
symbols = symbols.Distinct().ToList();
MDTrace.WriteLine(LogLevel.DEBUG,$"Updating {symbols.Count} prices. Includes {portfolioSymbols.Count} open positions and {watchlistSymbols.Count} Valuation watchlist.");
PricingMarketDataHelper pricingMarketDataHelper=new PricingMarketDataHelper();
pricingMarketDataHelper.UpdateLatestPrices(symbols);
}
catch (Exception exception)
{
MDTrace.WriteLine(LogLevel.DEBUG,exception);
}
await Task.FromResult(true);
}
public async Task TaskUpdateLatestAnalystRatings(CommandArgs commandArgs)
{