# Black-Scholes on the HP 10bII+

This module shows how the HP 10bII+ financial calculator can be used to price a call option with the Black-Scholes (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 Black-Scholes (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: Black-Scholes option pricing

## The Black-Scholes model in the HP 10bII+

**Example:** The stock price at time 0, six months before expiration date of the option is $42.00, option exercise 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 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

- Calculates the numerator of d
- \(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 in _{1}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 in r_{1})egister 1 (For use later in C) |
[0.7232] |

### 3. d_{2}

# | HP 10bII+ Keystrokes | Comment | Display reads |
---|---|---|---|

18. | [RCL] 0 | Recall d from register 0 _{1} |
[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 in _{2})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] |

**Published:**20 February 2015**Revised:**Saturday 25th of February 2023 - 10:13 AM, [Australian Eastern Standard Time (EST)]