Historical Simulation Method: Does It Really Help?
- Pankaj Maheshwari
- Oct 2, 2022
- 11 min read
Updated: Oct 2
"simulation is an incredibly powerful technique to understand the impact on a variable due to changes in a number of factors."
In the complex and uncertain world of finance, one of the most challenging questions practitioners face is: "What might happen in the future?" While no one can predict the future with certainty, simulation methods provide powerful tools for exploring the range of possible outcomes and assessing their likelihood. These techniques have become indispensable in modern risk management, portfolio optimization, and derivative pricing.
Simulation represents a fundamental shift in how we approach financial analysis. Rather than relying on single-point estimates or simple statistical measures, simulation methods generate thousands or even millions of potential scenarios, creating a comprehensive picture of what the future might hold. By exploring this vast range of possibilities, finance professionals can better understand risks, identify opportunities, and make more informed decisions.
Two primary approaches dominate the area of financial simulation: the Historical Simulation method and the Monte Carlo Simulation method. The Historical Simulation method operates on the premise that the past provides a template for the future; that the patterns, shocks, and movements observed in historical data will recur, albeit in different sequences. The Monte Carlo method takes a more theoretical approach, using probability distributions and random number generation to create scenarios that may never have occurred historically but are nonetheless plausible given our understanding of market behavior.
Many theories have been authored on simulations that suggest either using the same outcomes generated in the past (called the historical simulation method) or generating a wider range of scenarios produced out of a probability distribution (called the parametric-based monte-carlo simulation method) to predict and understand the impact on a variable.

Why Simulation? The Limitations of Traditional Analysis
Traditional financial analysis often relies on single-point estimates and simple statistical measures. We might calculate the expected return of an investment, its standard deviation, and perhaps a few other statistics, then use these numbers to make decisions. However, this approach has fundamental limitations that simulation methods address.
Financial variables are inherently uncertain and dynamic. A stock price doesn't simply move to its "expected value"; it follows a complex path influenced by countless factors, exhibiting volatility, jumps, and patterns that simple statistics cannot fully capture. By generating multiple possible paths, simulation provides a richer understanding of the range and distribution of potential outcomes.
Many financial problems involve complex, non-linear relationships that defy closed-form solutions. Portfolio values depend on multiple correlated assets, derivative payoffs may have complex structures, and risk exposures may change dynamically based on market conditions. Simulation allows us to model these complexities without requiring simplifying assumptions that might distort reality.
Rare events and tail risks, though infrequent, can have catastrophic consequences. Traditional statistical measures, such as standard deviation, focus on typical variation around the mean but may understate the risk of extreme outcomes. Simulation methods, particularly when properly designed, can help us understand and prepare for these extreme scenarios.
The Role of Randomness and Probability
All simulation methods are based on the concept of randomness. Financial markets exhibit both predictable patterns and unpredictable variations. Simulation methods attempt to capture this reality by combining systematic components (like trends or expected returns) with random components (representing the unpredictable variations).
The random component in simulations serves multiple purposes.
It acknowledges our fundamental uncertainty about the future; we don't know which specific outcome will occur, only the range of possibilities and their relative likelihoods.
It allows us to generate diverse scenarios rather than a single deterministic forecast.
It enables statistical analysis of the distribution of outcomes, not just point estimates.
Different simulation methods handle randomness differently:
Historical simulation treats the historical observations themselves as the source of randomness; future outcomes are drawn randomly from this historical sample.
Monte Carlo simulation uses mathematical probability distributions to generate random numbers, creating scenarios based on our theoretical understanding of how markets behave rather than purely on historical precedent.
From Shocks to Scenarios: The Building Blocks of Simulation
The fundamental building block of financial simulation is the concept of a "shock", a sudden change in an asset's value, typically expressed as a return. These shocks represent the day-to-day (or period-to-period) movements that collectively determine an asset's price path over time.
Understanding shocks requires recognizing that asset price changes have two components: a systematic or expected component (the drift) and a random or unexpected component (the shock). The drift represents our best estimate of the average return, while shocks represent deviations from this expectation.
In mathematical terms, we might express an asset's return as:
Return = Expected Return + Shock
Or in continuous time: dS/S = μdt + σdW
Where:
dS/S is the instantaneous return, or the instantaneous change in asset price
μ is the expected return (drift)
dt is the time differential, or instantaneous change in time
σ is the volatility
dW is a random shock from a Wiener process
Simulation methods differ primarily in how they generate and apply these shocks. Historical simulation uses actual historical shocks, randomly sampled and reapplied. Monte Carlo simulation generates shocks from probability distributions whose parameters are estimated from historical data or specified based on other information.
Historical Simulation Method
The Historical Simulation method operates on an elegantly simple premise: the future will resemble the past. More specifically, it assumes that the range of outcomes observed historically, the shocks, movements, and patterns in asset prices, represents a reasonable approximation of what might occur in the future. While the exact sequence may differ, the types and magnitudes of movements should be similar.
This approach has intuitive appeal. Markets have been operating for decades or centuries, experiencing bull markets and bear markets, periods of calm and crisis, gradual trends and sudden shocks. This historical record contains invaluable information about how markets behave under various conditions. By using this actual observed data, rather than theoretical distributions, we ground our simulations in empirical reality.
The method proceeds through several conceptually straightforward steps:
Gather historical data on the asset or portfolio we're analyzing, typically covering a lookback period of one to several years. This data provides the raw material for our simulation.
Calculate the returns or shocks from this historical data. These shocks represent the actual movements that occurred during each period in our historical window.
Randomly sample from these historical shocks, applying them to the current asset price to generate possible future scenarios. Each random draw creates a different potential future path.
Repeat this process many times, thousands or millions of iterations, to build up a comprehensive distribution of potential outcomes.
Analyze this distribution to extract useful information: average outcomes, worst-case scenarios, probability of various events, and other risk metrics.
While conceptually simple, the Historical Simulation method has a precise mathematical structure. Let's formalize the approach:
Calculate Historical Returns
From a time series of historical prices {S₀, S₁, S₂, ..., Sₙ}, we calculate returns. For continuous (logarithmic) returns:
rₜ = ln(Sₜ / Sₜ₋₁)
This gives us a series of historical return shocks: {r₁, r₂, r₃, ..., rₙ}
Random Sampling
To generate a simulated future return, we randomly select one return from our historical series. Each historical return has an equal probability of being selected (assuming equal weighting):
rₜ₊₁ = rᵢ where i ~ Uniform(1, n)
The tilde (~) denotes a simulated value, and i is randomly selected from the set {1, 2, ..., n}.
Apply Shock to Current Price
Using the randomly selected return, we calculate the simulated future price:
Sₜ₊₁ = Sₜ x exp(rₜ₊₁)
For discrete returns, this would be: Sₜ₊₁ = Sₜ x (1 + rₜ₊₁)
Iterate for Multiple Periods
To simulate a path extending multiple periods into the future, we repeat the process sequentially:
Sₜ₊₁ = Sₜ x exp(r̃ₜ₊₁), Sₜ₊₂ = Sₜ₊₁ x exp(rₜ₊₂), Sₜ₊₃ = Sₜ₊₂ x exp(rₜ₊₃) ... and so on
Where each r is independently sampled from the historical distribution.
Repeat for Multiple Scenarios
We repeat the entire process M times to generate M different simulated paths, creating an ensemble of scenarios: {S¹, S², S³, ..., Sᴹ}
Practical Implementation
Let's work through a practical example to illustrate how Historical Simulation works in practice. Consider a stock currently trading at $1,453.00, and we want to estimate its possible price one trading day in the future.
Gather Historical Data
We collect the past 250 trading days of closing prices for this stock. This one-year lookback period captures a full year of market behavior, including various market conditions.
Our Python algorithm extracted the time-series data for this stock, trading at $1453.00 dated 2022-10-04, for a lookback period of 250 trading days.

Calculate Historical Returns
For each pair of consecutive days, we calculate the logarithmic return:
Day 242 return = ln(1432.75 / 1420.50) = ln(1.00862) = 0.00859 or 0.859%
Day 243 return = ln(1425.20 / 1432.75) = ln(0.99473) = -0.00528 or -0.528%
Day 244 return = ln(1438.90 / 1425.20) = ln(1.00961) = 0.00956 or 0.956% ...and so on for all 250 periods
This gives us 250 historical return shocks, which might look like:

Simulate One Future Price
To generate one simulated future price, we randomly select one return from our 250 historical returns and apply it to the current price. Suppose our random selection gives us return #147 = 0.0187 (1.87%):
Simulated Price = $1,453.00 x exp(0.0187) = $1,453.00 x 1.01887 = $1,480.42
For a more compact, Excel-based formula:
= Spot Price * EXP(INDEX(Returns Range, RANDBETWEEN(1, 250)))
Or using the SMALL function as implemented in our Excel modeling session:
= Spot Price * EXP(SMALL(Returns Range, RANDBETWEEN(1, 250)))
Generate Multiple Simulations
We repeat this process 1,000,000 times to create a comprehensive distribution of possible outcomes. Each simulation randomly selects a different historical return (with replacement, so the same return can be selected multiple times across simulations).
Example simulation results:
Simulation 1: Selected Return = 0.0187 → Simulated Price = $1,480.42
Simulation 2: Selected Return = -0.0112 → Simulated Price = $1,436.86
Simulation 3: Selected Return = 0.0053 → Simulated Price = $1,460.70
Simulation 4: Selected Return = 0.0234 → Simulated Price = $1,487.55
... continuing for 1,000,000 simulations


Analyze the Distribution
From our 1,000,000 simulated prices, we can calculate various statistics:
Average Simulated Price: $1,452.71
Median Simulated Price: $1,453.87
Standard Deviation: $21.45
5th Percentile (95% VaR): $1,418.34
95th Percentile: $1,488.92
This distribution tells us that while the average outcome is close to the current price (as expected for a one-day horizon), there's substantial variation. In 5% of scenarios, the price falls below $1,418.34, while in 5% of scenarios, it rises above $1,488.92.
Multi-Period Simulation: Extending the Time Horizon
The real power of Historical Simulation emerges when we extend the analysis across multiple time periods. Rather than simulating just one day ahead, we can simulate complete price paths extending weeks, months, or even years into the future.
To simulate a 250-day (one-year) price path:
Period 1:
Randomly Select Historical Return #73 = 0.0145
Simulated Price at t+1 = $1,453.00 x exp(0.0145) = $1,474.16
Period 2:
Randomly Select Historical Return #198 = -0.0089
Simulated Price at t+2 = $1,474.16 x exp(-0.0089) = $1,461.08
Period 3:
Randomly Select Historical Return #45 = 0.0203
Simulated Price at t+3 = $1,461.08 x exp(0.0203) = $1,491.08
... continuing for all 250 periods

This creates one complete simulated path from today through one year in the future.

By repeating this process thousands of times, we generate an ensemble of possible price paths, each representing a different possible future scenario.
Our Python algorithm triggered the simulator again and repeated the same process to generate multiple paths that the stock price may follow in the future until t+250.


This creates 10,000 complete simulated paths from today through one year in the future.

The resulting analysis becomes much richer for multi-period simulations:
We can examine the distribution of ending prices after 250 days.
We can calculate the probability of reaching certain price levels.
We can identify maximum drawdowns along the path.
We can assess the probability of breaching certain thresholds at any point during the period.
Historical Simulation, while conceptually simple, can be computationally intensive. We generated 1,000,000 simulations for single-period analysis, but reduced it to 10,000 for multi-period analysis due to computational constraints.
Computational complexity increases with:
Number of Simulations (M): More simulations provide smoother distributions and more reliable statistics, but require more computation. The tradeoff between accuracy and computational time must be carefully managed.
Number of Time Periods (T): Simulating 250 periods requires 250 times as many random selections and calculations as simulating one period. For M simulations over T periods, we perform M x T calculations.
Number of Assets: For portfolio simulation with N assets, we must track correlations and generate correlated returns, multiplying computational requirements by approximately N².
Assumptions of the Historical Simulation Method
The Historical Simulation method is one of the most intuitive approaches to estimate asset price or returns. It uses actual past returns to simulate future potential losses. However, its simplicity relies on several strong assumptions about how markets behave—and understanding these assumptions is essential to assess both its strengths and limitations in real-world applications.
Assumption of Stationarity: This method assumes that the statistical properties of asset returns, such as mean, volatility, and autocorrelation, remain constant over time. This is known as the stationarity assumption. This allows the model to treat past returns as representative of future possibilities. It assumes the distribution of returns is stable, such that historical return shocks can be replayed as scenarios for today’s portfolio.
Finite Historical Lookback Period: This method uses a fixed lookback window (often 250 or 260 trading days) to estimate potential losses. This assumes that this timeframe contains sufficient and relevant information about return variability and extremes. The period (usually ~1 year) is long enough to capture different market behaviors, and short enough to remain current.
Accuracy and Completeness of Historical Data: This method directly uses observed historical returns without statistical modeling or smoothing. As such, it assumes that the raw historical data is clean, accurate, and reliable. Therefore, preprocessing steps may include adjusting prices for corporate actions (splits, dividends), making sure that there are no missing observations or data anomalies, and every asset is time-synchronized in multi-asset portfolios.
Equal Probability Weighting of Historical Outcomes: In this method, each return in the lookback window is given equal weight, regardless of when it occurred and how relevant they are. Therefore, simple to implement and transparent, and does not require a weighting scheme or decay structure.
Limitations of the Historical Simulation Method
Assumption of Stationarity: The method assumes that the market conditions that produced the past return distributions will remain consistent in the future. In reality, financial markets are non-stationary due to economic regime shifts (boom vs recession), policy changes (interest rate cuts/hikes), innovations (algorithmic trading), or behavioral changes in market participants.
Historical simulation may misrepresent risk if future market behavior diverges from the past. for example, a portfolio simulated using a calm period (low volatility) may severely underestimate risk in a crisis.
Limitations of the Lookback Period: The simulation relies on a defined historical window (e.g., 250 trading days). A short window may miss rare events (financial crises or recessions) or lack robustness for fat-tailed distributions. In emerging markets or for new instruments, historical data may be sparse or nonexistent. This limits the statistical validity and increases estimation error. for example, A company may wish to assess a 10-year risk but only have 2 years of price data for a recently listed — VaR estimates here will be highly uncertain.
Dependence on Data Quality and Completeness: The accuracy of historical simulations heavily depends on the quality and completeness of the historical data used. Inadequate or incomplete data can lead to biased estimates and unreliable predictions. Data gaps (missing values), inaccuracies, or errors in the historical records can distort the results of the simulation, making them less reliable for future decision-making. Pre-processing, cleansing, and validating historical datasets are crucial before simulation.
Ignoring Fundamental Factors: Historical simulation is purely technical—it does not integrate macroeconomic indicators or firm-specific fundamentals. for example, GDP growth rate, inflation, company earnings reports, and investor sentiment or news. It may miss structural changes in the market. For instance, rising inflation may signal higher volatility ahead, but historical simulation won’t reflect that unless similar events occurred in the lookback period.
Equal Weighting of Historical Outcomes: All historical return observations are treated with equal importance, regardless of recency or context. It does not recognize that:
Some events may be outdated or irrelevant,
More recent events might be more indicative of near-term risk.
Alternative: The Exponentially Weighted Historical Simulation (EWHS) approach assigns more weight to recent data, addressing this limitation.
Backward-Looking Nature of Historical Simulation: This is inherently a backward-looking method. It relies entirely on past data and does not incorporate any forward-looking information about future market expectations. Forward-looking information, such as anticipated economic policies, technological advancements, or geopolitical events, is crucial for making accurate predictions about future market conditions.
