|
|
|
|
@@ -63,6 +63,38 @@ namespace MarketData.Services
|
|
|
|
|
if(!commandArgs.Has("DATE")){Console.WriteLine("UPDATEDAILY2 MISSING DATE");return;}
|
|
|
|
|
UpdateDaily2(commandArgs.Coalesce<DateTime>("DATE"));
|
|
|
|
|
}
|
|
|
|
|
else if (arg.Equals("UPDATELATESTPRICEOPENPOSITIONS"))
|
|
|
|
|
{
|
|
|
|
|
UpdateLatestPriceOpenPositions();
|
|
|
|
|
}
|
|
|
|
|
else if (arg.Equals("UPDATELATESTPRICEWATCHLIST"))
|
|
|
|
|
{
|
|
|
|
|
CommandArgs commandArgs=new CommandArgs(args);
|
|
|
|
|
if(!commandArgs.Has("WATCHLIST")){Console.WriteLine("UPDATELATESTPRICEWATCHLIST MISSING WATCHLIST");return;}
|
|
|
|
|
UpdateLatestPriceWatchList(commandArgs.Coalesce<String>("WATCHLIST"));
|
|
|
|
|
}
|
|
|
|
|
else if (arg.Equals("UPDATELATESTANALYSTRATINGS"))
|
|
|
|
|
{
|
|
|
|
|
CommandArgs commandArgs = new CommandArgs(args);
|
|
|
|
|
if (commandArgs.Has("UPDATESECURITYMASTER")) UpdateLatestAnalystRatings(commandArgs.Coalesce<Boolean>("UPDATESECURITYMASTER"));
|
|
|
|
|
else UpdateLatestAnalystRatings();
|
|
|
|
|
}
|
|
|
|
|
else if (arg.Equals("UPDATEANALYSTRATINGS"))
|
|
|
|
|
{
|
|
|
|
|
CommandArgs commandArgs = new CommandArgs(args);
|
|
|
|
|
if (commandArgs.Has("SYMBOL") && commandArgs.Has("MINDATE")) UpdateAnalystRatings(commandArgs.Coalesce<String>("SYMBOL"), commandArgs.Coalesce<DateTime>("MINDATE"));
|
|
|
|
|
else if (commandArgs.Has("SYMBOL") ) UpdateAnalystRatings(commandArgs.Coalesce<String>("SYMBOL"));
|
|
|
|
|
else if (commandArgs.Has("MINDATE")) UpdateAnalystRatings(null,commandArgs.Coalesce<DateTime>("MINDATE"));
|
|
|
|
|
else UpdateAnalystRatings();
|
|
|
|
|
}
|
|
|
|
|
else if(arg.Equals("ECHO"))
|
|
|
|
|
{
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,$"ECHO");
|
|
|
|
|
for(int index =0; index<args.Length;index++)
|
|
|
|
|
{
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,$"ARG[{index}]:{args[index]}");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
DisplayUsage();
|
|
|
|
|
@@ -91,6 +123,10 @@ namespace MarketData.Services
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,$"LOADHEADLINESWATCHLIST");
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,$"LOADPREMARKETDATA");
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,"UPDATEDAILY2 /DATE: - updates prices, yields, and ratings");
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,"UPDATEANALYSTRATINGS");
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,"UPDATELATESTPRICEWATCHLIST /WATCHLIST:");
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,"UPDATELATESTPRICEOPENPOSITIONS");
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,"UPDATELATESTPRICEOPENPOSITIONS");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// **********************************************************************************************************************************************
|
|
|
|
|
@@ -129,6 +165,7 @@ namespace MarketData.Services
|
|
|
|
|
String result=Console.ReadLine();
|
|
|
|
|
if(null==result||!(result.ToUpper().Equals("Y")||result.ToUpper().Equals("YES")))return;
|
|
|
|
|
}
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,$"UPDATEDAILY2 DATE:{startDate.ToShortDateString()}");
|
|
|
|
|
Utility.RemoveLogFilesExcept("marketdata.log"); // don't remove the current log file
|
|
|
|
|
int STAGE_1=0,STAGE_2=1,STAGE_3=2,STAGE_4=3,STAGE_5=4,STAGE_6=5,STAGE_7=6,STAGE_8=7,STAGE_9=8,STAGE_10=9,STAGE_11=10,STAGE_12=11,STAGE_FINAL=12;
|
|
|
|
|
DeletePriceWatchList("valuations",startDate.ToShortDateString());
|
|
|
|
|
@@ -543,13 +580,95 @@ namespace MarketData.Services
|
|
|
|
|
// **********************************************************************************************************************************************
|
|
|
|
|
// ******************************************* E N D U P D A T E D A I L Y 2 M E T H O D S ***************************************************
|
|
|
|
|
// **********************************************************************************************************************************************
|
|
|
|
|
public static void UpdateAnalystRatings(String paramSymbol = null,DateTime? minDate=null)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG, "[UPDATEANALYSTRATINGS]");
|
|
|
|
|
List<String> symbols = new List<String>();
|
|
|
|
|
if (paramSymbol == null) symbols = PricingDA.GetSymbols();
|
|
|
|
|
else symbols.Add(paramSymbol);
|
|
|
|
|
foreach (String symbol in symbols)
|
|
|
|
|
{
|
|
|
|
|
AnalystRatings analystRatings = MarketDataHelper.GetAnalystRatingsMarketBeat(symbol);
|
|
|
|
|
if (null == analystRatings || 0 == analystRatings.Count)
|
|
|
|
|
{
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("No analyst ratings for {0}", symbol));
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
AnalystRatings duplicateList = new AnalystRatings();
|
|
|
|
|
if (null != minDate)
|
|
|
|
|
{
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Minimum Rating Date of {0} is specified.", minDate.Value.ToShortDateString()));
|
|
|
|
|
analystRatings = new AnalystRatings((from AnalystRating analystRating in analystRatings where analystRating.Date >= minDate.Value select analystRating).ToList());
|
|
|
|
|
}
|
|
|
|
|
foreach (AnalystRating analystRating in analystRatings)
|
|
|
|
|
{
|
|
|
|
|
if (AnalystRatingsDA.ContainsAnalystRating(analystRating))
|
|
|
|
|
{
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Already have analyst rating for {0} on {1} from brokerage firm {2}", analystRating.Symbol, analystRating.Date.ToShortDateString(), analystRating.BrokerageFirm));
|
|
|
|
|
duplicateList.Add(analystRating);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
analystRatings = new AnalystRatings(analystRatings.Except(duplicateList).ToList());
|
|
|
|
|
foreach (AnalystRating analystRating in analystRatings)
|
|
|
|
|
{
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Inserting Analyst Rating for {0} on {1} from brokerage firm {2}", analystRating.Symbol, analystRating.Date.ToShortDateString(), analystRating.BrokerageFirm));
|
|
|
|
|
}
|
|
|
|
|
AnalystRatingsDA.InsertAnalystRatings(analystRatings);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception exception)
|
|
|
|
|
{
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG, exception);
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG, "[UPDATEANALYSTRATINGS]");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void UpdateLatestPriceWatchList(String watchListName)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if(!CheckRunCriteria())return;
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,$"UPDATELATESTPRICEWATCHLIST WATCHLIST:{watchListName}");
|
|
|
|
|
List<String> symbols = WatchListDA.GetWatchList(watchListName);
|
|
|
|
|
PricingMarketDataHelper pricingMarketDataHelper=new PricingMarketDataHelper();
|
|
|
|
|
pricingMarketDataHelper.UpdateLatestPrices(symbols);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception exception)
|
|
|
|
|
{
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,exception);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void UpdateLatestPriceOpenPositions()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if(!CheckRunCriteria())return;
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,$"UPDATELATESTPRICEOPENPOSITIONS");
|
|
|
|
|
PortfolioTrades portfolioTrades=PortfolioDA.GetOpenTrades();
|
|
|
|
|
List<String> symbols=(from PortfolioTrade portfolioTrade in portfolioTrades select portfolioTrade.Symbol).Distinct().ToList();
|
|
|
|
|
if(symbols.Any(x=>x.Equals("SPY")))symbols.Add("SH");
|
|
|
|
|
PricingMarketDataHelper pricingMarketDataHelper=new PricingMarketDataHelper();
|
|
|
|
|
pricingMarketDataHelper.UpdateLatestPrices(symbols);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception exception)
|
|
|
|
|
{
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,exception);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// **********************************************************************************************************************************************
|
|
|
|
|
|
|
|
|
|
public static void LoadHeadlinesWatchList(String watchList)
|
|
|
|
|
{
|
|
|
|
|
if(!CheckRunCriteria())return;
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("LoadHeadlinesWatchList {0}",watchList));
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("LOADHEADLINESWATCHLIST {0}",watchList));
|
|
|
|
|
List<String> symbols = WatchListDA.GetWatchList(watchList);
|
|
|
|
|
HeadlinesMarketDataHelper headlinesMarketDataHelper= new HeadlinesMarketDataHelper();
|
|
|
|
|
headlinesMarketDataHelper.LoadHeadlines(symbols);
|
|
|
|
|
@@ -562,6 +681,7 @@ namespace MarketData.Services
|
|
|
|
|
PremarketElements premarketElements=null;
|
|
|
|
|
|
|
|
|
|
if(!CheckRunCriteria())return;
|
|
|
|
|
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("LOADPREMARKETDATA"));
|
|
|
|
|
for(int retry=0;retry<retries && (null==premarketElements || 0==premarketElements.Count);retry++,Thread.Sleep(sleepTime))
|
|
|
|
|
{
|
|
|
|
|
premarketElements=MarketDataHelper.GetPremarketData();
|
|
|
|
|
|