diff --git a/.vs/MarketData/v16/.suo b/.vs/MarketData/v16/.suo index 47c4e48..cd1bac3 100644 Binary files a/.vs/MarketData/v16/.suo and b/.vs/MarketData/v16/.suo differ diff --git a/MarketDataLib/Helper/HeadlinesMarketDataHelper.cs b/MarketDataLib/Helper/HeadlinesMarketDataHelper.cs index 2162de8..dd5dd4c 100644 --- a/MarketDataLib/Helper/HeadlinesMarketDataHelper.cs +++ b/MarketDataLib/Helper/HeadlinesMarketDataHelper.cs @@ -12,7 +12,7 @@ namespace MarketData.Helper public class HeadlinesMarketDataHelper { private static int MaxThreads = 10; // (int)ThreadHelperEnum.MaxThreads; - private static int WAIT_BETWEEN_REQUESTS_MS = 500; // wait 500 ms between requests + private static int WAIT_BETWEEN_REQUESTS_MS = 1000; // wait 1000 ms between requests private List symbols; private int currentIndex = 0; @@ -39,6 +39,7 @@ namespace MarketData.Helper { ThreadHelper threadHelper = new ThreadHelper(queueSymbols[index],resetEvents[index]); ThreadPool.QueueUserWorkItem(ThreadPoolCallbackLoadHeadline, threadHelper); + try{Thread.Sleep(WAIT_BETWEEN_REQUESTS_MS);}catch{;} } MDTrace.WriteLine(LogLevel.DEBUG,"Load Headline, waiting for queued items to complete."); WaitHandle.WaitAll(resetEvents); @@ -113,8 +114,8 @@ namespace MarketData.Helper Headlines headlinesCollection=new Headlines(); Headlines headlines=null; // SEEKING ALPHA - //headlines=MarketDataHelper.GetCompanyHeadlines(symbol); - //if(null!=headlines)headlinesCollection.AddRange(headlines); + headlines=MarketDataHelper.GetCompanyHeadlinesSeekingAlpha(symbol); + if(null!=headlines)headlinesCollection.AddRange(headlines); // NASDAQ headlines=MarketDataHelper.GetCompanyHeadlinesNASDAQ(symbol); if(null!=headlines)headlinesCollection.AddRange(headlines); @@ -123,6 +124,10 @@ namespace MarketData.Helper if(null!=headlines)headlinesCollection.AddRange(headlines); return headlinesCollection; } +// *********************************************************************************************************************************************** +// *********************************************************************************************************************************************** +// *********************************************************************************************************************************************** + public static void LoadHeadlineEx(String symbol) { DateTime marketDate=PremarketDA.GetLatestMarketDate(); @@ -130,23 +135,24 @@ namespace MarketData.Helper Headlines headlines=null; // SEEKING ALPHA - //MDTrace.WriteLine(LogLevel.DEBUG,String.Format("LoadHeadlinesSymbol {0}",symbol)); - //headlines=MarketDataHelper.GetCompanyHeadlines(symbol); - //if(headlines.IsNullOrEmpty()) - //{ - // MDTrace.WriteLine(LogLevel.DEBUG,String.Format("No headlines for {0} from Seeking Alpha",symbol)); - //} - //else - //{ - // MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Got {0} headlines for {1} from Seeking Alpha",headlines.Count,symbol)); - // headlines=new Headlines(headlines.Where(x=>x.Date {2}",headline.Symbol,headline.Date.ToShortDateString(),headline.Entry)); - // } - //} + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("GetCompanyHeadlinesSeekingAlpha {0}",symbol)); + headlines=MarketDataHelper.GetCompanyHeadlinesSeekingAlpha(symbol); + if(headlines.IsNullOrEmpty()) + { + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("No headlines for {0} from Seeking Alpha",symbol)); + } + else + { + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Got {0} headlines for {1} from Seeking Alpha",headlines.Count,symbol)); + headlines=new Headlines(headlines.Where(x=>x.Date {2}",headline.Symbol,headline.Date.ToShortDateString(),headline.Entry)); + } + } // NASDAQ + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("GetCompanyHeadlinesNASDAQ {0}",symbol)); headlines=MarketDataHelper.GetCompanyHeadlinesNASDAQ(symbol); if(headlines.IsNullOrEmpty()) { @@ -163,6 +169,7 @@ namespace MarketData.Helper } } // MARKETWATCH + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("GetCompanyHeadlinesMarketWatch {0}",symbol)); headlines=MarketDataHelper.GetCompanyHeadlinesMarketWatch(symbol); if(headlines.IsNullOrEmpty()) { diff --git a/MarketDataLib/Helper/MarketDataHelper.cs b/MarketDataLib/Helper/MarketDataHelper.cs index 58d3d09..eae9486 100644 --- a/MarketDataLib/Helper/MarketDataHelper.cs +++ b/MarketDataLib/Helper/MarketDataHelper.cs @@ -1658,13 +1658,7 @@ namespace MarketData.Helper // *************************************************************************************************************************************************************************** //***************************************************************** H E A D L I N E S - S E E K I N G A L P H A *********************************************************** // *************************************************************************************************************************************************************************** -/* - public static Headlines GetCompanyHeadlines(String symbol) - { - Headlines headlines=GetCompanyHeadlinesEx(symbol); - return headlines; - } - public static Headlines GetCompanyHeadlinesEx(String symbol) + public static Headlines GetCompanyHeadlinesSeekingAlpha(String symbol) { HttpNetResponse httpNetResponse=null; Headlines headlines=new Headlines(); @@ -1680,8 +1674,8 @@ namespace MarketData.Helper sb.Append("https://seekingalpha.com/api/v3/symbols/").Append(symbol).Append("/news?filter[until]=0&id=").Append(symbol).Append("&include=author,primaryTickers,secondaryTickers,sentiments&page[number]=1&page[size]=11"); strRequest = sb.ToString(); MDTrace.WriteLine(LogLevel.DEBUG, strRequest); - WebProxy webProxy=HttpNetRequest.GetProxy("GetCompanyHeadlines"); - httpNetResponse=HttpNetRequest.GetRequestNoEncodingV3B(strRequest,cookieCollection,webProxy); + WebProxy webProxy=HttpNetRequest.GetProxy("GetCompanyHeadlinesSeekingAlpha"); + httpNetResponse=HttpNetRequest.GetRequestNoEncodingV5B(strRequest,30000,webProxy,true,cookieCollection); if(!httpNetResponse.Success) { MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Request:{0} failed with status {1}",httpNetResponse.Request,httpNetResponse.StatusCode)); @@ -1714,17 +1708,12 @@ namespace MarketData.Helper if(null!=httpNetResponse)httpNetResponse.Dispose(); } } -*/ + // *************************************************************************************************************************************************************************** //***************************************************************** H E A D L I N E S - M A R K E T W A T C H ************************************************************* // *************************************************************************************************************************************************************************** public static Headlines GetCompanyHeadlinesMarketWatch(String symbol) - { - return null; - } - // turning this off until MarketWatch quote resets 03/14/2023. we'll try it again in some hours. - public static Headlines GetCompanyHeadlinesMarketWatch_Org(String symbol) { HttpNetResponse httpNetResponse=null; Headlines headlines=new Headlines(); @@ -1738,12 +1727,12 @@ namespace MarketData.Helper MemoryStream memoryStream=null; CookieCollection cookieCollection=new CookieCollection(); httpNetResponse= HttpNetRequest.GetRequestNoEncodingV4("https://www.marketwatch.com",cookieCollection); - Thread.Sleep(250); + Thread.Sleep(500); sb.Append("https://www.marketwatch.com/investing/stock/").Append(symbol).Append("?mod=search_symbol"); strRequest = sb.ToString(); MDTrace.WriteLine(LogLevel.DEBUG, strRequest); WebProxy webProxy=HttpNetRequest.GetProxy("GetCompanyHeadlinesMarketWatch"); - httpNetResponse=HttpNetRequest.GetRequestNoEncodingV5(strRequest,DEFAULT_TIMEOUT_MS,webProxy); + httpNetResponse=HttpNetRequest.GetRequestNoEncodingV5B(strRequest,DEFAULT_TIMEOUT_MS,webProxy,true,cookieCollection); if(!httpNetResponse.Success) { MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Request:{0} failed with status {1}",httpNetResponse.Request,httpNetResponse.StatusCode)); diff --git a/MarketDataLib/Integration/HttpNetRequest.cs b/MarketDataLib/Integration/HttpNetRequest.cs index bfe4787..efe087f 100644 --- a/MarketDataLib/Integration/HttpNetRequest.cs +++ b/MarketDataLib/Integration/HttpNetRequest.cs @@ -2,11 +2,8 @@ using System; using System.IO; using System.Net; using System.Text; -using System.Diagnostics; -using System.Collections; using System.Threading; using System.IO.Compression; -using System.Reflection; using System.Configuration; // Filename: HttpRequest.cs // Author:Sean Kessler @@ -1013,7 +1010,57 @@ namespace MarketData.Integration } } - + public static HttpNetResponse GetRequestNoEncodingV5B(String strRequest,int webRequestTimeoutMS,WebProxy webProxy=null,bool useRandomUserAgent=false,CookieCollection cookieCollection=null) + { + HttpWebResponse webResponse = null; + try + { + MDTrace.WriteLine(LogLevel.VERBOSE, String.Format("GetRequestNoEncodingV5[ENTER]{0}", strRequest)); + int charCount = 0; + byte[] buffer = new byte[8192]; + StringBuilder sb = new StringBuilder(); + bool expect100Condition = ServicePointManager.Expect100Continue; + SecurityProtocolType securityProtocolType = ServicePointManager.SecurityProtocol; + ServicePointManager.Expect100Continue = true; + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; + HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(strRequest)); + if(null!=webProxy)webRequest.Proxy=webProxy; + webRequest.Timeout = webRequestTimeoutMS; + webRequest.Headers.Add("Accept-Language: en-US,en;q=0.5"); + webRequest.Headers.Add("Accept-Encoding: None"); + webRequest.Accept = "image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*"; +// if(useRandomUserAgent)webRequest.UserAgent=GetUserAgent(); + if (useRandomUserAgent) webRequest.UserAgent = UserAgent.GetInstance().GetUserAgent(); + else webRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MS-RTC LM 8; .NET4.0C; .NET4.0E; InfoPath.3)"; + webRequest.KeepAlive = true; + webRequest.CookieContainer = new CookieContainer(); + if(null!=cookieCollection)webRequest.CookieContainer.Add(cookieCollection); + webResponse = (HttpWebResponse)webRequest.GetResponse(); + Stream responseStream = webResponse.GetResponseStream(); + while (true) + { + charCount = responseStream.Read(buffer, 0, buffer.Length); + if (0 == charCount) break; + sb.Append(Encoding.ASCII.GetString(buffer, 0, charCount)); + } + webResponse.Close(); + ServicePointManager.Expect100Continue = expect100Condition; + ServicePointManager.SecurityProtocol = securityProtocolType; + return new HttpNetResponse(sb.ToString(), strRequest, webResponse, webResponse.Cookies, true); + } + catch (WebException webException) + { + return new HttpNetResponse((HttpWebResponse)webException.Response, strRequest, false, webException.Message); + } + catch (Exception exception) + { + return new HttpNetResponse(webResponse, strRequest, false, exception.Message); + } + finally + { + MDTrace.WriteLine(LogLevel.VERBOSE, "GetRequestNoEncodingV5[LEAVE]"); + } + } public static HttpNetResponse GetRequestNoEncodingV6(String strRequest, int webRequestTimeoutMS) { @@ -1154,14 +1201,11 @@ namespace MarketData.Integration webRequest.Headers.Add("Sec-Fetch-Mode:cors"); webRequest.Headers.Add("Sec-Fetch-Site:same-site"); webRequest.Headers.Add("X-SAL-ContentType:e7FDDltrTy+tA2HnLovvGL0LFMwT+KkEptGju5wXVTU="); -// webRequest.Headers.Add("X-API-RequestId: 4b919fb3-6dc8-750d-e50f-639f73030527"); webRequest.Headers.Add("X-API-RequestId: d2ffea42-4a07-4fa7-fa0d-b307facd81fb"); webRequest.Headers.Add("ApiKey:lstzFDEOhfFNMLikKa0am9mgEKLBl49T"); webRequest.Accept = "*/*"; -// webRequest.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0"; webRequest.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"; webRequest.Host="api-global.morningstar.com"; -// webRequest.Referer="https://www.morningstar.com"; webRequest.Referer="https://www.morningstar.com/stocks/xnas/aapl/performance"; if(null!=webProxy)webRequest.Proxy=webProxy; @@ -1212,12 +1256,10 @@ namespace MarketData.Integration } } - - - /// - /// Get the proxy for the specified service or null if it is not congfigured to use the proxy - /// - ///The service name + /// + /// Get the proxy for the specified service or null if it is not congfigured to use the proxy + /// + ///The service name public static WebProxy GetProxy(String serviceName) { try diff --git a/MarketDataLib/Integration/UserAgent.cs b/MarketDataLib/Integration/UserAgent.cs index 41709f2..3c3804c 100644 --- a/MarketDataLib/Integration/UserAgent.cs +++ b/MarketDataLib/Integration/UserAgent.cs @@ -12,56 +12,86 @@ namespace MarketData.Integration //private bool useVersioning=false; private String[] userAgents= { - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36", - "Mozilla/5.0 (Windows NT 5.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36", - "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36", - "Mozilla/5.0 (iPhone; CPU iPhone OS 13_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Mobile/15E148 Safari/604.1", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/605.1.15 (KHTML, like Gecko)", - "Mozilla/5.0 (iPad; CPU OS 9_3_5 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13G36", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36", - "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) Internet Explorer 6", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36", - "Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Mobile/15E148 Safari/604.1", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063", - "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36", - "Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/15E148 Safari/604.1", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Safari/605.1.15", - "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko", - "Mozilla/5.0 (Windows NT 5.1; rv:36.0) Gecko/20100101 Firefox/36.0", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/603.3.8 (KHTML, like Gecko)", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36", - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)", - "Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0", - "Mozilla/5.0 (iPhone; CPU iPhone OS 11_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299", - "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36", - "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)", - "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36", - "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.2 Mobile/15E148 Safari/604.1", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0", - "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36", - "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2)", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Safari/605.1.15", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36", - "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36", - "Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.2 Mobile/15E148 Safari/604.1", - "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0", - "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36", - "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0", - "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36", - "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36" + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.3 24.31", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.3.1 Safari/605.1.1 23.33", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Safari/605.1.1 14.12", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.3 13.92", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0. 3.92", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Agency/93.8.2357.5 3.92", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 OPR/107.0.0. 3.92", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.3 3.92", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123. 3.14", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103. 1.57", + "Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.3 0.78", + "Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115. 0.78", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Viewer/99.9.8853.8 0.78", + "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115. 0.78", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.3 0.78" + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36", + //"Mozilla/5.0 (Windows NT 5.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36", + //"Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36", + //"Mozilla/5.0 (iPhone; CPU iPhone OS 13_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Mobile/15E148 Safari/604.1", + //"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/605.1.15 (KHTML, like Gecko)", + //"Mozilla/5.0 (iPad; CPU OS 9_3_5 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13G36", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36", + //"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) Internet Explorer 6", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36", + //"Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Mobile/15E148 Safari/604.1", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063", + //"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36", + //"Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/15E148 Safari/604.1", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36", + //"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Safari/605.1.15", + //"Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko", + //"Mozilla/5.0 (Windows NT 5.1; rv:36.0) Gecko/20100101 Firefox/36.0", + //"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/603.3.8 (KHTML, like Gecko)", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36", + //"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)", + //"Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0", + //"Mozilla/5.0 (iPhone; CPU iPhone OS 11_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299", + //"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36", + //"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)", + //"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36", + //"Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.2 Mobile/15E148 Safari/604.1", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0", + //"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36", + //"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2)", + //"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Safari/605.1.15", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36", + //"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36", + //"Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.2 Mobile/15E148 Safari/604.1", + //"Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0", + //"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36", + //"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0", + //"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36", + //"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.3 24.31", + //"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.3.1 Safari/605.1.1 23.33", + //"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Safari/605.1.1 14.12", + //"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.3 13.92", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0. 3.92", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Agency/93.8.2357.5 3.92", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 OPR/107.0.0. 3.92", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.3 3.92", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123. 3.14", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103. 1.57", + //"Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.3 0.78", + //"Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115. 0.78", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Viewer/99.9.8853.8 0.78", + //"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115. 0.78", + //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.3 0.78" }; private Random random=new Random(); @@ -76,20 +106,6 @@ namespace MarketData.Integration return instance; } } - //public bool GetVersioning() - //{ - // lock(this) - // { - // return useVersioning; - // } - //} - //public void setVersioning(bool versioning) - //{ - // lock(this) - // { - // useVersioning=versioning; - // } - //} public String GetUserAgent() { lock(this) diff --git a/MarketDataUnitTests/.vs/MarketDataUnitTests/v16/.suo b/MarketDataUnitTests/.vs/MarketDataUnitTests/v16/.suo index 4ba85e0..8f4e31b 100644 Binary files a/MarketDataUnitTests/.vs/MarketDataUnitTests/v16/.suo and b/MarketDataUnitTests/.vs/MarketDataUnitTests/v16/.suo differ diff --git a/MarketDataUnitTests/App.config b/MarketDataUnitTests/App.config index 7376f6f..992ee85 100644 --- a/MarketDataUnitTests/App.config +++ b/MarketDataUnitTests/App.config @@ -6,7 +6,6 @@ - @@ -16,10 +15,8 @@ - - - + diff --git a/MarketDataUnitTests/MarketDataFeedTests.cs b/MarketDataUnitTests/MarketDataFeedTests.cs index 3cf0c89..125590b 100644 --- a/MarketDataUnitTests/MarketDataFeedTests.cs +++ b/MarketDataUnitTests/MarketDataFeedTests.cs @@ -241,15 +241,16 @@ namespace MarketDataUnitTests } // Test MarketWatch feed +// https://www.marketwatch.com/investing/stock/AAPL?mod=search_symbol [TestMethod] public void HeadlinesMarketWatchRetrieval() { - String symbol="AAPL"; + String symbol="MIDD"; Headlines companyHeadlines = MarketDataHelper.GetCompanyHeadlinesMarketWatch(symbol); Assert.IsTrue(null!=companyHeadlines && companyHeadlines.Count>0); } -// Test NASDAQ feed +// Test NASDAQ Headlines feed [TestMethod] public void HeadlinesNASDAQRetrieval() { @@ -258,6 +259,16 @@ namespace MarketDataUnitTests Assert.IsTrue(null!=companyHeadlines && companyHeadlines.Count>0); } +// Test SEEKING ALPHA Headlines feed + [TestMethod] + public void HeadlinesSeekingAlphaRetrieval() + { + String symbol="AAPL"; + Headlines companyHeadlines = MarketDataHelper.GetCompanyHeadlinesSeekingAlpha(symbol); + Assert.IsTrue(null!=companyHeadlines && companyHeadlines.Count>0); + } + + [TestMethod] public void AnalystPriceTargetMarketBeatRetrieval() { diff --git a/Program.cs b/Program.cs index ed9f544..01201c5 100644 --- a/Program.cs +++ b/Program.cs @@ -3654,27 +3654,6 @@ namespace MarketData } } - //private static void LoadPremarketData() - //{ - // PremarketElements premarketElements=MarketDataHelper.GetPremarketData(); - // if(null==premarketElements||0==premarketElements.Count) - // { - // try{Thread.Sleep(5000);}catch(Exception){;} - // premarketElements=MarketDataHelper.GetPremarketData(); - // if(null==premarketElements||0==premarketElements.Count) - // { - // MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Failed to retrieve premarket data.")); - // return; - // } - // } - // PremarketDA.AddElements(premarketElements); - // foreach(PremarketElement premarketElement in premarketElements) - // { - // MDTrace.WriteLine(LogLevel.DEBUG,String.Format("{0} {1} {2}",premarketElement.Market,Utility.FormatNumber(premarketElement.ChangeValue),Utility.FormatPercent(premarketElement.ChangePercent/100.00))); - // } - //} - - private static void LoadHeadlinesWatchList(String watchList) { MDTrace.WriteLine(LogLevel.DEBUG,String.Format("LoadHeadlinesWatchList {0}",watchList)); @@ -3691,21 +3670,6 @@ namespace MarketData headlinesMarketDataHelper.LoadHeadlines(); } - //private static void LoadHeadlinesWatchList(String watchList) - //{ - // MDTrace.WriteLine(LogLevel.DEBUG,String.Format("LoadHeadlinesWatchList {0}",watchList)); - // List symbols = WatchListDA.GetWatchList(watchList); - // foreach(String symbol in symbols) - // { - // LoadHeadlinesSymbol(symbol); - // Thread.Sleep(500); - // } - //} - //private static void LoadHeadlinesSymbol(String symbol) - //{ - // HeadlinesMarketDataHelper headlinesMarketDataHelper= new HeadlinesMarketDataHelper(); - // headlinesMarketDataHelper.LoadHeadlines(); - //} // ******************** public class Item { diff --git a/bin/Debug/Axiom.Core.dll b/bin/Debug/Axiom.Core.dll index 3e8f69b..2e2c6ae 100644 Binary files a/bin/Debug/Axiom.Core.dll and b/bin/Debug/Axiom.Core.dll differ diff --git a/bin/Debug/Axiom.Core.pdb b/bin/Debug/Axiom.Core.pdb index 0d9c914..c1d622c 100644 Binary files a/bin/Debug/Axiom.Core.pdb and b/bin/Debug/Axiom.Core.pdb differ diff --git a/bin/Debug/MarketDataLib.dll b/bin/Debug/MarketDataLib.dll index 93d6589..38035ab 100644 Binary files a/bin/Debug/MarketDataLib.dll and b/bin/Debug/MarketDataLib.dll differ diff --git a/bin/Debug/MarketDataLib.pdb b/bin/Debug/MarketDataLib.pdb index 813e433..709d9ee 100644 Binary files a/bin/Debug/MarketDataLib.pdb and b/bin/Debug/MarketDataLib.pdb differ diff --git a/bin/Debug/mk.exe b/bin/Debug/mk.exe index bc0225b..35f99d3 100644 Binary files a/bin/Debug/mk.exe and b/bin/Debug/mk.exe differ diff --git a/bin/Debug/mk.pdb b/bin/Debug/mk.pdb index 5c6f4f6..69b9749 100644 Binary files a/bin/Debug/mk.pdb and b/bin/Debug/mk.pdb differ diff --git a/bin/Debug/mk.vshost.exe.config b/bin/Debug/mk.vshost.exe.config index 5ff82cb..666005c 100644 --- a/bin/Debug/mk.vshost.exe.config +++ b/bin/Debug/mk.vshost.exe.config @@ -15,7 +15,6 @@ - diff --git a/bin/Debug/saferun/.gitignore b/bin/Debug/saferun/.gitignore index ef339a2..01ae2d7 100644 --- a/bin/Debug/saferun/.gitignore +++ b/bin/Debug/saferun/.gitignore @@ -2,3 +2,4 @@ marketdata.log /*.log /marketdata.log +/fundamentals_session.txt diff --git a/bin/Debug/saferun/Axiom.Core.dll b/bin/Debug/saferun/Axiom.Core.dll index 3e8f69b..2e2c6ae 100644 Binary files a/bin/Debug/saferun/Axiom.Core.dll and b/bin/Debug/saferun/Axiom.Core.dll differ diff --git a/bin/Debug/saferun/CMT20200817.txt b/bin/Debug/saferun/CMT20200817.txt index b1de570..25f0114 100644 --- a/bin/Debug/saferun/CMT20200817.txt +++ b/bin/Debug/saferun/CMT20200817.txt @@ -1,19 +1,19 @@ CMTSESSIONv1.00 -LastUpdated=3/13/2024 08:30:05 PM -TradeDate=3/13/2024 +LastUpdated=3/16/2024 01:20:55 AM +TradeDate=3/15/2024 StartDate=1/1/0001 -AnalysisDate=3/13/2024 +AnalysisDate=3/16/2024 CashBalance=935.52 NonTradeableCash=6121.73 -SuspendTrading=False|UsePriceSlopeIndicator=True|UsePriceSlopeIndicatorDays=252|AnalysisDate=3/13/2024|BetaMonths=6|TradeDate=3/13/2024|MarketCapLowerLimit=500000000|SidewaysDetection=False|SidewaysAfterDays=30|PriceTrendDays=20|CheckOutliersInReturnStream=True|DailyReturnLimit=0.25|MaxDailyPositions=3|MaxOpenPositions=6|NoTradeSymbols=CODYY,MARUY,CSTM,CS,NATI,QADA,CRTO,GTBIF,CLCT,PRSC,CMD,STAY,GBTC,YOKU,PNY,RFMD,ASAZY,USMO,VNR,STB,XIV,SYNT,DFP|OnlyTradeSymbols=|MinRSI=70|InitialCash=10000|TotalRiskPercentDecimal=0.05|PositionRiskPercentDecimal=0.12|EquityOnly=False|MinPercentReturnProximityTo52WeekHigh=30|MinPercentReturnOver52WeekLow=80|ProfitMarginCheck=True|EPSCheck=True|MinDaysBetweenReholding=30|LiquidityCheck=True|MinVolume=1000|DMA200Horizon=15|MinDaysBetweenStopAdjustments=30|MinDaysBetweenInitialStopAdjustment=5|MaxPricingExceptions=3|MACDSetup=(12,26,9)|MACDSignalDays=5|MACDRejectStrongSells=True|MACDRejectWeakSells=True|UseMarketIndicator=True|Benchmark=SPY|BenchmarkMovingAverageDays=200|BenchmarkMovingAverageHorizon=5|UseMarketIndicatorVolatility=True|UseMarketIndicatorVolatilityHorizon=60|UseMarketIndicatorVolatilityBenchmark=^VIX|UseStopLimitScaling=True|StopLimitScalingType=AverageTrueRange|StopLimitScalingVolatilityDays=30|SellOnDMABreak=True|DMABreakValues=200|DMABreakForceBreak=False|EntryType=OverExtended,MVP,PriceTrend,VolumeTrend|EntryHorizon=30|CandidateExpiryDays=180|VolumeTrendDays=10|ChannelBreakoutHorizon=40|UseOverExtendedIndicatorDays=45|UseOverExtendedIndicatorViolationThreshhold=1|UseOverExtendedIndicatorMarginPercent=1|MaxBeta=10|UseMaxBeta=False|UseProfitMaximization=True|UseProfitMaximizationExpression=R_THRESSHOLD=4;MAX_ATR=3;MULTIPLIER=MAX_ATR;IF(RMultiple>=R_THRESSHOLD){MULTIPLIER=1.2;}|UseTradeOnlySectors=True|UseTradeOnlySectorsSectors=Healthcare,Technology,Basic Materials,Consumer Defensive,Industrials +SuspendTrading=False|UsePriceSlopeIndicator=True|UsePriceSlopeIndicatorDays=252|AnalysisDate=3/16/2024|BetaMonths=6|TradeDate=3/15/2024|MarketCapLowerLimit=500000000|SidewaysDetection=False|SidewaysAfterDays=30|PriceTrendDays=20|CheckOutliersInReturnStream=True|DailyReturnLimit=0.25|MaxDailyPositions=3|MaxOpenPositions=6|NoTradeSymbols=CODYY,MARUY,CSTM,CS,NATI,QADA,CRTO,GTBIF,CLCT,PRSC,CMD,STAY,GBTC,YOKU,PNY,RFMD,ASAZY,USMO,VNR,STB,XIV,SYNT,DFP|OnlyTradeSymbols=|MinRSI=70|InitialCash=10000|TotalRiskPercentDecimal=0.05|PositionRiskPercentDecimal=0.12|EquityOnly=False|MinPercentReturnProximityTo52WeekHigh=30|MinPercentReturnOver52WeekLow=80|ProfitMarginCheck=True|EPSCheck=True|MinDaysBetweenReholding=30|LiquidityCheck=True|MinVolume=1000|DMA200Horizon=15|MinDaysBetweenStopAdjustments=30|MinDaysBetweenInitialStopAdjustment=5|MaxPricingExceptions=3|MACDSetup=(12,26,9)|MACDSignalDays=5|MACDRejectStrongSells=True|MACDRejectWeakSells=True|UseMarketIndicator=True|Benchmark=SPY|BenchmarkMovingAverageDays=200|BenchmarkMovingAverageHorizon=5|UseMarketIndicatorVolatility=True|UseMarketIndicatorVolatilityHorizon=60|UseMarketIndicatorVolatilityBenchmark=^VIX|UseStopLimitScaling=True|StopLimitScalingType=AverageTrueRange|StopLimitScalingVolatilityDays=30|SellOnDMABreak=True|DMABreakValues=200|DMABreakForceBreak=False|EntryType=OverExtended,MVP,PriceTrend,VolumeTrend|EntryHorizon=30|CandidateExpiryDays=180|VolumeTrendDays=10|ChannelBreakoutHorizon=40|UseOverExtendedIndicatorDays=45|UseOverExtendedIndicatorViolationThreshhold=1|UseOverExtendedIndicatorMarginPercent=1|MaxBeta=10|UseMaxBeta=False|UseProfitMaximization=True|UseProfitMaximizationExpression=R_THRESSHOLD=4;MAX_ATR=3;MULTIPLIER=MAX_ATR;IF(RMultiple>=R_THRESSHOLD){MULTIPLIER=1.2;}|UseTradeOnlySectors=True|UseTradeOnlySectorsSectors=Healthcare,Technology,Basic Materials,Consumer Defensive,Industrials PricingExceptions=0 TotalActivePositions=6 -Symbol=AVGO|PurchaseDate=10/13/2023 12:00:00 AM|SellDate=1/1/0001 12:00:00 AM|Shares=1|PurchasePrice=890.97|CurrentPrice=1257.87|Exposure=890.97|MarketValue=1257.87|GainLoss=366.9|GainLossPcnt=0.411798377049732|PositionRiskDecimal=0.12|R=105.9816|C=109.885485794067|P=1.0368355053525|InitialStopLimit=784.05|TrailingStopLimit=1182.1635710907|TotalRiskExposure=105.9816|RMultiple=3.46R|Volatility=19.4005393981934|Volume=0|LastStopAdjustment=2/22/2024 12:00:00 AM|Comment=Price changed on 10/16/2023 from $883.18 to $890.97 -Symbol=APG|PurchaseDate=11/8/2023 12:00:00 AM|SellDate=1/1/0001 12:00:00 AM|Shares=77|PurchasePrice=27.08|CurrentPrice=38.5|Exposure=2085.16|MarketValue=2964.5|GainLoss=879.34|GainLossPcnt=0.421713441654358|PositionRiskDecimal=0.12|R=3.2304|C=250.186|P=77.4473749380882|InitialStopLimit=23.83|TrailingStopLimit=31.5525711941719|TotalRiskExposure=248.7408|RMultiple=3.54R|Volatility=1.05591440200806|Volume=0|LastStopAdjustment=2/29/2024 12:00:00 AM|Comment=Price changed on 11/9/2023 from $26.92 to $27.08 -Symbol=CLS|PurchaseDate=1/4/2024 12:00:00 AM|SellDate=1/1/0001 12:00:00 AM|Shares=32|PurchasePrice=27.92|CurrentPrice=45.03|Exposure=893.44|MarketValue=1440.96|GainLoss=547.52|GainLossPcnt=0.612822349570201|PositionRiskDecimal=0.12|R=3.3504|C=107.5275|P=32.0939290830946|InitialStopLimit=24.5696|TrailingStopLimit=40.0599142551422|TotalRiskExposure=107.2128|RMultiple=5.11R|Volatility=0.907680511474609|Volume=0|LastStopAdjustment=3/11/2024 12:00:00 AM -Symbol=FTAI|PurchaseDate=1/23/2024 12:00:00 AM|SellDate=1/1/0001 12:00:00 AM|Shares=14|PurchasePrice=51|CurrentPrice=58.33|Exposure=714|MarketValue=816.62|GainLoss=102.62|GainLossPcnt=0.143725490196078|PositionRiskDecimal=0.12|R=6.036|C=85.6855|P=14.1957422133863|InitialStopLimit=44.88|TrailingStopLimit=51.4342853832245|TotalRiskExposure=84.504|RMultiple=1.21R|Volatility=1.01389157772064|Volume=0|LastStopAdjustment=2/28/2024 12:00:00 AM|Comment=Price changed on 1/24/2024 from $50.30 to $51.00 -Symbol=NEU|PurchaseDate=2/20/2024 12:00:00 AM|SellDate=1/1/0001 12:00:00 AM|Shares=1|PurchasePrice=609.01|CurrentPrice=615.44|Exposure=609.01|MarketValue=615.44|GainLoss=6.43000000000006|GainLossPcnt=0.0105581189143036|PositionRiskDecimal=0.12|R=73.0956|C=73.588|P=1.00673638358533|InitialStopLimit=535.93|TrailingStopLimit=584.230923309326|TotalRiskExposure=73.0956|RMultiple=0.09R|Volatility=10.5676956176758|Volume=0|LastStopAdjustment=2/26/2024 12:00:00 AM|Comment=Price changed on 2/21/2024 from $609.13 to $609.01 -Symbol=KTOS|PurchaseDate=2/23/2024 12:00:00 AM|SellDate=1/1/0001 12:00:00 AM|Shares=30|PurchasePrice=17.94|CurrentPrice=17.54|Exposure=538.2|MarketValue=526.2|GainLoss=-12.0000000000001|GainLossPcnt=-0.0222965440356747|PositionRiskDecimal=0.12|R=2.4216|C=73.686|P=30.4286422200198|InitialStopLimit=15.79|TrailingStopLimit=16.3189284300804|TotalRiskExposure=72.648|RMultiple=-0.17R|Volatility=0.288610696792603|Volume=0|LastStopAdjustment=2/28/2024 12:00:00 AM|Comment=Price changed on 2/23/2024 from $20.18 to $17.94 +Symbol=AVGO|PurchaseDate=10/13/2023 12:00:00 AM|SellDate=1/1/0001 12:00:00 AM|Shares=1|PurchasePrice=890.97|CurrentPrice=1235.5|Exposure=890.97|MarketValue=1235.5|GainLoss=344.53|GainLossPcnt=0.38669090990718|PositionRiskDecimal=0.12|R=105.9816|C=109.885485794067|P=1.0368355053525|InitialStopLimit=784.05|TrailingStopLimit=1182.1635710907|TotalRiskExposure=105.9816|RMultiple=3.25R|Volatility=19.4005393981934|Volume=0|LastStopAdjustment=2/22/2024 12:00:00 AM|Comment=Price changed on 10/16/2023 from $883.18 to $890.97 +Symbol=APG|PurchaseDate=11/8/2023 12:00:00 AM|SellDate=1/1/0001 12:00:00 AM|Shares=77|PurchasePrice=27.08|CurrentPrice=38.05|Exposure=2085.16|MarketValue=2929.85|GainLoss=844.69|GainLossPcnt=0.405096011816839|PositionRiskDecimal=0.12|R=3.2304|C=250.186|P=77.4473749380882|InitialStopLimit=23.83|TrailingStopLimit=31.5525711941719|TotalRiskExposure=248.7408|RMultiple=3.40R|Volatility=1.05591440200806|Volume=0|LastStopAdjustment=2/29/2024 12:00:00 AM|Comment=Price changed on 11/9/2023 from $26.92 to $27.08 +Symbol=CLS|PurchaseDate=1/4/2024 12:00:00 AM|SellDate=1/1/0001 12:00:00 AM|Shares=32|PurchasePrice=27.92|CurrentPrice=43.97|Exposure=893.44|MarketValue=1407.04|GainLoss=513.6|GainLossPcnt=0.574856733524355|PositionRiskDecimal=0.12|R=3.3504|C=107.5275|P=32.0939290830946|InitialStopLimit=24.5696|TrailingStopLimit=40.0599142551422|TotalRiskExposure=107.2128|RMultiple=4.79R|Volatility=0.907680511474609|Volume=0|LastStopAdjustment=3/11/2024 12:00:00 AM +Symbol=FTAI|PurchaseDate=1/23/2024 12:00:00 AM|SellDate=1/1/0001 12:00:00 AM|Shares=14|PurchasePrice=51|CurrentPrice=60.04|Exposure=714|MarketValue=840.56|GainLoss=126.56|GainLossPcnt=0.177254901960784|PositionRiskDecimal=0.12|R=6.036|C=85.6855|P=14.1957422133863|InitialStopLimit=44.88|TrailingStopLimit=51.4342853832245|TotalRiskExposure=84.504|RMultiple=1.50R|Volatility=1.01389157772064|Volume=0|LastStopAdjustment=2/28/2024 12:00:00 AM|Comment=Price changed on 1/24/2024 from $50.30 to $51.00 +Symbol=NEU|PurchaseDate=2/20/2024 12:00:00 AM|SellDate=1/1/0001 12:00:00 AM|Shares=1|PurchasePrice=609.01|CurrentPrice=622.74|Exposure=609.01|MarketValue=622.74|GainLoss=13.73|GainLossPcnt=0.0225447857999048|PositionRiskDecimal=0.12|R=73.0956|C=73.588|P=1.00673638358533|InitialStopLimit=535.93|TrailingStopLimit=584.230923309326|TotalRiskExposure=73.0956|RMultiple=0.19R|Volatility=10.5676956176758|Volume=0|LastStopAdjustment=2/26/2024 12:00:00 AM|Comment=Price changed on 2/21/2024 from $609.13 to $609.01 +Symbol=KTOS|PurchaseDate=2/23/2024 12:00:00 AM|SellDate=1/1/0001 12:00:00 AM|Shares=30|PurchasePrice=17.94|CurrentPrice=17.1|Exposure=538.2|MarketValue=513|GainLoss=-25.2|GainLossPcnt=-0.0468227424749165|PositionRiskDecimal=0.12|R=2.4216|C=73.686|P=30.4286422200198|InitialStopLimit=15.79|TrailingStopLimit=16.3189284300804|TotalRiskExposure=72.648|RMultiple=-0.35R|Volatility=0.288610696792603|Volume=0|LastStopAdjustment=2/28/2024 12:00:00 AM|Comment=Price changed on 2/23/2024 from $20.18 to $17.94 TotalPositions=93 Symbol=CDNS|PurchaseDate=8/25/2020 12:00:00 AM|SellDate=9/3/2020 12:00:00 AM|Shares=16|PurchasePrice=111.82|CurrentPrice=109.57|Exposure=1789.12|MarketValue=1753.12|GainLoss=-36|GainLossPcnt=-0.0201216240386335|PositionRiskDecimal=0.12|R=13.3512|C=225.6365|P=16.9000913775541|InitialStopLimit=97.9088|TrailingStopLimit=109.599856939316|TotalRiskExposure=213.6192|RMultiple=-0.17R|Volatility=2.3209912776947|Volume=1767980|LastStopAdjustment=9/2/2020 12:00:00 AM|Comment=Manual close. Symbol=LULU|PurchaseDate=8/28/2020 12:00:00 AM|SellDate=9/4/2020 12:00:00 AM|Shares=3|PurchasePrice=377.5|CurrentPrice=370.23|Exposure=1132.5|MarketValue=1110.69|GainLoss=-21.8099999999999|GainLossPcnt=-0.0192582781456953|PositionRiskDecimal=0.12|R=45.2976|C=136.6285|P=3.01624147857723|InitialStopLimit=332.1824|TrailingStopLimit=372.562428512573|TotalRiskExposure=135.8928|RMultiple=-0.16R|Volatility=25.858959197998|Volume=2871665|LastStopAdjustment=9/2/2020 12:00:00 AM|Comment=Manual close. diff --git a/bin/Debug/saferun/MarketDataLib.dll b/bin/Debug/saferun/MarketDataLib.dll index 93d6589..38035ab 100644 Binary files a/bin/Debug/saferun/MarketDataLib.dll and b/bin/Debug/saferun/MarketDataLib.dll differ diff --git a/bin/Debug/saferun/fundamentals_session.txt b/bin/Debug/saferun/fundamentals_session.txt index b3db228..cb44d10 100644 --- a/bin/Debug/saferun/fundamentals_session.txt +++ b/bin/Debug/saferun/fundamentals_session.txt @@ -1 +1,1533 @@ +^FTSE +^VIX +A +AA +AACAY +AACT +AADI +AAGIY +AAL +AAME +AAN +AAOI +AAON +AAP AAPL +AAT +AB +ABBNY +ABBV +ABC +ABCB +ABCL +ABEO +ABEV +ABG +ABIO +ABM +ABNB +ABOS +ABR +ABSI +ABSSF +ABT +ABUS +ACA +ACAB +ACAC +ACAD +ACB +ACCD +ACCO +ACDC +ACDVF +ACEL +ACES +ACET +ACGL +ACHC +ACHV +ACI +ACIC +ACIM +ACIU +ACIW +ACLLF +ACLS +ACLX +ACM +ACMR +ACN +ACNB +ACON +ACOR +ACRE +ACRFF +ACRS +ACRV +ACRX +ACST +ACT +ACTG +ACU +ACUR +ACVA +ACWX +ACXP +ADAP +ADBE +ADC +ADCT +ADES +ADI +ADIL +ADM +ADMA +ADN +ADNT +ADOC +ADP +ADPT +ADRNY +ADSE +ADSK +ADT +ADTH +ADTN +ADTX +ADUS +ADV +ADVM +AE +AEE +AEG +AEHR +AEIS +AEL +AEM +AEMD +AEO +AEP +AER +AES +AESI +AETUF +AEVA +AEXAY +AEY +AEYE +AEZS +AFAR +AFCG +AFFY +AFG +AFIB +AFL +AFMD +AFRM +AFYA +AG +AGCO +AGEN +AGESY +AGFY +AGG +AGI +AGIO +AGL +AGLE +AGM +AGNC +AGNCP +AGO +AGQ +AGR +AGRI +AGRO +AGRX +AGS +AGTI +AGX +AGYS +AHCO +AHEXY +AHH +AHI +AHOTF +AHT +AI +AIB +AIG +AIHS +AIN +AINC +AIP +AIQUY +AIR +AIRC +AIRG +AIRI +AIRS +AIRT +AIRYY +AIT +AIV +AIXI +AIXXF +AIZ +AJG +AJMPF +AJX +AKA +AKAAF +AKAM +AKAN +AKBA +AKR +AKRO +AKRTF +AKTS +AKTX +AKYA +AL +ALB +ALBKY +ALC +ALCO +ALCY +ALDX +ALE +ALEC +ALEX +ALFA +ALG +ALGM +ALGN +ALGS +ALGT +ALHC +ALIM +ALK +ALKS +ALKT +ALL +ALLE +ALLK +ALLO +ALLT +ALLY +ALNT +ALNY +ALOT +ALPMY +ALPN +ALRM +ALRN +ALRS +ALSN +ALSSF +ALT +ALTG +ALTI +ALTM +ALTR +ALTU +ALV +ALVO +ALVR +ALX +ALXO +ALZN +AM +AMADY +AMAL +AMAT +AMBA +AMBC +AMBO +AMBP +AMBS +AMC +AMCF +AMCR +AMCX +AMD +AME +AMED +AMG +AMGN +AMH +AMFPF +AMID +AMIGY +AMJ +AMJL +AMK +AMKBY +AMKR +AMLP +AMLX +AMN +AMNB +AMOT +AMP +AMPE +AMPH +AMPL +AMPS +AMPY +AMR +AMRC +AMRK +AMRN +AMRX +AMSC +AMSF +AMST +AMSWA +AMT +AMTB +AMTD +AMTX +AMU +AMUB +AMWD +AMWL +AMX +AMZN +AN +ANAB +ANDE +ANEB +ANET +ANF +ANGI +ANGL +ANGO +ANIK +ANIP +ANNSF +ANNX +ANSS +ANTX +ANVS +ANTH +ANY +AOK +AOMR +AON +AORT +AOS +AOSL +AOUT +AP +APA +APAM +APD +APDN +APEI +APG +APGE +APH +API +APLE +APLS +APLT +APO +APOG +APP +APPF +APMSF +APPN +APPS +APRE +APTO +APTV +APVO +APWC +APYX +AQB +AQMS +AQN +AQST +AQU +AR +ARAY +ARBB +ARBE +ARBK +ARC +ARCB +ARCC +ARCH +ARCO +ARCT +ARDC +ARDX +ARE +ARES +ARGX +ARHS +ARI +ARIS +ARKO +ARKR +ARLO +ARLP +ARM +ARMK +ARMP +AROC +AROW +ARQT +ARR +ARRY +ARTNA +ARTW +ARVN +ARVR +ARW +ARWR +ASAI +ASAN +ASB +ASC +ASCA +ASCB +ASGN +ASH +ASHTF +ASIX +ASLE +ASLN +ASM +ASMB +ASML +ASND +ASNS +ASO +ASPI +ASPN +ASPS +ASPU +ASR +ASRT +ASRV +ASST +ASTC +ASTE +ASTI +ASTL +ASTR +ASUR +ASX +ASXC +ASYS +ATAI +ATAK +ATAT +ATEC +ATEN +ATER +ATEX +ATGE +ATGFF +ATHA +ATHM +ATI +ATIP +ATKR +ATLC +ATLO +ATMC +ATMU +ATNI +ATNM +ATO +ATOM +ATOS +ATR +ATRA +ATRC +ATRI +ATRO +ATS +ATSG +ATTBF +ATUS +AU +AUB +AUBN +AUDC +AUGR +AUKUF +AUMN +AUPH +AUR +AURA +AUST +AUTL +AUVI +AVA +AVAH +AVAL +AVAV +AVB +AVD +AVDL +AVDX +AVGO +AVGR +AVHI +AVIR +AVNS +AVNT +AVNW +AVO +AVPT +AVRO +AVT +AVTE +AVTR +AVVIY +AVXL +AVY +AWH +AWI +AWK +AWR +AWRE +AX +AXDX +AXGN +AXL +AXNX +AXON +AXP +AXS +AXSM +AXTA +AXTI +AY +AYI +AYTU +AYX +AZEK +AZIA +AZN +AZN.L +AZO +AZPN +AZTA +AZTR +AZUL +AZYO +AZZ +B +BA +BABA +BABS +BAC +BADFF +BAESY +BAH +BAK +BALL +BALY +BAM +BANC +BAND +BANF +BANL +BANR +BANX +BAP +BARK +BASE +BATL +BATRA +BATT +BAX +BAYRY +BB +BBAI +BBAR +BBC +BBCP +BBD +BBDC +BBGI +BBH +BBIO +BBP +BBRC +BBRE +BBSI +BBU +BBVA +BBW +BBWI +BBY +BC +BCAB +BCBP +BCC +BCDA +BCE +BCEL +BCH +BCLI +BCML +BCO +BCOV +BCPC +BCRX +BCS +BCSF +BCYC +BDC +BDCS +BDCZ +BDN +BDRBF +BDRFF +BDSX +BDIMF +BDTX +BDX +BE +BEAM +BDORY +BEAT +BECN +BEDU +BEEM +BEKE +BELFB +BEN +BEP +BEKAY +BEPC +BERY +BEST +BELFA +BETR +BFAM +BFC +BFH +BFIN +BFLY +BFRG +BFRI +BFS +BFST +BG +BGB +BGC +BGFV +BGH +BGNE +BGAOY +BGS +BGSF +BGXX +BH +BHB +BHC +BHE +BHF +BHG +BHIL +BHLB +BHP +BHR +BHVN +BIAF +BIDU +BIG +BIGC +BIIB +BIICX +BIL +BILI +BILL +BIO +BIOCON.NS +BIOF +BIOL +BIP +BIPC +BIRD +BIREF +BITO +BIV +BJ +BJDX +BJK +BJRI +BK +BKCC +BKD +BKE +BKH +BKEAY +BKNG +BKNIY +BKOR +BKR +BKRKF +BKSC +BKU +BKYI +BL +BLAC +BLBD +BLCM +BLCO +BLD +BLDP +BLDR +BLFS +BLFY +BLIN +BLK +BLKB +BLMN +BLND +BLNK +BLPH +BLRX +BLTE +BLUE +BLV +BLX +BLZE +BMA +BMBL +BMEA +BMI +BMLP +BMO +BMR +BMRA +BMDPF +BMRC +BMRN +BMWYY +BMY +BN +BND +BNDSF +BNED +BNEFF +BNL +BNO +BNOX +BNPC +BNPQY +BNR +BNRG +BNS +BNTC +BNTGF +BNTX +BODY +BOF +BOH +BOIVF +BOKF +BOLT +BON +BOND +BOOM +BOOT +BORR +BOSC +BOSSY +BOTJ +BOUYY +BOWFF +BOX +BOXL +BP +BPIRY +BPMC +BPOP +BPRN +BPTH +BQ +BR +BRAC +BRAF +BRAG +BRBR +BRC +BRCC +BRDG +BREA +BREZ +BRFS +BRID +BRKL +BRKR +BRLT +BRO +BROS +BRP +BRSH +BRSP +BRT +BRX +BRY +BRZE +BRZS +BSAC +BSBR +BSCI +BSCJ +BSCK +BSCL +BSCM +BSET +BSIG +BSJG +BSJH +BSJI +BSJJ +BSJK +BSM +BSRR +BSV +BSVN +BSX +BSY +BTAI +BTBD +BTCY +BTDPF +BTE +BTEC +BTG +BTGOF +BTI +BTLCY +BTSG +BTT +BTU +BUD +BUFF +BUNL +BUR +BURBY +BURL +BUSE +BUY +BUYN +BV +BVH +BVHMF +BVN +BVNRY +BVRDF +BVS +BW +BWA +BWAQ +BWAY +BWB +BWEN +BWFG +BWG +BWMN +BWV +BWX +BWXT +BX +BXC +BXMT +BXP +BXSL +BY +BYD +BYFC +BYN +BYND +BYNO +BYON +BYSI +BZ +BZFD +BZH +BZLFY +BZUN +BZZUY +C +CA +CAAP +CAAS +CABA +CABGY +CABO +CAC +CACC +CACI +CADE +CADL +CAE +CAFI +CAG +CAH +CAIXY +CAKE +CAL +CALB +CALM +CALT +CALX +CAMP +CAMT +CANE +CANF +CANG +CANO +CAPL +CAPR +CAR +CARA +CARE +CARG +CARM +CARR +CARS +CART +CARV +CASA +CASH +CASI +CASS +CASY +CAT +CATC +CATO +CATY +CAVA +CB +CBA +CBAN +CBAUF +CBAY +CBD +CBFV +CBGPY +CBIO +CBL +CBNK +CBOE +CBRE +CBRL +CBSH +CBT +CBU +CBWBF +CBZ +CC +CCAP +CCB +CCBG +CCCC +CCCS +CCEP +CCG +CCHGY +CCI +CCJ +CCK +CCL +CCLP +CCNE +CCO +CCOEY +CCOI +CCOZY +CCRD +CCRN +CCS +CCSI +CCU +CCUR +CDAY +CDE +CDLX +CDMO +CDNA +CDNAF +CDNS +CDP +CDRE +CDTX +CDUAF +CDW +CDXC +CDXS +CDZI +CE +CDTI +CECO +CEFL +CEG +CEIX +CELC +CELH +CELU +CEN +CENT +CENTA +CENX +CEPU +CERE +CERS +CERT +CESDF +CETU +CETX +CEVA +CEW +CF +CFB +CFBK +CFFI +CFFN +CFG +CFLT +CFR +CFNB +CFT +CG +CGAU +CFRUY +CGBD +CGC +CGEM +CGEN +CGEAF +CGEMY +CGNT +CGNX +CGO +CGRO +CGTX +CHAD +CGUSY +CHCI +CHCO +CHCT +CHD +CHDN +CHE +CHEF +CHEK +CHGG +CHH +CHI +CHIE +CHII +CHIM +CHIQ +CHIX +CHK +CHKP +CHMG +CHMI +CHNA +CHNR +CHPT +CHRD +CHRS +CHRW +CHSN +CHT +CHTR +CHUY +CHW +CHWY +CHX +CHY +CI +CIA +CIB +CIBR +CIEN +CIFR +CIG +CIGI +CIM +CINF +CING +CINT +CIO +CION +CITE +CIU +CIVB +CIVI +CIX +CJJD +CKPT +CL +CLAR +CLB +CLBK +CLBT +CLDT +CLDX +CLEU +CLF +CLFD +CLH +CLIR +CLLS +CLMT +CLNE +CLNN +CLOV +CLPR +CLPS +CLRB +CLRC +CLRO +CLS +CLSD +CLSK +CLVT +CLW +CLWT +CLX +CM +CMA +CMAX +CMBM +CMBS +CMC +CMCL +CMCM +CMCO +CMCSA +CMDXF +CME +CMG +CMI +CMLS +CMP +CMPO +CMPR +CMPS +CMRE +CMRX +CMS +CMSQY +CMT +CMTG +CMTL +CNA +CNBS +CNC +CNCR +CNDF +CNDT +CNET +CNFR +CNGO +CNHI +CNI +CNK +CNM +CNMD +CNNE +CNNEF +CNO +CNOB +CNP +CNPF +CNQ +CNS +CNSL +CNSP +CNTA +CNTG +CNTX +CNTY +CNX +CNXC +CNXN +COBO +COCO +CODI +CODX +COE +COF +COGT +COHR +COHU +COIHY +COIN +COKE +COLB +COLD +COLL +COLM +COMM +COMP +CONN +CONX +COO +COOK +COOL +COOP +COP +COPX +COR +CORN +CORR +CORT +CORZ +COST +COTY +COUR +COW +COYA +CP +CPA +CPAC +CPB +CPCAY +CPE +CPER +CPF +CPG +CPHC +CPIX +CPK +CPLP +CPNG +CPOP +CPRI +CPRT +CPRX +CPS +CPSI +CPSS +CPT +CPTN +CPWR +CPXGF +CPXWF +CPYYY +CQP +CR +CRAI +CRAK +CRBG +CRBP +CRBU +CRC +CRCT +CRDO +CREG +CRESY +CRGY +CRH +CRI +CRIS +CRK +CRL +CRLBF +CRLFF +CRM +CRMD +CRMT +CRNC +CRNCY +CRNT +CRNX +CROC +CRON +CROP +CROX +CRS +CRSP +CRSR +CRTO +CRUS +CRVL +CRVS +CRWD +CRWS +CSAN +CSCO +CSGP +CSGS +CSIQ +CSJ +CSL +CSLM +CSPI +CSQ +CSR +CSRSX +CSSE +CSTE +CSTL +CSTM +CSTR +CSV +CSWC +CSWI +CSX +CTAS +CTBI +CTHR +CTIB +CTKB +CTLT +CTMX +CTO +CTR +CTRA +CTRE +CTRN +CTS +CTSH +CTSO +CTVA +CTTAY +CUBA +CUBE +CUBI +CUK +CULP +CURE +CURI +CURO +CURV +CUTR +CUZ +CVAC +CVBF +CVCO +CVCY +CURLF +CVE +CVEO +CVGI +CVGW +CVI +CVKD +CVLG +CVLT +CVLY +CVM +CVNA +CVRX +CVS +CVU +CVSI +CVV +CVX +CW +CWAN +CWBC +CWCO +CWD +CWEB +CWEN +CWBHF +CWH +CWK +CWST +CWT +CWEGF +CX +CXDO +CXM +CXW +CYB +CYBN +CYBR +CYCC +CYCN +CYH +CYN +CYCCP +CYGIY +CYRX +CYT +CYTK +CZFS +CZNC +CZOO +CZR +CZWI +D +DAC +DADA +DAIO +DAKT +DAL +DAN +DAO +DAR +DASH +DATS +DAVA +DAVE +DAWN +DAX +DB +DBA +DBB +DBC +DBD +DBEF +DBGI +DBI +DBO +DBP +DBRG +DBSDY +DBV +DBVT +DBX +DCBO +DCFC +DCI +DCO +DCOM +DCPH +DCTH +DD +DDC +DDD +DDG +DDI +DDL +DDOG +DDS +DE +DEA +DECA +DECK +DEI +DELL +DEM +DENN +DEO +DERM +DES +DESP +DFEN +DFFN +DFH +DFIN +DFLVX +DFNL +DFP +DFS +DG +DGAGX +DGAZ +DGICA +DGICB +DGII +DGLD +DGLY +DGRS +DGRW +DGX +DGZ +DH +DHC +DHI +DHIL +DHR +DHS +DHT +DHX +DIA +DIALF +DIBS +DIDIY +DIG +DIIBF +DIN +DINO +DIOD +DIS +DIST +DIV +DIVS +DJCO +DJP +DK +DKILY +DKL +DKNG +DKS +DLA +DLB +DLHC +DLMAF +DLN +DLNG +DLO +DLPN +DLR +DLTH +DLTR +DLX +DM +DMAC +DMB +DMLP +DMRC +DMTK +DMYY +DNA +DNB +DNKEY +DNLI +DNN +DNNGY +DNOW +DNUT +DNZOY +DO +DOC +DOCN +DOCS +DOCU +DOLE +DOMA +DOMO +DON +DOOO +DOOR +DORM +DOV +DOW +DOX +DOYU +DPST +DPZ +DQ +DRCT +DRD +DRH +DRI +DRIO +DRIP +DRMA +DRN +DROOF +DRQ +DRRX +DRTGF diff --git a/bin/Debug/saferun/mk.exe b/bin/Debug/saferun/mk.exe index bc0225b..35f99d3 100644 Binary files a/bin/Debug/saferun/mk.exe and b/bin/Debug/saferun/mk.exe differ diff --git a/bin/Debug/saferun/mk.exe.config b/bin/Debug/saferun/mk.exe.config index d5b9540..992ee85 100644 --- a/bin/Debug/saferun/mk.exe.config +++ b/bin/Debug/saferun/mk.exe.config @@ -5,18 +5,18 @@ - - - + + - + + - - - + + + diff --git a/bin/Debug/saferun/updatemonthly.bat b/bin/Debug/saferun/updatemonthly.bat index a0c8822..40422da 100644 --- a/bin/Debug/saferun/updatemonthly.bat +++ b/bin/Debug/saferun/updatemonthly.bat @@ -1,8 +1,10 @@ REM SLEEP FOR 1 HOUR REM TIMEOUT /t 3600 /nobreak +REM TIMEOUT TAKES SECONDS +REM 4 HOURS IS 14,400 REM SLEEP FOR 5.75 HOURS -TIMEOUT /t 20700 /nobreak +TIMEOUT /t 14400 /nobreak start updatefinancialstatements.bat start updatefundamentals.bat start updatehistorical.bat