diff --git a/MarketData/MarketData/Services/MainService.cs b/MarketData/MarketData/Services/MainService.cs index d05b369..3f1dbda 100755 --- a/MarketData/MarketData/Services/MainService.cs +++ b/MarketData/MarketData/Services/MainService.cs @@ -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("WATCHLIST")); await Task.FromResult(true); - } + } + + public async Task TaskUpdateIntradayPricing(CommandArgs commandArgs) + { + try + { + if(!CheckRunCriteria())return; + String watchListName="Valuations"; + MDTrace.WriteLine(LogLevel.DEBUG,$"UPDATEINTRADAYPRICING"); + List watchlistSymbols = WatchListDA.GetWatchList(watchListName); + PortfolioTrades portfolioTrades=PortfolioDA.GetOpenTrades(); + List portfolioSymbols=(from PortfolioTrade portfolioTrade in portfolioTrades select portfolioTrade.Symbol).Distinct().ToList(); + if(portfolioSymbols.Any(x=>x.Equals("SPY")))portfolioSymbols.Add("SH"); + List symbols = new List(); + 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) { diff --git a/README.md b/README.md index 12a36f0..3e49916 100644 --- a/README.md +++ b/README.md @@ -82,32 +82,28 @@ Also note that 1>/dev/null is synonymous to, but more explicit than >/dev/null # sudo service cron reload , sudo service cron restart # cron helper app here -> https://cron.help/#*/5_9-17_*_*_1-5 -DOTNET_ROOT=/opt/dotnet -*/15 6-16 * * 1-5 /opt/MarketData/MarketData/mk LOADHEADLINESWATCHLIST /WATCHLIST:Valuations 2>&1 | logger -t headlines -*/5 5-16 * * 1-5 /opt/MarketData/MarketData/mk LOADPREMARKETDATA 2>&1 | logger -t premarket -*/5 9-16 * * 1-5 /opt/MarketData/MarketData/mk UPDATELATESTPRICEOPENPOSITIONS 2>&1 | logger -t priceopenpositions -*/5 9-16 * * 1-5 /opt/MarketData/MarketData/mk UPDATELATESTPRICEWATCHLIST /WATCHLIST:Valuations 2>&1 | logger -t pricewatchlist -*/30 9-16 * * 1-5 /opt/MarketData/MarketData/mk UPDATELATESTANALYSTRATINGS 2>&1 | logger -t analystratings -0 19 * * 1-5 /opt/MarketData/MarketData/mk UPDATEDAILY2 /DATE:$(date -d"-0 days" +\%m-\%d-\%Y) 2>&1 | logger -t updatedaily2 - - -*/15 6-16 * * 1-5 /opt/MarketData/MarketData/mk LOADHEADLINESWATCHLIST /WATCHLIST:Valuations > /dev/null 2>&1 -*/5 5-16 * * 1-5 /opt/MarketData/MarketData/mk LOADPREMARKETDATA > /dev/null 2>&1 -*/5 9-16 * * 1-5 /opt/MarketData/MarketData/mk UPDATELATESTPRICEOPENPOSITIONS > /dev/null 2>&1 -*/5 9-16 * * 1-5 /opt/MarketData/MarketData/mk UPDATELATESTPRICEWATCHLIST /WATCHLIST:Valuations > /dev/null 2>&1 -*/30 9-16 * * 1-5 /opt/MarketData/MarketData/mk UPDATELATESTANALYSTRATINGS 2>&1 | logger -t analystratings -0 19 * * 1-5 /opt/MarketData/MarketData/mk UPDATEDAILY2 /DATE:$(date -d"-0 days" +\%m-\%d-\%Y) > /dev/null 2>&1 - # m h dom mon dow command # sudo service cron reload , sudo service cron restart # cron helper app here -> https://cron.help/#*/5_9-17_*_*_1-5 DOTNET_ROOT=/opt/dotnet CRON_DIR=/opt/MarketData/MarketData */15 6-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk LOADHEADLINESWATCHLIST /WATCHLIST:Valuations > /dev/null 2>&1 -*/5 5-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk LOADPREMARKETDATA > /dev/null 2>&1 -*/5 9-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATELATESTPRICEOPENPOSITIONS > /dev/null 2>&1 -*/5 9-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATELATESTPRICEWATCHLIST /WATCHLIST:Valuations > /dev/null 2>&1 -*/30 9-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATELATESTANALYSTRATINGS > /dev/null 2>&1 -0 19 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEDAILY2 /DATE:$(date -d"-0 days" +\%m-\%d-\%Y) > /dev/null 2>&1 +*/5 5-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk LOADPREMARKETDATA > /dev/null 2>&1 +*/5 9-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATELATESTPRICEOPENPOSITIONS > /dev/null 2>&1 +*/5 9-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATELATESTPRICEWATCHLIST /WATCHLIST:Valuations > /dev/null 2>&1 +*/30 9-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATELATESTANALYSTRATINGS > /dev/null 2>&1 +0 19 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEDAILY2 /DATE:$(date -d"-0 days" +\%m-\%d-\%Y) > /dev/null 2>&1 + +Here is the latest crontab +# m h dom mon dow command +# sudo service cron reload , sudo service cron restart +# cron helper app here -> https://cron.help/#*/5_9-17_*_*_1-5 +DOTNET_ROOT=/opt/dotnet +CRON_DIR=/opt/MarketData/MarketData +*/15 6-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk LOADHEADLINESWATCHLIST /WATCHLIST:Valuations > /dev/null 2>&1 +*/5 5-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk LOADPREMARKETDATA > /dev/null 2>&1 +*/5 9-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEINTRADAYPRICING > /dev/null 2>&1 +*/30 9-16 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATELATESTANALYSTRATINGS > /dev/null 2>&1 +0 19 * * 1-5 cd $CRON_DIR ; /opt/MarketData/MarketData/mk UPDATEDAILY2 /DATE:$(date -d"-0 days" +\%m-\%d-\%Y) > /dev/null 2>&1