If you have a portfolio of stocks and options it's straight forward enough to generate correlated stock paths and evaluate the positions at the end of the time horizon, but what do you do if your portfolio also consists of other derivatives like swaps, FX forwards etc. I know you can calibrate stochastic processes to short rates as well but that seems far too convoluted to be practically feasible. What are some alternatives?
In practice, using sensitivity based methods (i.e. those methods @python_enthusiast mentioned in his comment) is still quite common, but it is going out of fashion.
Given today's technical infrastructure (parallelisation, fast codes etc.) a risk simulatoin under full revaluation is - for most of the products - quite feasible in a risk controlling type Value of Risk context.
Of course, this does not hold for front office applications, where a speedy calculation is of the essence. In that case, you may either do full reval of your (highly) exotic stuff, only; or you indeed implement some sensitivity based approximation. This should commonly entail not only Deltas and Vegas, but also Gammas / cross effects for all products that are materially affected by non-linearities / multiple risk factors.
Re your comment to this answer: For linear / market instruments like bonds, fix/float swaps, float/float swaps, vanilla options etc., risk is usually calculated by
- Identification of the risk drivers. This could be parallel swap rate shift, a node-level swap rate shift, node-level swap rate shifts across multiple swap curves, ATM vola shift, parallel vola shift, shift of all vola points, ...
- Then, simulate the shift of each risk factor
- If you use market quotes as risk factors, re-run your calibration for curves, vol surfaces etc.
- (*) If you have a highly non-vanilla instruments, then you need to calibrate those as well, of course. But you may want to reduce the number of effective parameters for recalibration, e.g. you could keep correlations constant
- Price under the scenario.
The problem with (*) is that this is a nested simulation. Under each 'outer' scenario produced in step 2, you need to a) calibrate and b) simulate. Another approach I have seen in the market (once, at most -_-) is to make use of LSMC (least squares monte carlo originally in Longstaff / Schwartz), where you can 're-use' information from the outer scenarios for the inner simulation.