Skip to content
All library documents

Choosing Floating-Point Precision for Option Pricing and Monte Carlo

Article Quant Q&A · Author: stevelu

Summary

The response argues that single precision is adequate for many practical finance calculations, including many option pricing applications. Its rationale is that float32 typically supports roughly five to six significant figures, while model misspecification and noisy market data often limit meaningful accuracy. This makes the precision choice a question of the application’s needs rather than a universal requirement to use double precision.

For theoretical work or cases requiring higher accuracy, higher precision may be appropriate. The response also cautions that simulations can require a double precision accumulator to avoid numerical overflow, even when individual calculations use lower precision. For Monte Carlo methods, it describes nested multilevel approaches that use many fast, low-precision calculations and a smaller number of higher-precision corrections. It cites an article reporting a speedup without accuracy loss, but does not provide enough experimental setup to generalize that result. Precision requirements should therefore be checked for the specific model, estimator, and implementation.

Key ideas

  • Float32 is presented as sufficient for many practical finance calculations with modest precision needs.
  • Model error and noisy market inputs can limit the value of extra numerical precision.
  • High-precision calculations may be warranted for theoretical problems requiring greater accuracy.
  • A double precision accumulator can still be important when simulations use lower precision.
  • Multilevel Monte Carlo can combine many low-precision calculations with higher-precision corrections.

Tags

Full text
# Is float32 enough for option pricing?


# Is float32 enough for option pricing?












Most quantitate libraries use float64 precision for monte-carlo or other method. Some academic papers do experiments on float16 and find it has some restrictions on float16.

I just wondering if float32 precision is enough in industry?

## Answer by oliversm (score 4)

https://quant.stackexchange.com/a/70878

#### Usually float32 is enough

For most applications in finance, `float32` is plenty of precision. This is generally suitable for naively achieving about 5-6 significant figures of accuracy. There are so many sources of error, that to trust results beyond this are moot. Consider for example:

- The model error (the Black-Scholes model is clearly wrong).

- The data has noise (market data is both noisy and usually only quoted to a few significant figures).

#### When you really want accuracy

If you want really high precision, either for a more theoretical (and less data driven) options pricing question, then it may be useful to switch to high precision. However, in many cases the average accuracy of single precision simulations gives (after averaging) a much greater accuracy than the constituent parts.

For many options pricing problems, note that a double precision accumulator is often required (e.g. to avoid numerical overflow).

#### If you want the accuracy of float64 but the speed of float16

For Monte Carlo based methods, it is possible (under certain conditions) to utilise low precision formats such as `float32` or `float16` or even `Bfloat16`, but still retain the accuracy of a much higher precision. How? Formulate the problem as a nested multilevel Monte Carlo. The simple explanation of this can be phrased as "Do lots of imprecise calculations very fast, and then do a handful of high accuracy corrections as negligible cost".

My PhD research was in exactly this topic, and I have written an article on interleaving numerical precisions in exactly this way to speed up Monte Carlo applications. See the following article:

Rounding error using low precision approximate random variables

As an example this article demonstrates how to achieve a 10-12 fold speed improvement without any loss in accuracy by mixing precisions in the calculations. It also takes into account how rounding error propagates in Monte Carlo simulations, and how to ensure this is correctly taken care of.

There are also a few companion articles about how to achieve further speed improvements if by similarly relaxing the precision of the random numbers in the right way and in the right places.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.