The pricing process of Asian Arithmetic Pricing engine is as follows:
- Generate independent stock paths by using Mersenne Twister Uniform MT19937 Random Number Generator (RNG) followed by Inverse Cumulative Normal Uniform Random Numbers.
- Start at \(t = 0\) and calculate the stock price of each path firstly in order to achieve initiation interval (II) = 1.
- Calculate arithmetic average and geometric average value of each path.
\[Price_{Arithmetic} = \frac{1}{M+1} * \sum_{i=0}^{M} (S(i\Delta t))\]
\[Price_{Geometric} = exp{( \frac{1}{M+1} * \sum_{i=0}^{M} (\log{S(i\Delta t)}) )}\]
- Calculate the payoff difference of arithmetic average price and geometric average price.
\[Payoff_{gap} = \max(0,Strike - Price_{Arithmetic}) - \max(0,Price_{Geometric} - Strike)\> for \> put \> options\]
\[Payoff_{gap} = \max(Strike - Price_{Arithmetic}, 0) - \max(Price_{Geometric} - Strike, 0)\> for \> call \> options\]
- Calculate the payoff off of geometric average price \(Payoff_{ref}\) based on analytical method.
- Payoff of average pricing is \(Payoff = Payoff_{ref} + Payoff_{gap}\)
The pricing architecture on FPGA can be shown as the following figure: