# python in financeeee

*label*Programming

*timer*Asked: Feb 12th, 2015

**Question description**

A type-Z option has the following payoff function:

{ K[1+sin(2*pi*St/(K))] if St

F(St)=

{K*exp^1-St/(k) if St>=K

1. Write a Python function with the following definition: def f(ST,K):

which calculates the payoff of a type-Z option.

Write a Python function with the following definition:

def plotTypeZPayoff (K,STMax):

which plots the payoff function of the type-Z option as a function of ST for given K. The range of the horizontal axis should be [0,STMax] and vertical axis [0,2.1K]. Include this graph in your written work for the case K = 20,STMax = 100.

2. Write a loop based binomial options pricing function with the definition: def binomOption(payoff ,steps ,T,sigma,S0,r): where payoff is a function of one variable. The variable sigma (σ) is the volatility, √√ related to u and d by u=exp(σ sqrt(δt)) and d=exp(−σ sqrt(δt)). Write a factory function with the definition:

def makeZPayoff(K):

which returns a type-Z payoff function with fixed K.

3. Fix T = 1,r = 0.05,K = 20,S0 = 15,steps = 200. Calculate the value of the type-Z option for σ ∈ {0.01, 0.1, 0.2, 0.3}. Produce a two column table of σ values and the corresponding option values in your written work. Explain why increasing σ increases the value of the option in this example. What do you expect to happen as σ → ∞ and why? If S0 = K, what would be the effect of increasing σ and why?

Fix T = 1,r = 0.05,K = 20,S0 = 15,steps = 200. Produce a graph of the type-Z option’s value at t = 0 as a function of S0 for S0 ∈ [0,100] for each of the following values of σ : {0.01, 0.1, 0.2, 0.3}. Show all four graphs on the same axes and include it in your written work. What effect does increasing volatility have on the price graph and why?

Fix T = 1,r = 0.05,K = 20,S0 = 15,steps = 200 and suppose the option’s value is V0 = 2.0. Write a root finding function to calculate the volatility σ correct to 6 significant figures. Include the result in your written work.