Fix GLPriceCache
This commit is contained in:
@@ -18,7 +18,7 @@ namespace MarketData.Generator.GainLoss
|
||||
}
|
||||
//public void RefreshPriceCache()
|
||||
//{
|
||||
// LocalPriceCache.GetInstance().Refresh();
|
||||
// GLPriceCache.GetInstance().Refresh();
|
||||
//}
|
||||
// *****************************************************************************************************************************************************************
|
||||
// ************************************************ G E N E R A T E A C T I V E G A I N L O S S / G A I N L O S S P E R C E N T *****************************
|
||||
@@ -26,7 +26,7 @@ namespace MarketData.Generator.GainLoss
|
||||
public GainLossCollection GenerateGainLoss(PortfolioTrades portfolioTrades,DateTime? maxDateRef=null)
|
||||
{
|
||||
if (null == portfolioTrades || 0 == portfolioTrades.Count) return null;
|
||||
LocalPriceCache.GetInstance().Add(portfolioTrades);
|
||||
GLPriceCache.GetInstance().Add(portfolioTrades);
|
||||
DateTime minTradeDate = portfolioTrades.GetMinTradeDate();
|
||||
DateTime maxDate = PricingDA.GetLatestDate();
|
||||
if(null!=maxDateRef)maxDate=maxDateRef.Value;
|
||||
@@ -46,11 +46,11 @@ namespace MarketData.Generator.GainLoss
|
||||
gainLoss.Add(holdingDate, new GainLossItem(holdingDate, 0,0,false));
|
||||
continue;
|
||||
}
|
||||
if(!LocalPriceCache.GetInstance().ContainsPrice(openTrades.Symbols,holdingDate))
|
||||
if(!GLPriceCache.GetInstance().ContainsPrice(openTrades.Symbols,holdingDate))
|
||||
{
|
||||
if(holdingDate.Date.Equals(maxDate))
|
||||
{
|
||||
LocalPriceCache.GetInstance().Add(openTrades.Symbols,holdingDate);
|
||||
GLPriceCache.GetInstance().Add(openTrades.Symbols,holdingDate);
|
||||
}else continue;
|
||||
}
|
||||
foreach (PortfolioTrade portfolioTrade in openTrades)
|
||||
|
||||
@@ -22,10 +22,10 @@ namespace MarketData.Generator.GainLoss
|
||||
public TotalGainLossCollection GenerateTotalGainLoss(PortfolioTrades portfolioTrades,DateTime? maxDateRef=null)
|
||||
{
|
||||
if (null == portfolioTrades || 0 == portfolioTrades.Count) return null;
|
||||
LocalPriceCache.GetInstance().Add(portfolioTrades);
|
||||
GLPriceCache.GetInstance().Add(portfolioTrades);
|
||||
DateTime minTradeDate = portfolioTrades.GetMinTradeDate();
|
||||
// DateTime maxDate = PricingDA.GetLatestDate();
|
||||
DateTime maxDate=LocalPriceCache.GetInstance().GetLatestDate();
|
||||
DateTime maxDate=GLPriceCache.GetInstance().GetLatestDate();
|
||||
if(null!=maxDateRef)maxDate=maxDateRef.Value;
|
||||
Dictionary<DateTime,TotalGainLossItem> gainLossCollection = new Dictionary<DateTime, TotalGainLossItem>();
|
||||
DateGenerator dateGenerator = new DateGenerator();
|
||||
@@ -75,10 +75,10 @@ namespace MarketData.Generator.GainLoss
|
||||
public TotalGainLossCollection GenerateTotalGainLossWithDividends(PortfolioTrades portfolioTrades,DividendPayments dividendPayments,DateTime? maxDateRef=null)
|
||||
{
|
||||
if (null == portfolioTrades || 0 == portfolioTrades.Count) return null;
|
||||
LocalPriceCache.GetInstance().Add(portfolioTrades);
|
||||
GLPriceCache.GetInstance().Add(portfolioTrades);
|
||||
DateTime minTradeDate = portfolioTrades.GetMinTradeDate();
|
||||
// DateTime maxDate = PricingDA.GetLatestDate();
|
||||
DateTime maxDate=LocalPriceCache.GetInstance().GetLatestDate();
|
||||
DateTime maxDate=GLPriceCache.GetInstance().GetLatestDate();
|
||||
if(null!=maxDateRef)maxDate=maxDateRef.Value;
|
||||
Dictionary<DateTime,TotalGainLossItem> gainLossCollection = new Dictionary<DateTime, TotalGainLossItem>();
|
||||
DateGenerator dateGenerator = new DateGenerator();
|
||||
|
||||
@@ -19,12 +19,12 @@ namespace MarketData.Generator.GainLoss
|
||||
DateGenerator dateGenerator=new DateGenerator();
|
||||
ModelPerformanceSeries performanceSeries=new ModelPerformanceSeries();
|
||||
List<TotalGainLossItem> gainLossList=new List<TotalGainLossItem>();
|
||||
LocalPriceCache.GetInstance().Add(portfolioTrades);
|
||||
GLPriceCache.GetInstance().Add(portfolioTrades);
|
||||
try
|
||||
{
|
||||
if(!ValidatePortfolioTrades(portfolioTrades))return null;
|
||||
DateTime minDate=portfolioTrades.GetMinTradeDate();
|
||||
DateTime maxDate = LocalPriceCache.GetInstance().GetLatestDate();
|
||||
DateTime maxDate = GLPriceCache.GetInstance().GetLatestDate();
|
||||
if(null!=maxDateRef) maxDate=maxDateRef.Value;
|
||||
double prevGainLoss=double.NaN;
|
||||
List<DateTime> historicalDates=dateGenerator.GenerateHistoricalDates(minDate,maxDate);
|
||||
@@ -46,7 +46,7 @@ namespace MarketData.Generator.GainLoss
|
||||
foreach(PortfolioTrade openPosition in openPositions)
|
||||
{
|
||||
exposure+=openPosition.Shares*openPosition.Price;
|
||||
Price price=LocalPriceCache.GetInstance().GetPrice(openPosition.Symbol,currentDate);
|
||||
Price price=GLPriceCache.GetInstance().GetPrice(openPosition.Symbol,currentDate);
|
||||
if(null==price)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("No price for {0} on {1}",openPosition.Symbol,currentDate.ToShortDateString()));
|
||||
@@ -98,12 +98,12 @@ namespace MarketData.Generator.GainLoss
|
||||
DateGenerator dateGenerator=new DateGenerator();
|
||||
ModelPerformanceSeries performanceSeries=new ModelPerformanceSeries();
|
||||
List<TotalGainLossItem> gainLossList=new List<TotalGainLossItem>();
|
||||
LocalPriceCache.GetInstance().Add(portfolioTrades);
|
||||
GLPriceCache.GetInstance().Add(portfolioTrades);
|
||||
try
|
||||
{
|
||||
if(!ValidatePortfolioTrades(portfolioTrades)) return null;
|
||||
DateTime minDate=portfolioTrades.Min(x => x.TradeDate);
|
||||
DateTime maxDate = LocalPriceCache.GetInstance().GetLatestDate();
|
||||
DateTime maxDate = GLPriceCache.GetInstance().GetLatestDate();
|
||||
double prevGainLoss=double.NaN;
|
||||
List<DateTime> historicalDates=dateGenerator.GenerateHistoricalDates(minDate,maxDate);
|
||||
|
||||
@@ -123,7 +123,7 @@ namespace MarketData.Generator.GainLoss
|
||||
foreach(PortfolioTrade openPosition in openPositions)
|
||||
{
|
||||
exposure+=openPosition.Shares*openPosition.Price;
|
||||
Price price=LocalPriceCache.GetInstance().GetPrice(openPosition.Symbol,currentDate);
|
||||
Price price=GLPriceCache.GetInstance().GetPrice(openPosition.Symbol,currentDate);
|
||||
if(null==price)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("No price for {0} on {1}",openPosition.Symbol,currentDate.ToShortDateString()));
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace MarketData.Generator.GainLoss
|
||||
if(holdingDate<portfolioTrade.TradeDate) return null;
|
||||
if(portfolioTrade.IsOpen||(portfolioTrade.IsClosed&&portfolioTrade.SellDate>holdingDate))
|
||||
{
|
||||
Price price=LocalPriceCache.GetInstance().GetPrice(portfolioTrade.Symbol,holdingDate);
|
||||
Price price=GLPriceCache.GetInstance().GetPrice(portfolioTrade.Symbol,holdingDate);
|
||||
if(null==price)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("No price for {0} on {1}",portfolioTrade.Symbol,Utility.DateTimeToStringMMHDDHYYYY(holdingDate)));
|
||||
@@ -35,7 +35,7 @@ namespace MarketData.Generator.GainLoss
|
||||
if(holdingDate<portfolioTrade.TradeDate) return null;
|
||||
if(portfolioTrade.IsOpen||(portfolioTrade.IsClosed&&portfolioTrade.SellDate>holdingDate))
|
||||
{
|
||||
Price price=LocalPriceCache.GetInstance().GetPrice(portfolioTrade.Symbol,holdingDate);
|
||||
Price price=GLPriceCache.GetInstance().GetPrice(portfolioTrade.Symbol,holdingDate);
|
||||
if(null==price)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("No price for {0} on {1}",portfolioTrade.Symbol,Utility.DateTimeToStringMMHDDHYYYY(holdingDate)));
|
||||
@@ -69,7 +69,7 @@ namespace MarketData.Generator.GainLoss
|
||||
{
|
||||
return (portfolioTrade.SellPrice*portfolioTrade.Shares)-(portfolioTrade.Price*portfolioTrade.Shares);
|
||||
}
|
||||
Price price=LocalPriceCache.GetInstance().GetPrice(portfolioTrade.Symbol,holdingDate);
|
||||
Price price=GLPriceCache.GetInstance().GetPrice(portfolioTrade.Symbol,holdingDate);
|
||||
if(null==price)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("No price for {0} on {1}",portfolioTrade.Symbol,Utility.DateTimeToStringMMHDDHYYYY(holdingDate)));
|
||||
@@ -83,7 +83,7 @@ namespace MarketData.Generator.GainLoss
|
||||
if(!portfolioTrade.SellDate.Equals(Utility.Epoch)&&holdingDate>portfolioTrade.SellDate) return null;
|
||||
// check to see if we bought and sold on the same date.
|
||||
if(portfolioTrade.SellDate.Equals(portfolioTrade.TradeDate)) return (portfolioTrade.SellPrice*portfolioTrade.Shares);
|
||||
Price price=LocalPriceCache.GetInstance().GetPrice(portfolioTrade.Symbol,holdingDate);
|
||||
Price price=GLPriceCache.GetInstance().GetPrice(portfolioTrade.Symbol,holdingDate);
|
||||
if(null==price)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("No price for {0} on {1}",portfolioTrade.Symbol,Utility.DateTimeToStringMMHDDHYYYY(holdingDate)));
|
||||
|
||||
Reference in New Issue
Block a user