Home > Analytic Reference > Simulation > Historic Simulation

Historic Simulation

Process for specifying historic scenarios

Scenarios should be identified by the second date in a pair, and start at ID 1. This means the history date set extends one valid (non-weekend or holiday) day earlier than the scenario date set.

Example
A history set of dates 5,6,7 December 2011 will translate to two scenarios:
Scenario 1: 6th Dec      (from history 5th, 6th Dec)
Scenario 2: 7th Dec      (from history 6th, 7th Dec)

This example would be equally defined by:

scenarioChooser StartDateToEndDate
scenarioStartDate 6th   Dec
scenarioEndDate 7th   Dec

scenarioChooser StartDatePlusCount
scenarioStartDate 6th   Dec
numScenarios  2

scenarioChooser EndDatePlusCount
scenarioEndDate 7th   Dec
numScenarios  2

Data gaps do not affect the number of scenarios. Gaps are always filled (see process for handling gaps below).

Weekends and holidays are excluded from the scenario set. Holidays are defined through the excludedDates list and can be rolling or defined for a specific year. Rolling dates apply on the entered date and every subsequent anniversary of that date. However they do not extend backwards from the entered date.

This means days either side of a weekend or holiday are treated as being adjacent to each other. This leads to some boundary conditions:

Example 1
Suppose in our example above we define 5th Dec as a public holiday. To satisfy the first scenario the underlying history will need to be extended to the previous Friday. So all three methods will return the following scenarios:

Scenario 1: 6th Dec      (from history 2nd, 6th Dec)
Scenario 2: 7th Dec      (from history 6th, 7th Dec)

Example 2
Suppose now we reset the 5th to a normal date but we define 7th Dec as a public holiday. The three methods will all return different results as follows:

StartDateToEndDate will return only 1 scenario:
Scenario 1: 6th Dec      (from history 5th, 6th Dec)

StartDatePlusCount will return 2 scenarios:
Scenario 1: 6th Dec      (from history 5th, 6th Dec)
Scenario 2: 8th Dec      (from history 6th, 8th Dec)

EndDatePlusCount will return 2 scenarios:
Scenario 1: 5th Dec      (from history 2nd, 5th Dec)
Scenario 2: 6th Dec      (from history 5th, 6th Dec)


Logic for filling gaps

  1. Exclude weekends and defined public holidays from the list of dates (ie a shift will span this date).
  2. Generate a shift from the actual curve if available on both days of a date pair.
  3. Generate a shift off the proxy curve if available on both days of a date pair.
  4. For a gap of one or two days in both the real and proxy curves, forward fill the real rates if available on both sides of the gap.
  5. For a gap of one or two days in both the real and proxy curves, forward fill the proxy rates if available on both sides of the gap.
  6. For gaps not conforming to above rules, set shifts to 1.0 (no shift) and send a warning. Nb: Only the first gap for each curve triggers a warning.

Term structures do not need to align throughout the history set. The term structure (eg the terms on a zero curve, or the 2 dimensional points on a surface) is determined by the current term structure for that curve. All historic rates are transposed to match the term structure of current rates via linear interpolation, or square interpolation in the case of surfaces, before shifts are calculated. If a historic curve is missing terms at the start or end, these terms are filled with the nearest values on the curve.

For example, if today’s curve included a 30 year term but a historic curve only extended to 20 years, the historic rate at the 20 year term would be assigned to the historic 30 year rate.


Other historic simulation inputs

CompressionFactors
This variable allows the user to define the maximum relative shift allowed for a curve (or a set of curves by using wildcards in the curve key).

For example:
lowRatio of 0.5, means the scenario cannot reduce rates to less than half of their value in a single scenario. Any such shifts will be truncated to the lowRatio.
higRatio of 2.0 means the scenario cannot increase rates to more than double their value in a single scenario. Any such shifts will be truncated to the highRatio.

Note: This variable was introduced to tame the shifts arising from illiquid regions of volatility surfaces.

Proxies
This variable allows one curve or a set of curves to be proxied by another curve in order to generate shifts in cases where history for the actual curve is patchy or missing altogether (see logic for filling gaps above). Proxies can be further refined to match by industry sector and liquidity (high or low). This is especially useful for equities where a large number of stocks with potentially missing history can be proxied to a small number of similar (driver) stocks with full histories by defining a small number of proxies.

Shift Overrides
The default shift methodology is “Relative” whereby the current rate is multiplied by the ratio of the two historic rates. A curve or set of curves can be set to use “Absolute” shifts instead (where the actual historic shift is added to the current rate). An example of where this might apply is when interest rates are near zero.

Confidence Method
This parameter determines how quantile-based statistics are determined when the quantile index q=Q×N (where Q is the quantile and N is the number of paths (distribution points) is not a whole number.

Choice Description
Precise Divide by “n+1”. So, effectively if there are 9 samples they will correspond to 10%, 20%, ..., 90%. We then use linear interpolation between the two observations closest to this point
RoundTowardsTail First find the “precise” point using the method above and then choose the next exact observation closer to the tail.
RoundTowardsCentre First find the “precise” point using the method above and then choose the next exact observation closer to the centre.
Bisection Divide by “n” and then makes an adjustment of 0.5. So, effectively if there are 10 samples, they will correspond to 5%, 15%, …, 85%, 95%. We then use linear interpolation between the two observations closest to this point.

 



See also
Monte Carlo
Parameter Estimation
Drilldown