Wednesday, February 10, 2010

Martingale, physical probability and arbitrage-free probability

So I was working through a problem in the book Heard on The Street. It goes like this:

"Suppose that the riskless rate is zero...a stock is at $100...one year from now will be at either $130, or $70, with probabilities 0.80 and 0.20...What is the value of a one-year European call with strike $110?"

My first response is: A-ha! Since r is zero, there is no drift and hence the process is a martingale. For a martingale, physical probability = arbitrage-free probability, and so

c = 0.8*(130-110)=16

Before seeing why the red part (and hence the result) is wrong, let me point out how I got that impression. Consider a game in which you bet $1 and get $2 or $0 if a head or tail turns up when a coin is flipped, respectively. This is obviously a martingale, since there is no drift; and clearly, r is zero. And unfortunately, in this particular case, the statement physical probability = arbitrage-free probability is correct.

What about in general? It turns out that it is not true. In fact if we think about the relationship between the two probability measures on a binomial tree, the arbitrage-free probability p is

p = (exp(r)-D)/(U-D)

where U and D are the up- and down-scaling factors. Hence even when r is zero, we still need to compute the non-trivial arbitrage-free probability. It is by accident only that in the coin-flipping game physical probability = arbitrage-free probability since

(1-0)/(2-0) = 0.5

What an ugly coincidence! The moral of the story:
As one of my professor has told me, never plug in 1's and 0's when checking your calculations - and never think of the coin flipping game when checking your martingale pricing. Use other cases as examples.

Tuesday, February 9, 2010

C++ function (Passing by ???)

Passing by value
void func(int a){}

Advantage
Leave argument untouched

Disadvantage
Create an extra copy -> can consume more time

Passing by reference
void func(int& a){}

Advantage
No extra copy created

Disadvantage
Alters the argument variable, can be dangerous if not used with caution
(cf. http://iagtm.blogspot.com/2011/06/quant-interview-questions-model_10.html)

Pointer (C legacy?)
void func(int* a){}

Monday, February 8, 2010

Maximum Likelihood Estimation (MLE)

http://en.wikipedia.org/wiki/Maximum_likelihood

What is known
-The population distribution is parameterized (e.g. normal, binomial, ...)
-A bunch of samples is collected

Goal
Estimate the population distribution parameter

Recipe
See what parameter will have the greatest probability of producing these samples

Example
An unfair coin has head probability of either P = 0.3 or 0.8. It is flipped 100 times and turns up 43 heads. Find the MLE for P.

Tuesday, February 2, 2010

Sample Variance vs. Standard Error of Sample Mean

These two are a little confusing at first sight, so let's put them down here.

The sample variance, S^2, is an attempt to estimate the popupation variance, sigma^2.
http://en.wikipedia.org/wiki/Variance#Population_variance_and_sample_variance

The standard error of sample mean, on the other hand, tells us the standard error of the sample distribution. That is to say, as we draw samples from a population to estimate the mean, the sample mean itself would form a distribution; what is the standard deviation of THIS distribution?
http://en.wikipedia.org/wiki/Standard_error_%28statistics%29#Standard_error_of_the_mean