Skip to content

Commit

Permalink
More VaR granularity
Browse files Browse the repository at this point in the history
  • Loading branch information
gavbrennan committed Apr 19, 2022
1 parent 3ce1889 commit 8447415
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/Qwack.Models/Risk/VaRCalculator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,14 @@ public void CalculateModels()

public Dictionary<string, double> GetBaseValuations() => _basePvCube.Pivot("TradeId", AggregationAction.Sum).ToDictionary("TradeId").ToDictionary(x => x.Key as string, x => x.Value.Sum(r => r.Value));

public Dictionary<string, double> GetContributions(DateTime scenarioDate)
{
var cube = _resultsCache[scenarioDate];
var diff = cube.Difference(_basePvCube);

return diff.Pivot("TradeId", AggregationAction.Sum).ToDictionary("TradeId").ToDictionary(x => x.Key as string, x => x.Value.Sum(r => r.Value));
}

public (double VaR, DateTime ScenarioDate) CalculateVaR(double ci, Currency ccy) => CalculateVaR(ci, ccy, _portfolio);

private readonly ConcurrentDictionary<DateTime, ICube> _resultsCache = new();
Expand Down

0 comments on commit 8447415

Please sign in to comment.