This module shows how the HP 10bII+ financial calculator can be used to price a call option with the BlackScholes (1973) model. A key feature of this calculator is the ability to return the normal lower tail probability for the value z. The alternative is often a probability table.
The HP 10bII+ financial calculator is approved for use in the GARP FRM exams, but not the CFA exams.
According to the the BlackScholes (1973) model, the theoretical price \(C\) for European call option on a non dividend paying stock is $$\begin{equation} C=S_0 N(d_1)Xe^{rT}N(d_2) \end{equation}$$ where
$$d_1=\frac {log \left( \frac{S_0}{X} \right) + \left( r+ \frac {\sigma^2} {2} \right )T}{\sigma \sqrt{T}} $$ $$d_2=\frac {log \left( \frac{S_0}{X} \right) + \left( r – \frac {\sigma^2} {2} \right )T}{\sigma \sqrt{T}} = d_1 – \sigma \sqrt{T}$$
In equation 1, \(S_0\) is the stock price at time 0, \(X\) is the exercise price of the option, \(r\) is the risk free interest rate, \(\sigma\) represents the annual volatility of the underlying asset, and \(T\) is the time to expiration of the option. Further discussion and examples in Excel can be found at: BlackScholes option pricing
The BlackScholes model in the HP 10bII+
Example: The stock price at time 0, six months before expiration date of the option is $42.00, option exerise price is $40.00, the rate of interest on a government bond with 6 months to expiration is 5%, and the annual volatility of the underlying stock is 20%.
Calculation of the the call price can be completed as a 5 step process. Step 1. d1; 2. d2; 3. N(d1); 4. N(d2); and step 5, C. To point the way, the call price from equation 1 is $4.08.
We need some planning first, because intermediate results are assigned to memory registers in the calculator.
The order of calculation is influenced by my exposure to the HP 12C (reverse polish notation) calculator. It uses a memory stack, so numbered registers can be reduced, but it does not have a normal lower tail probability function.
 Replacing the variable names with their values will help in performing the calculation. The numbers in this list refer to the major sections of the steps in the calculations shown below.

 \(d_1=\frac {log \left( \frac{42.00}{40.00} \right) + \left( 0.05+ \frac {0.2^2} {2} \right )0.5}{0.2 \sqrt{0.5}}\). This is equation 1 with values from the example.
 Calculates the numerator of d_{1}
 Calculates the denominator of d_{1} – stored in register 3 at step 12
 Calculates the value of d_{1} – stored in register 0 at step 15
 \(N(d_1)\) from the normal lower tail probability – stored in register 1 at step 17
 \(d_2= d_1 – 0.2 \sqrt{0.5}\)
 \(N(d_2)\) from the normal lower tail probability – stored in register 2 at step 22
 \(C=42 N(d_1)40e^{0.05 \times 0.5}N(d_2)\) – the value to the right of the minus sign (40e…) is stored in register 4 at step 26
Calculator mode: Chain
Display digits: 4
1 a. d_{1} numerator
#  HP 10bII+ Keystrokes  Comment  Display reads 

1.  0.2 [Orange SHIFT down] [x^{2}]  sigma^{2}  [0.0400] 
2.  [\(\div\)] 2  Divide by 2  
3.  [+] 0.05  Add the rate  
4.  [x] 0.5 [=]  Multiply by time and display the result  [0.0350] 
5.  [Orange SHIFT down] [STO] 0  Store the displayed value in register 0  
6.  42 [\(\div\)] 40 [=]  Divide the stock price by the exercise price, and display result  [1.0500] 
7.  [Orange SHIFT down] [LN]  Take the natural log of the value in the display  [0.04879] 
8.  [+] [RCL] 0 [=]  Add the displayed value to recalled value from register 0  [0.08379] 
9.  [Orange SHIFT down] [STO] 0  Store the displayed value in register 0  [0.08379] 
1 b. d_{1} denominator
#  HP 10bII+ Keystrokes  Comment  Display reads 

10.  0.5 [Orange SHIFT down] [√x]  Take the square root of time  [0.7071] 
11.  [x] 0.2 [=]  Multiple by 0.2 and display result  [0.1414] 
12.  [Orange SHIFT down] [STO] 3  Store the displayed value in register 3 (For use later in d_{2})  [0.1414] 
1 c. d_{1}
#  HP 10bII+ Keystrokes  Comment  Display reads 

13.  [Orange SHIFT down] [1/x]  Take the reciprocal of the value in the display  [7.0711] 
14.  [x] [Recall] 0 [=]  Multiply the recalled value from register 0  [0.5925] 
15.  [Orange SHIFT down] [STO] 0  Store the displayed value d_{1} in register 0 (For use later in d_{2})  [0.5925] 
2. N(d_{1})
#  HP 10bII+ Keystrokes  Comment  Display reads 

16.  [Blue SHIFT up] [Z⇆P]  Calculate the cumulative normal probability for the value in the display  [0.7232] 
17.  [Orange SHIFT down] [STO] 1  Store the displayed value N(d_{1}) in register 1 (For use later in C)  [0.7232] 
3. d_{2}
#  HP 10bII+ Keystrokes  Comment  Display reads 

18.  [RCL] 0  Recall d_{1} from register 0  [0.5925] 
19.  [] [RCL] 3  Subtract the value of d_{1} recalled from register 3  [0.1414] 
20.  [=]  Display the value of d_{2}  [0.4511] 
4. N(d_{2})
#  HP 10bII+ Keystrokes  Comment  Display reads 

21.  [Blue SHIFT up] [Z⇆P]  Calculate the cumulative normal probability for the value in the display  [0.6740] 
22.  [Orange SHIFT down] [STO] 2  Store the displayed value N(d_{2}) in register 2 (For use later in C)  [0.6740] 
5. C
#  HP 10bII+ Keystrokes  Comment  Display reads 

23.  0.05 [+/] [x] 0.5 [=]  Calculate the exponent: multiply the negative rate by time  [0.02500] 
24.  [Orange SHIFT down] [e^{x}]  Base e to negative rate x time  [0.9753] 
25.  [x] [RCL] 2 [x] 40 [=]  Multiply the displayed value by the recalled value from register 2, then multiply by the exercise price and display the result  [26.2955] 
26.  [Orange SHIFT down] 4  Store the intermediate result in register 4 (For use in step 28)  [26.2955] 
27.  42 [x] [RCL] 1 [=]  Multiply the stock price by the value in register 1  [30.3760] 
28.  [] [RCL] 4 [=]  From the displayed value subtract the recalled value from register 4  [4.0805] 