Hi,

I have started to learn mathematical finance and I find out about this problem:

I find out that there exists options that are priced in assets and are settled in cash, but also in assets terms. (So instead of getting 800$, you would get 800/1600 = 0.5

How should I price these options? I came up with two approaches.

One approach is to use Black Scholes model and find price in USD and the convert it to amount of asset by dividing it by current price of the asset.

But I also come up with a second approach. Instead of

[math]x = E_{p}[max(0, \frac{(p-K)}{p}][/math]

where

Example:

- S = 20

- K = 20

- r = 0

- T = 7/365.2425

- vol = 1.3

First approach:

In USD = $1.43 = 0.0715 in asset

Second Apporach:

In Asset = 0.05758 in asset = $1.15

[CODE lang="python" title="Brownian motion"]

def MCSIM(S,t,r,vol,M=1000000):

N = 1

T = t

dt = T/N

nudt = (r - 0.5*vol**2)*dt

volsdt = vol*np.sqrt(dt)

lnS = np.log(S)

Z = np.random.normal(size=(N,M))

delta_lnSt = nudt + volsdt*Z

lnSt = lnS + np.cumsum(delta_lnSt,axis=0)

lnSt = np.concatenate((np.full(shape=(1,M),fill_value=lnS), lnSt))

ST = np.exp(lnSt).T[:,1]

return ST[/CODE]

[CODE lang="python" title="Pricing functions"]

# first Approach (Black Scholes))

def option1A(S,K,t,r,vol,M=1000000):

paths = MCSIM(S,t,r,vol,M=M)

return np.maximum(0, paths - K).mean()*np.exp(-r*t)/S

# Second Approach

def option2A(S,K,t,r,vol,M=1000000):

paths = MCSIM(S,t,r,vol,M=M)

return np.maximum(0, (paths - K)/paths).mean()

[/CODE]

I have started to learn mathematical finance and I find out about this problem:

I find out that there exists options that are priced in assets and are settled in cash, but also in assets terms. (So instead of getting 800$, you would get 800/1600 = 0.5

*assets*, where 1600 is the current price of the asset).How should I price these options? I came up with two approaches.

One approach is to use Black Scholes model and find price in USD and the convert it to amount of asset by dividing it by current price of the asset.

But I also come up with a second approach. Instead of

**BS**, I can directly calculate the price in asset terms. I can simulate the brownian motion and then calculate the price as:[math]x = E_{p}[max(0, \frac{(p-K)}{p}][/math]

where

- K is strike price

Example:

- S = 20

- K = 20

- r = 0

- T = 7/365.2425

- vol = 1.3

First approach:

In USD = $1.43 = 0.0715 in asset

Second Apporach:

In Asset = 0.05758 in asset = $1.15

**Code**[CODE lang="python" title="Brownian motion"]

def MCSIM(S,t,r,vol,M=1000000):

N = 1

T = t

dt = T/N

nudt = (r - 0.5*vol**2)*dt

volsdt = vol*np.sqrt(dt)

lnS = np.log(S)

Z = np.random.normal(size=(N,M))

delta_lnSt = nudt + volsdt*Z

lnSt = lnS + np.cumsum(delta_lnSt,axis=0)

lnSt = np.concatenate((np.full(shape=(1,M),fill_value=lnS), lnSt))

ST = np.exp(lnSt).T[:,1]

return ST[/CODE]

[CODE lang="python" title="Pricing functions"]

# first Approach (Black Scholes))

def option1A(S,K,t,r,vol,M=1000000):

paths = MCSIM(S,t,r,vol,M=M)

return np.maximum(0, paths - K).mean()*np.exp(-r*t)/S

# Second Approach

def option2A(S,K,t,r,vol,M=1000000):

paths = MCSIM(S,t,r,vol,M=M)

return np.maximum(0, (paths - K)/paths).mean()

[/CODE]

Last edited: