Assume that we have a general one-period market model consisting of d+1 assets and N states.

Using a replicating portfolio $\phi$, determine $\Pi(0;X)$, the price of a European call option, with payoff $X$, on the asset $S_1^2$ with strike price $K = 1$ given that

$$S_0 =\begin{bmatrix} 2 \\ 3\\ 1 \end{bmatrix}, S_1 = \begin{bmatrix} S_1^0\\ S_1^1\\ S_1^2 \end{bmatrix}, D = \begin{bmatrix} 1 & 2 & 3\\ 2 & 2 & 4\\ 0.8 & 1.2 & 1.6 \end{bmatrix}$$

where the columns of D represent the states for each asset and the rows of D represent the assets for each state

What I tried:

We compute that:

$$X = \begin{bmatrix} 0\\ 0.2\\ 0.6 \end{bmatrix}$$

If we solve $D'\phi = X$, we get:

$$\phi = \begin{bmatrix} 0.6\\ 0.1\\ -1 \end{bmatrix}$$

It would seem that the price of the European call option $\Pi(0;X)$ is given by the value of the replicating portfolio

$$S_0'\phi = 0.5$$

On one hand, if we were to try to see if there is arbitrage in this market by seeing if a state price vector $\psi$ exists by solving $S_0 = D \psi$, we get

$$\psi = \begin{bmatrix} 0\\ -0.5\\ 1 \end{bmatrix}$$

Hence there is no strictly positive state price vector $\psi$ s.t. $S_0 = D \psi$. By 'the fundamental theorem of asset pricing' (or 'the fundamental theorem of finance' or '1.3.1' here), there exists arbitrage in this market.

On the other hand the price of 0.5 seems to be confirmed by:

$$\Pi(0;X) = \beta E^{\mathbb Q}[X]$$

where $\beta = \sum_{i=1}^{3} \psi_i = 0.5$ (sum of elements of $\psi$) and $\mathbb Q$ is supposed to be the equivalent martingale measure given by $q_i = \frac{\psi_i}{\beta}$.

Thus we have

$$E^{\mathbb Q}[X] = q_1X(\omega_1) + q_2X(\omega_2) + q_3X(\omega_3)$$

$$ = 0 + \color{red}{-1} \times 0.2 + 2 \times 0.6 = 1$$

$$\to \Pi(0;X) = 0.5$$

I guess $\therefore$ that we cannot determine the price of the European call using $\Pi(0;X) = \beta E^{Q}[X]$ because there is no equivalent martingale measure $\mathbb Q$

So what's the verdict? Can we say the price is 0.5? How can we price even if there is arbitrage?

Edit: I noticed that one of the probabilities, in what was attempted to be the equivalent martingale measure, is negative. I remember reading about negative probabilities, but these links 1 2 mentioned by Wiki seem to assume absence of arbitrage so I think they are not applicable. Or are they?

Is it perhaps that this market can be considered to be arbitrage-free under some quasiprobability measure that allows negative probabilities?

Edit (to address a deleted answer):

Thanks BKay.

1 So you mean there is no unique price for $X$ but we can find upper bounds? Like in your example the least upper bound so far is 0.3 then we can continue to find lower upper bounds $u_1, u_2, ...$ (or even higher lower bounds $l_1, l_2, ...$) to say the price of $X$ is in $[0,\inf_n u_n]$ (or $[\sup_n l_n,\inf_n u_n]$)?

2 Re stochastic domination, I haven't heard that term in classes, but I think I read about that before. Might that depend on the (quasi)probability measure? Under this probability measure $0.5 S_1^2$ dominates $X$ but what about under some quasiprobability measure?

3 the $q_i$'s, not the $\psi_i$'s are the probabilities

  • 1
    $\begingroup$ This question seems to be more suited for quant.stackexchange. $\endgroup$
    – Wecon
    Dec 15, 2015 at 14:11
  • 3
    $\begingroup$ @Wecon Thanks. Stochastic calculus questions seem to be asked and answered here though. $\endgroup$
    – BCLC
    Dec 15, 2015 at 14:25

1 Answer 1


I believe there is not a unique price. Say, instead of buying the option you spent 0.5 on a half a unit of the asset $S^2_1$ This asset pays out $[0.4, 0.6, 0.8]$ which first order stochastically dominates the option. So, no matter your probability beliefs about the states, in that setting you'd never pay $0.5$ for the option which pays less in every state. This suggests the right price is less than $0.5$. Similarly, buying $0.25$ units of the $S^0_1$ asset or $0.167$ units of the $S^1_1$ asset would likewise stochastically dominate the option. In fact, because for $0.375$ units of asset $S^1_2$, which costs on $0.375$, you can still have an asset that pays out $[0.3, 0.45, 0.6]$, it seems unlikely that the price could even be as high as $0.375$. Asset 0 implies a price below $0.4$ and asset 1 below $0.45$

Some python code to solve:

import numpy as np
S0 = np.array([[2],[3],[1]])
D = np.array([[1,2,3], [2,2,4], [0.8, 1.2, 1.6]])
X = np.array([[0.0],[0.2],[0.6]])
phi = np.dot(np.linalg.inv(D.transpose()), X)
print('The weights of the portfolio that replicates payoff X are: \n', phi)
P_X = np.dot(S0.transpose(), phi)
print('With a price: ', P_X)
print('Normalizing to pay a fixed price P_X for each of the three assets, what payoffs can you get?')
D_norm = D/(2*S0)
print('Notice that all three first order stochastically dominate the option for a price of: ', P_X)
print(D_norm - X.transpose())
print('Using each of the base assets, what\'s the minimum quantity that dominates?')
D_relative = X.transpose() / D
Min_dominating_fraction = np.max(D_relative,axis=1)
print('Minimum fraction of each of the assets that dominates X\n', Min_dominating_fraction)
P_Min_dominating_fraction = S0.transpose() * Min_dominating_fraction 
print('At prices of: ', P_Min_dominating_fraction)
print('Therefore the option price should be less than: ', np.min(P_Min_dominating_fraction))

This code doesn't spell out the price of the option, it just show my calculations for the paragraph above. I believe the real price of this option would actually be zero if shorting is permitted. If you buy three units of asset $S^2_0$ and short one unit of $S^1_0$ you get an asset with payouts $[ 0.4, 1.6, 0.8]$. This position costs nothing to take, has positive payouts for all states, and first order stochastically dominates the option itself. Since it is possible to make a better than replicating portfolio at zero cost the price should be zero. Oh the insanity at work when arbitrages are present!

  • $\begingroup$ re the last paragraph, what exactly do you mean? the $\psi_i$'s are not the probabilities. the $q_i$'s are. They are not nonnegative but they sum to 1 $\endgroup$
    – BCLC
    Dec 17, 2015 at 0:59
  • 1
    $\begingroup$ I think I misunderstood some of your notation. Let me think on it a bit and rewrite it. $\endgroup$
    – BKay
    Dec 17, 2015 at 1:05
  • $\begingroup$ Thanks BKay. Wasn't notified though I think. Will read later $\endgroup$
    – BCLC
    Dec 18, 2015 at 12:10
  • 1
    $\begingroup$ Try pasting the code in here: pythonanywhere.com/try-ipython $\endgroup$
    – BKay
    Dec 18, 2015 at 12:23
  • 1
    $\begingroup$ Please see my further update/ $\endgroup$
    – BKay
    Dec 18, 2015 at 13:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.