diff --git a/Model/ModelPerformanceAggregator.cs b/Model/ModelPerformanceAggregator.cs index 7aafc21..76a16b2 100644 --- a/Model/ModelPerformanceAggregator.cs +++ b/Model/ModelPerformanceAggregator.cs @@ -40,28 +40,6 @@ namespace TradeBlotter.Model LocalPriceCache.GetInstance().RemoveDate(maxDate); List historicalDates=dateGenerator.GenerateHistoricalDates(minDate,maxDate); - - // Fix purchase date/sell date fall on weekend - //foreach(CMTPositionModel position in positions) - //{ - // if(dateGenerator.IsWeekend(position.PurchaseDate)) - // { - // while(true) - // { - // position.PurchaseDate=dateGenerator.GetNextBusinessDay(position.PurchaseDate); - // if(!HolidayDA.IsMarketHoliday(position.PurchaseDate)) break; - // } - // } - // if(dateGenerator.IsWeekend(position.SellDate)) - // { - // while(true) - // { - // position.SellDate=dateGenerator.GetNextBusinessDay(position.SellDate); - // if(!HolidayDA.IsMarketHoliday(position.SellDate)) break; - // } - // } - //} - foreach(DateTime currentDate in historicalDates) { IEnumerable openPositions=positions.Where(x => (x.PurchaseDate<=currentDate&&(!Utility.IsEpoch(x.SellDate)&&x.SellDate>currentDate))||(x.PurchaseDate<=currentDate&&Utility.IsEpoch(x.SellDate))).ToList(); @@ -71,14 +49,14 @@ namespace TradeBlotter.Model double gainLossClosedPositions=0.00; double exposure=0.00; double marketValue=0.00; - if(HolidayDA.IsMarketHoliday(currentDate)) continue; +// if(HolidayDA.IsMarketHoliday(currentDate)) continue; ModelPerformanceItem performanceItem=new ModelPerformanceItem(); foreach(CMTPositionModel openPosition in openPositions) { exposure+=openPosition.Shares*openPosition.PurchasePrice; if(!LocalPriceCache.GetInstance().ContainsPrice(openPosition.Symbol,currentDate)) { - Prices prices=PricingDA.GetPricesForward(openPosition.Symbol,currentDate,90); + Prices prices=PricingDA.GetPricesForward(openPosition.Symbol,currentDate,PricingDA.ForwardLookingDays); LocalPriceCache.GetInstance().Add(prices); } Price price=LocalPriceCache.GetInstance().GetPrice(openPosition.Symbol,currentDate); @@ -178,27 +156,6 @@ namespace TradeBlotter.Model LocalPriceCache.GetInstance().RemoveDate(maxDate); List historicalDates=dateGenerator.GenerateHistoricalDates(minDate,maxDate); - // Fix purchase date/sell date fall on weekend - //foreach(CMPositionModel position in positions) - //{ - // if(dateGenerator.IsWeekend(position.PurchaseDate)) - // { - // while(true) - // { - // position.PurchaseDate=dateGenerator.GetNextBusinessDay(position.PurchaseDate); - // if(!HolidayDA.IsMarketHoliday(position.PurchaseDate)) break; - // } - // } - // if(dateGenerator.IsWeekend(position.SellDate)) - // { - // while(true) - // { - // position.SellDate=dateGenerator.GetNextBusinessDay(position.SellDate); - // if(!HolidayDA.IsMarketHoliday(position.SellDate)) break; - // } - // } - //} - foreach(DateTime currentDate in historicalDates) { IEnumerable openPositions=positions.Where(x => (x.PurchaseDate<=currentDate&&(!Utility.IsEpoch(x.SellDate)&&x.SellDate>currentDate))||(x.PurchaseDate<=currentDate&&Utility.IsEpoch(x.SellDate))).ToList(); @@ -208,14 +165,14 @@ namespace TradeBlotter.Model double gainLossClosedPositions=0.00; double exposure=0.00; double marketValue=0.00; - if(HolidayDA.IsMarketHoliday(currentDate)) continue; +// if(HolidayDA.IsMarketHoliday(currentDate)) continue; ModelPerformanceItem performanceItem=new ModelPerformanceItem(); foreach(CMPositionModel openPosition in openPositions) { exposure+=openPosition.Shares*openPosition.PurchasePrice; if(!LocalPriceCache.GetInstance().ContainsPrice(openPosition.Symbol,currentDate)) { - Prices prices=PricingDA.GetPricesForward(openPosition.Symbol,currentDate,90); + Prices prices=PricingDA.GetPricesForward(openPosition.Symbol,currentDate,PricingDA.ForwardLookingDays); LocalPriceCache.GetInstance().Add(prices); } Price price=LocalPriceCache.GetInstance().GetPrice(openPosition.Symbol,currentDate); @@ -294,27 +251,6 @@ namespace TradeBlotter.Model LocalPriceCache.GetInstance().RemoveDate(maxDate); List historicalDates=dateGenerator.GenerateHistoricalDates(minDate,maxDate); - // Fix purchase date/sell date fall on weekend - //foreach(MGPositionModel position in positions) - //{ - // if(dateGenerator.IsWeekend(position.PurchaseDate)) - // { - // while(true) - // { - // position.PurchaseDate=dateGenerator.GetNextBusinessDay(position.PurchaseDate); - // if(!HolidayDA.IsMarketHoliday(position.PurchaseDate)) break; - // } - // } - // if(dateGenerator.IsWeekend(position.SellDate)) - // { - // while(true) - // { - // position.SellDate=dateGenerator.GetNextBusinessDay(position.SellDate); - // if(!HolidayDA.IsMarketHoliday(position.SellDate)) break; - // } - // } - //} - foreach(DateTime currentDate in historicalDates) { IEnumerable openPositions=positions.Where(x => (x.PurchaseDate<=currentDate&&(!Utility.IsEpoch(x.SellDate)&&x.SellDate>currentDate))||(x.PurchaseDate<=currentDate&&Utility.IsEpoch(x.SellDate))).ToList(); @@ -324,14 +260,14 @@ namespace TradeBlotter.Model double gainLossClosedPositions=0.00; double exposure=0.00; double marketValue=0.00; - if(HolidayDA.IsMarketHoliday(currentDate)) continue; +// if(HolidayDA.IsMarketHoliday(currentDate)) continue; ModelPerformanceItem performanceItem=new ModelPerformanceItem(); foreach(MGPositionModel openPosition in openPositions) { exposure+=openPosition.Shares*openPosition.PurchasePrice; if(!LocalPriceCache.GetInstance().ContainsPrice(openPosition.Symbol,currentDate)) { - Prices prices=PricingDA.GetPricesForward(openPosition.Symbol,currentDate,90); + Prices prices=PricingDA.GetPricesForward(openPosition.Symbol,currentDate,PricingDA.ForwardLookingDays); LocalPriceCache.GetInstance().Add(prices); } Price price=LocalPriceCache.GetInstance().GetPrice(openPosition.Symbol,currentDate); @@ -407,28 +343,6 @@ namespace TradeBlotter.Model LocalPriceCache.GetInstance().RemoveDate(maxDate); List historicalDates=dateGenerator.GenerateHistoricalDates(minDate,maxDate); - - // Fix purchase date/sell date fall on weekend - //foreach(MGSHPositionModel position in positions) - //{ - // if(dateGenerator.IsWeekend(position.PurchaseDate)) - // { - // while(true) - // { - // position.PurchaseDate=dateGenerator.GetNextBusinessDay(position.PurchaseDate); - // if(!HolidayDA.IsMarketHoliday(position.PurchaseDate)) break; - // } - // } - // if(dateGenerator.IsWeekend(position.SellDate)) - // { - // while(true) - // { - // position.SellDate=dateGenerator.GetNextBusinessDay(position.SellDate); - // if(!HolidayDA.IsMarketHoliday(position.SellDate)) break; - // } - // } - //} - foreach(DateTime currentDate in historicalDates) { IEnumerable openPositions=positions.Where(x => (x.PurchaseDate<=currentDate&&(!Utility.IsEpoch(x.SellDate)&&x.SellDate>currentDate))||(x.PurchaseDate<=currentDate&&Utility.IsEpoch(x.SellDate))).ToList(); @@ -438,14 +352,14 @@ namespace TradeBlotter.Model double gainLossClosedPositions=0.00; double exposure=0.00; double marketValue=0.00; - if(HolidayDA.IsMarketHoliday(currentDate)) continue; +// if(HolidayDA.IsMarketHoliday(currentDate)) continue; ModelPerformanceItem performanceItem=new ModelPerformanceItem(); foreach(MGSHPositionModel openPosition in openPositions) { exposure+=openPosition.Shares*openPosition.PurchasePrice; if(!LocalPriceCache.GetInstance().ContainsPrice(openPosition.Symbol,currentDate)) { - Prices prices=PricingDA.GetPricesForward(openPosition.Symbol,currentDate,90); + Prices prices=PricingDA.GetPricesForward(openPosition.Symbol,currentDate,PricingDA.ForwardLookingDays); LocalPriceCache.GetInstance().Add(prices); } Price price=LocalPriceCache.GetInstance().GetPrice(openPosition.Symbol,currentDate); diff --git a/ViewModels/MainWindowViewModel.cs b/ViewModels/MainWindowViewModel.cs index 13f0070..aa96225 100644 --- a/ViewModels/MainWindowViewModel.cs +++ b/ViewModels/MainWindowViewModel.cs @@ -47,6 +47,11 @@ namespace TradeBlotter.ViewModels StringBuilder sb = new StringBuilder(); sb.Append("eNavigator").Append(" ").Append("(").Append(principal).Append(")"); sb.Append("[").Append(Utility.Is64Bit()?"64Bit":"32Bit").Append("]"); + + + + + base.DisplayName = sb.ToString(); Dispatcher.CurrentDispatcher.BeginInvoke((Action)(() => { DisplaySplashScreen(); }), DispatcherPriority.Normal); DispatcherOperation viewStateOperation=Dispatcher.CurrentDispatcher.BeginInvoke((Action)(() => { LoadViewStateThreadProc(); }), DispatcherPriority.Normal);