• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

State-contigent claims - Option Pricing

Hello everyone,

currently I am dealing with state contigent claims in a very basic setup.

I have 4 different securities and 3 possible states that can occure in the future.


The securities are currently traded at the market prices of p(x)=(0.5 ; 1.6 ; 3.0 ; 2.7)

First I checked, if the prices are arbitrage free. --> it is arbitrage free and the market is complete.
So, the next step would be to determine the cash flows generated by a call option on Security d with a strike price of 2.5 as well the market price of the call option.

The first idea what I got was to determine arrow-securities for each state.

arrow security 1 =(1,0,0); price=0.1
arrow security 2 =(0,1,0); price=0.2
arrow security 3 =(0,0,1); price=0.5

First i have to determine the cash flows of the call-option for security d.
My Idea was:
Cashflow in State 1 for the option: 3 - 2.5 = 0.5
Cashflow in State 2 for the option: 2 - 2.5 = 0 (out of the money)
Cashflow in State 1 for the option: 4 - 2.5 = 1.5

So i generated this new call option vector with cashflow (0.5 , 0 , 1.5)
Now i replicate this vecor with the arrow securities (half of arrow1 and 1.5 of arrow 3)
Multiplied this relation with each arrow price gives me a price of 0.8 for the cash flow vetor (0.5 , 0 , 1.5)

Using the same method to calculate a put option leads to a price which violate the put-call parity. So, I assumed my approach was wrong.

Could you please give me some advice on this problem?

Thanks in advance!