Optimize GetGainLossWithDetailByDateAndAccount

This commit is contained in:
2025-04-30 13:00:59 -04:00
parent 38d127d95b
commit 0343dc9d92
4 changed files with 29 additions and 115 deletions

View File

@@ -44,6 +44,7 @@ namespace MarketData.Cache
private DividendHistoryCache()
{
}
public void Dispose()
{
lock(thisLock)
@@ -52,6 +53,7 @@ namespace MarketData.Cache
instance=null;
}
}
public static DividendHistoryCache GetInstance()
{
lock(typeof(DividendHistoryCache))
@@ -60,6 +62,7 @@ namespace MarketData.Cache
return instance;
}
}
public void ClearCache()
{
lock(typeof(DividendHistoryCache))
@@ -67,6 +70,7 @@ namespace MarketData.Cache
dividendHistoryCache.Clear();
}
}
public void Add(DividendHistory dividendHistory)
{
lock(typeof(DividendHistoryCache))
@@ -84,6 +88,7 @@ namespace MarketData.Cache
}
}
}
private void Add(String symbol,int divExYear,DividendHistory dividendHistory)
{
lock(typeof(DividendHistoryCache))
@@ -104,6 +109,7 @@ namespace MarketData.Cache
}
}
}
public DividendHistory GetDividendHistory(String symbol, int[] divExYears)
{
DividendHistory dividendHistory=new DividendHistory();
@@ -123,7 +129,8 @@ namespace MarketData.Cache
}
}
return dividendHistory;
}
}
private DividendHistory GetDividendHistory(String symbol,int divExYear)
{
lock(typeof(DividendHistoryCache))
@@ -134,6 +141,7 @@ namespace MarketData.Cache
return dividendHistoryByDixExYear[divExYear];
}
}
public bool ContainsDividendHistory(String symbol,int divExYear)
{
lock(typeof(DividendHistoryCache))

View File

@@ -37,8 +37,6 @@ namespace MarketData.Generator
int priorYear=currentYear-1;
DividendHistory dividendHistory=DividendHistoryCache.GetInstance().GetDividendHistory(symbol,new int[]{currentYear, priorYear});
// DividendHistory dividendHistory=DividendHistoryDA.GetDividendHistory(symbol,new int[] { currentYear,priorYear });
if(null==currentPrice||double.IsNaN(currentPrice.Close)||!currentPrice.Date.Year.Equals(currentYear)) return double.NaN;
DividendHistory lastYearsDividendPayments=new DividendHistory((from DividendHistoryItem item in dividendHistory where item.DivExDate.Year==priorYear&&null!=item.CashAmount select item).ToList());
DividendHistory currentYearsDividendPayments=new DividendHistory((from DividendHistoryItem item in dividendHistory where item.DivExDate.Year==currentYear&&null!=item.CashAmount select item).ToList());