From 33320eae19e1014871f2021973ae50de78bda9a1 Mon Sep 17 00:00:00 2001 From: Sean Kessler Date: Mon, 1 Apr 2024 22:54:28 -0400 Subject: [PATCH] Testing --- MarketData.csproj.user | 2 +- MarketData.v12.suo | Bin 626176 -> 626176 bytes Program.cs | 72 +++++++++++++++++++++++++++++------------ 3 files changed, 52 insertions(+), 22 deletions(-) diff --git a/MarketData.csproj.user b/MarketData.csproj.user index 4078e29..998bb44 100644 --- a/MarketData.csproj.user +++ b/MarketData.csproj.user @@ -1,6 +1,6 @@  - UPDATEPRICES 08-21-2023 + RUNBACKTEST /STARTDATE:01-31-2018 /MAXPOSITIONS:3 /INITIALCASH:10000 /HOLDINGPERIOD:3 /INTRADAYMODE:FALSE /SESSIONFILE:MG20180131.TXT \ No newline at end of file diff --git a/MarketData.v12.suo b/MarketData.v12.suo index ae7295c496424391901896fc4f7499449504f749..c6937bb03cf2df4a402bcbf89a170e301dcf1c7f 100644 GIT binary patch delta 9591 zcmeHNdsvlK)<1i{`+eX2BI4n2L`1|BAtDMK2$YoYaPg9ngJ$G7=x{YPK|*xA;=#-s z$MHj6W10C7k#lm)4AIz55fOHAX3EHX8gm>%#_@B^4DpgVUcR*v(;BCzZ=UaYzCXTi z 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 diff --git a/Program.cs b/Program.cs index 61e03e6..21de1f8 100644 --- a/Program.cs +++ b/Program.cs @@ -534,33 +534,36 @@ namespace MarketData // ****************************************************************** C U M U L A T I V E G A I N L O S S ************************************************************* // ****************************************************************************************************************************************************************************** // This is a test of a new model to calculate the cumulate gain loss for the GainLoss Window - private static void RunModelPerformance() + private static void RunModelPerformance(String symbol=null, bool useDividends=false) { GainLossGeneratorCum gainLossGeneratorCum=new GainLossGeneratorCum(); GainLossGenerator gainLossGenerator=new GainLossGenerator(); PortfolioTrades portfolioTrades=PortfolioDA.GetTrades(); DividendPayments dividendPayments=null; + + String strPathFileNameCumulative=String.Format("model_performance_dividends_cumulative_{0}.csv",null==symbol?"ALL":symbol); + String strPathFileNameNonCumulative=String.Format("model_performance_dividends_non_cumulative_{0}.csv",null==symbol?"ALL":symbol); - String symbol="ANF"; // SPY - portfolioTrades = PortfolioDA.GetTrades(symbol); + if(null==symbol)portfolioTrades = PortfolioDA.GetTrades(); + else portfolioTrades = PortfolioDA.GetTrades(symbol); -// dividendPayments=DividendPaymentDA.GetDividendPayments(); -// portfolioTrades = new PortfolioTrades(portfolioTrades.Where(x => x.Symbol.Equals(symbol)).ToList()); - - String strPathFileNameCumulative=String.Format("model_performance_dividends_cumulative_{0}.csv",symbol); - String strPathFileNameNonCumulative=String.Format("model_performance_dividends_non_cumulative_{0}.csv",symbol); + if(useDividends) + { + if(null!=symbol)dividendPayments=DividendPaymentDA.GetDividendPaymentsForSymbol(symbol); + else dividendPayments=DividendPaymentDA.GetDividendPayments(); + } // Run the cumulative version TotalGainLossCollection totalGainLossCollectionCum=null; - if(null!=dividendPayments)gainLossGeneratorCum.GenerateTotalGainLossWithDividends(portfolioTrades,dividendPayments); - else gainLossGeneratorCum.GenerateTotalGainLoss(portfolioTrades); + if(null!=dividendPayments)totalGainLossCollectionCum=gainLossGeneratorCum.GenerateTotalGainLossWithDividends(portfolioTrades,dividendPayments); + else totalGainLossCollectionCum=gainLossGeneratorCum.GenerateTotalGainLoss(portfolioTrades); Console.WriteLine(String.Format("Writing Cumulative Model to {0}",strPathFileNameCumulative)); SaveCollection(strPathFileNameCumulative, "CUMULATIVE", totalGainLossCollectionCum); // Run the regular version TotalGainLossCollection totalGainLossCollection=null; - if(null!=dividendPayments)gainLossGenerator.GenerateTotalGainLossWithDividends(portfolioTrades,dividendPayments); - else gainLossGenerator.GenerateTotalGainLoss(portfolioTrades); + if(null!=dividendPayments)totalGainLossCollection=gainLossGenerator.GenerateTotalGainLossWithDividends(portfolioTrades,dividendPayments); + else totalGainLossCollection=gainLossGenerator.GenerateTotalGainLoss(portfolioTrades); Console.WriteLine(String.Format("Writing Non-Cumulative Model to {0}",strPathFileNameNonCumulative)); SaveCollection(strPathFileNameNonCumulative, "NON-CUMULATIVE",totalGainLossCollection); } @@ -619,15 +622,15 @@ namespace MarketData Trace.Listeners.Add(new TextWriterTraceListener(strLogFile)); DateTime currentDate=DateTime.Now; - RunModelPerformance(); - Console.ReadLine(); - return 0; + //RunModelPerformance("SPY"); + //Console.ReadLine(); + //return 0; - // Price price=MarketDataHelper.GetLatestPriceFidelity("AAPL"); + // Price price=MarketDataHelper.GetLatestPriceFidelity("AAPL"); - - DateTime maxHolidayDate=HolidayDA.GetMaxHolidayDate(); + + DateTime maxHolidayDate =HolidayDA.GetMaxHolidayDate(); if(currentDate>maxHolidayDate) { Console.WriteLine(String.Format("There are no holidays defined in the system. Add holidays for year {0} into marketholidays table",currentDate.Year)); @@ -2242,9 +2245,10 @@ namespace MarketData { try { - List symbols = WatchListDA.GetWatchList(watchListName); - PricingMarketDataHelper pricingMarketDataHelper=new PricingMarketDataHelper(); - pricingMarketDataHelper.UpdateLatestPrices(symbols); + if(!CheckRunCriteria())return; + List symbols = WatchListDA.GetWatchList(watchListName); + PricingMarketDataHelper pricingMarketDataHelper=new PricingMarketDataHelper(); + pricingMarketDataHelper.UpdateLatestPrices(symbols); } catch (Exception exception) { @@ -2255,6 +2259,7 @@ namespace MarketData { try { + if(!CheckRunCriteria())return; PortfolioTrades portfolioTrades=PortfolioDA.GetOpenTrades(); List symbols=(from PortfolioTrade portfolioTrade in portfolioTrades select portfolioTrade.Symbol).Distinct().ToList(); if(symbols.Any(x=>x.Equals("SPY")))symbols.Add("SH"); @@ -3678,6 +3683,7 @@ namespace MarketData int sleepTime=2000; PremarketElements premarketElements=null; + if(!CheckRunCriteria())return; for(int retry=0;retry symbols = WatchListDA.GetWatchList(watchList); HeadlinesMarketDataHelper headlinesMarketDataHelper= new HeadlinesMarketDataHelper();