The reason that I frequently don’t post is that I go through extensive periods studying for the actuarial examinations. When I am intensely studying, much of everything else is ejected from my life.

I will write about what I study each day, but it may numb your brain.

I love actuarial mathematics, but the concepts, mathematics, and formulas are really ugly at first. Normally, I appreciate nice little beautiful mathematical statements that express deep truths. Many actuarial formulas, however, are daunting. They might have a dozen variables, each with its own complex definition. They relate to finance, which seems so far removed from the beauty of pure mathematics, and far from the math that relates to the natural world.

But, the concepts that I learned for my last exam are now my intimate friends. What were once jumbles of symbols on the page are now complex expressions of important truths.

Take this ugly beast, for the price of a call option:

The price of the call option is .

I started at the far end, the most complicated spot. Now let me back up and explain the essentials.

When we trade on the stock market, we do not always trade the actual stocks, commodities, or currencies. We may be trading derivatives of these assets. That is, we may be trading financial instruments whose value is derived from these underlying assets.

In concrete terms, we might engage in a contract to buy an ounce of gold for $1000 in one year. This is a forward contract.

We might buy an option to buy one share of Ankle Compuners in one year for $1100. If Ankle is selling for say $1500 at that point, we exercise our option, buy the stock for $1100, then immediately sell it for $1500, instantly making $400. If Ankle is selling for less than $1100, we do not exercise the option. We have lost whatever we paid for the option. This is known as a call option.

We might buy an option to sell one share of Nash Motors in one year for $500. If Nash is selling for say, $100 in one year, we exercise our option and sell the stock and have $500, instead of the $100 that Nash is worth.

Why do we use derivatives, instead of the actual asset? To manage risk, like we did with our Nash stock. This is like insurance. To speculate on the market. We can buy an interest in the performance of Ankle, without having to spend $1000 for an entire share. We might also be buying derivatives because of reduced transaction costs, or because they can help us to avoid the tax implications of owning the asset.

Here is our question. Given the value of a stock, S, the risk-free bond rate r, the dividend rate, delta, and the volatility of the stock price, how do we find the price of the call option to buy Ankle Compuner in our first example?

We begin with the law of one price. Two instruments with the same cash flows should have the same price. We know how to calculate the price and payoff of stocks and bonds. So if we can create a portfolio of stocks and bonds with the same payoff as the call option, they must have the same price.

In one year, if Ankle Compuner is selling for more than 1100 (we call this the exercise price, K), the payoff is the price at expiration (St)-K. So if it is selling at 1300, the payoff is 1300-1100=200.

In one year, if Ankle Compuner is selling less than 1100, the payoff is 0.

The formulas above use *binomial option pricing* to find the price of this portfolio, and hence a theoretically correct price for this call option. Theory is important here: an incorrectly priced option will lead to an arbitrage opportunity. In short, the options may be bought and sold instantly (perhaps within billionths of seconds …) for a profit.

I can’t explain any more here without getting in real deep.

While I am studying on this stuff, I am writing C++ and VBA programs, as a way to learn some computer languages that are in demand for actuaries. My “native” language is LISP. Other languages seem really ugly. When you are first learning a language, the code ends up pretty ugly anyways.

So, here is my code:

#include <cstdlib>

#include <iostream>

#include <cmath>

#include <iomanip>

//Calculates price of call option, and portfolio required to duplicate option, using binomial tree

int main() {

using namespace std;

float S0, r,div, K, h, sigma, u, d, uS,dS,Cu,Cd,delta, bondValue, callPrice;

//get data

cout<<“Calculate the price of a call, using a one period binary tree”<<endl;

cout<<“Current Stock Price?”;

cin>>S0;

cout<<“Continuously Compounded Risk Free Rate?”;

cin>>r;

cout<<“Continuous Dividend Rate?”;

cin>>div;

cout<<“Strike Price?”;

cin>>K;

cout<<“Time to Expiration?”;

cin>>h;

cout<<“Volatility?”;

cin>>sigma;

//calculate likely upward and downward motions

u=exp((r-div)*h+sigma*sqrt(h));

d=exp((r-div)*h-sigma*sqrt(h));

uS=u*S0;

dS=d*S0;

cout<<“Upward Move “<<uS<<endl;

cout<<“Downward Move “<<dS<<endl;

//calculate payoff of call, given motions above

if (uS > K)

Cu = uS-K;

else Cu = 0;

if (dS > K)

Cd = dS-K;

else Cd = 0;

//calculate Delta, Beta, and call option price

delta=exp(-div * h)*(Cu-Cd)/(S0*(u-d));

bondValue=exp(-r * h)*((u*Cd)-(d*Cu))/(u-d);

callPrice=delta*S0+bondValue;

cout<<“To duplicate the call, buy “<<delta<<” shares of the stock for “<<delta*S0<<” dollars and borrow “<<-1 * bondValue<<” at the rate of “<<r<<” for a total price of “<<callPrice<<endl;

cout<<“Price of Call “<<callPrice<<endl;

//find the price of some other related calls

cout<<“Some other Call prices: “<<endl;

float step;

step = 0.05*K;

K= K-5*step;

for (int z=0;z<11;z++){

if (uS > K)

Cu = uS-K;

else Cu = 0;

if (dS > K)

Cd = dS-K;

else Cd = 0;

delta=exp(-div * h)*(Cu-Cd)/(S0*(u-d));

bondValue=exp(-r * h)*((u*Cd)-(d*Cu))/(u-d);

callPrice=delta*S0+bondValue;

cout<<setw(8)<<k<<” “<<callprice<<<span=”” class=”hiddenSpellError” pre=”” data-mce-bogus=”1″>endl;

K=K+step;

}

return 0;

}

//Wow what an ugly program

Here is a sample run:

If we buy 0.5483 shares of Ankle, and borrow 496.15 dollars at the continuously compounded risk-free rate of 10% (our current artificially induced nearly 0% interest rates are way uninteresting for examples), for a total cost of $52.18, we will duplicate the payoff for our call. So our call option should be $52.18.

Let’s check the math.

If we buy the one year $1100 call, and the stock price is 1221.40 in one year, our payoff will be 121.40. If the price is 1000, our payoff is 0.

Suppose that we buy our $52.18 portfolio.

In one year, if the stock price is 1221.40, our 0.5483 share is worth $669.69.

We borrowed 496.15 at 10% interest. In one year we must pay back We sell the stock, and pay back the loan, for a payoff of $121.53. Which is close enough due to all of the rounding that I did.

Now you see why I don’t write about what I think about all day.