A joint collaboration between the Finance Department, The Financial Service and Business Analytics Lab at Loyola University Chicago and The CME Group. The goal of this project is to compare the time taken to compute the price of a binomial option by using The Cox–Ross–Rubinstein (CRR) procedure, followed by backward induction calculated on a regular machine against one that uses Maxeler computing. In Computer Science, a similar way of approach is by the triangular wavefront programming.
-
Field-Programmable Gate Array (FPGA)
Maxeler typically packs the Field-Programmable Gate Array (FPGA), made by Xilinx, in circuit boards that work with Intel Xeon microprocessors, whose unique chip allows for single and multiple data streams. Unlike traditional Read-Only Memory (ROM), the circuitry of these FPGAs gives the programmers flexibility to reconfigure data after it has been programmed into the chip. It also supplies special software, called compilers, to exploit the hardware – which can be continuously reprogrammed for customization to fit new sets of jobs.
-
Multiscale Dataflow Computing
In addition to the FPGA, Maxeler’s Multiscale DataflowComputing, a combination of traditional synchronous data flow, vector and array processor, allows for the manipulation of loop level parallelism in a spatial, pipelined way. Large streams of data flowing through a sea of arithmetic units can be connected to match the structure of the computer task. Small on-chip memories form a distributed register file with as many access ports as needed to support a smooth flow of data through the chip.
Multiscale Dataflow Computing employs dataflow on multiple levels of abstraction: the system level,the architecture level, the arithmetic level and the bit level. On the system level, multiple dataflowengines are connected to form a supercomputer. On the architecture level, memory access can be decoupled from arithmetic operations, while the arithmetic and bit levels provide opportunities to optimize the representation of the data and balance computation with communication.
The Cox–Ross–Rubinstein (CRR) procedure, part of the Binomal Options Pricing Model, was provided in Excel VBA format by the Finance Department. The Computer Science Department converted these codes in Java for readability which would serve as a central point of reference between the original Excel VBA and the translated C language, which Maxeler computing exclusively uses for its CPU codes. The Financial Service and Business Analytics Lab covered the Java and C code to Maxeler Code.
Initially we built a controlled environment based on static data provided by the Finance Department (VBA model). The static data comprises of spot prices, dividend yields and other constants of a standard call option. Using the CRR formula, these data were used to calculate Implied Volatility (IV).
Figure 2: Program Flowchart |
---|
![]() |
There exists a discrete-time analog to the continuous time Black-Scholes model, the binomial model.
Binomial Price Model | Calculation |
---|---|
![]() |
![]() |
Figure 3: This model can handle early exercise (American Options). |
- Implied volatility outperforms time-series models based on historical data for the purposes of forecasting volatility.
- Volatility is an important input into VAR and other models. Relevant to all money managers.
- Using CME’s S&P500 futures options (minis) we have the highest quality data thereby maximizing efficacy.
- Program the Newton-Raphson algorithm to run in the DFE.
- Bring in a time dimension to the problem (estimating a vol surface instead of a smile).
- Migrate all calculations to fixed point.
- Consider other approaches that might better exploit the DFE (e.g., Monte Carlo).
- Create something akin to the VIX using CME contracts?
CRR Model Paper: Implied Volatility for Options on Futures Using the Cox-Ross-Rubinstein (CRR) Model