private void getBenchmarkDataForFullMonths( int yearMonth, ClientModelBench clientModelBench, CalcData pCalcData) { foreach (var benchAllocation in clientModelBench.m_client_bench) { if (!pCalcData.m_perf_data.m_bench_data.ContainsKey(benchAllocation.m_bench_id)) continue; var benchMark = pCalcData.m_perf_data.m_bench_data[benchAllocation.m_bench_id]; if (!benchMark.m_bench_monthly_returns.ContainsKey(yearMonth)) continue; var benchMonthlyReturns = benchMark.m_bench_monthly_returns[yearMonth]; clientModelBench.m_totReturn = benchMonthlyReturns.m_total_return; clientModelBench.m_totPriceReturn = benchMonthlyReturns.m_price_return; clientModelBench.m_totTurnOver = benchMonthlyReturns.m_turnover; clientModelBench.m_totDivReturn = benchMonthlyReturns.m_dividend_return; } }
private bool calculatePerformanceFromBeginning( BenchAllocation benchAllocation, BenchReturns benchmarkReturns, int yearMonth, ClientModelBench clientModelBench, int accountId, Client clientData) { var benchMonthReturns = benchmarkReturns.m_bench_monthly_returns[yearMonth]; var benchDayReturns = benchmarkReturns.m_bench_daily_returns[benchAllocation.m_date_to]; var iLoop = 1; clientModelBench.m_totReturn = ((1 + clientModelBench.m_totReturn)*(1 + benchMonthReturns.m_total_return)/ (benchDayReturns.m_price_return_to_month_end)) - 1; clientModelBench.m_totPriceReturn = ((1 + clientModelBench.m_totPriceReturn) * (1 + benchMonthReturns.m_price_return) / (benchDayReturns.m_price_return_to_month_end)) - 1; clientModelBench.m_totDivReturn += (benchMonthReturns.m_dividend_return); }