Ask C/C++ Expert


Home >> C/C++

Part A -

1. Create the following class hierarchy, with Option at the top. Option then has derived classes EuropeanOption, AmericanOption, etc. We are going to define a number of methods (some of them virtual functions) within Option that will allow us to value options.

794_Figure.png

2. Create a constructor in Option that takes double K, double T, double sigma and double r as strike, time-to-maturity, stock volatility and risk-free rate parameters respectively. This constructor should be used by each of the derived classes in their constructors. Additionally, the Option class should keep protected properties for Strike, TimeToMaturity, Sigma and r.

3. To Option, add a virtual function double getExerciseValue (double s , double t) that returns the exercise value of the option for spot price s at time t.

Note: for American options, this just returns the intrinsic value of the options. For European options, if t ! = TimeToMaturity, then the exercise value should be zero (that is, European options can only be exercised at maturity).

4. To Option, add a virtual function:

double getBlackScholesValue (double s) that returns the Black Scholes value of the option.

5. To Option, add a method:

double getBinomialTreeValue (double s , int N) that returns the value of the option using a binomial tree of depth N. As with getBlackScholesValue(), the value of the option should be taken for a spot of s

a. You should use a single vector to hold your tree node values.

b. The binomial tree should handle early exercise by comparing the current node's "binomial" value to the exercise value at that time and spot.

c. The getBinomialTreeValue() method should not be virtual. That is, the tree can be implemented using the getExerciseValue() method and does not need to know specifically what type of option is being valued. Below is some pseudocode that should be helpful. Source: https://en.wikipedia.org/wiki/Bihomial options pricing model

6. To Option: add a virtual function:

double getValue (double s) that returns the option value for spot value s.

European options should return the Black-Scholes value. American options should return the binomial tree value of the option with a tree depth of 250.

7. Make sure to implement the virtual functions, at the appropriate level, for all the option classes. For example, if a class can implement the function for all its derived classes (like getValue()), then implement the function within that class. If not, then implement the function within derived classes. Remember that calls and puts have different forms of the Black Scholes formula.

Part B -

1. Create a Bond class with a constructor that takes principal, coupon, recovery rate and time to maturity as parameters. Store the parameters as properties. For the purposes of the homework, we will assume that coupons (if any) are paid annually.

2. Add a public method called double getPrice (double YTM) which returns the bond's price given its yield to maturity. The formula for price given yield to maturity is:

price(T, YTM) = principal/(1+YTM)T + coupon * i=0T-i>0 1/(1+YTM)T-i  

Notice that we count "backwards" from time to maturity to discount coupons. So, if T=5, we discount coupons at 5 years, 4 years, 3 years, 2 years and 1 year. If T=4.75, we discount coupons at 4.75 years, 3.75 years, 2.75 years, 1.75 years and 0.75 years.

3. Add a public method called double getYTM (double price) which returns the bond's yield to maturity given its price. Note: you will need to use a root-finding method like the secant method to search for the appropriate YTM. Use a function like:

f(ytm) = price - getPrice(ytm) to find the ytm that produces the expected price

4. Add a public method called double getHazandRate (double price, double r) which returns the bond's hazard rate for a given price and risk-free rate.

You can estimate the hazard rate using the following formula:

YTM - r/1 - RecoveryRate

5. Add a public method called double getDefaultProbability (double t, double price, double r) which returns the bond's default-probability for a given price and risk-free rate.

Remember, to calculate default probability (dp) we first calculate survival probability (sp).

sp(t) = e-ht, dp(t) = 1 - sp(t)

6. Add a public method called double getModifiedDuration (double YTM) which estimates the modified duration of the bond using the following formula:

modified duration = 100 * (price (ytm) - price(ytm+0.01)/price(ytm))

That is, it estimates the modified duration by adding 1% to the yield-to-maturity and calculating the price difference.

Attachment:- Assignment Files.rar

C/C++, Programming

  • Category:- C/C++
  • Reference No.:- M92231562
  • Price:- $90

Guranteed 48 Hours Delivery, In Price:- $90

Have any Question?


Related Questions in C/C++

Question 1find the minimum and maximum of a list of numbers

Question: 1. Find the Minimum and Maximum of a List of Numbers: 10 points File: find_min_max.cpp Write a program that reads some number of integers from the user and finds the minimum and maximum numbers in this list. Th ...

Software development fundamentals assignment 1 -details amp

Software Development Fundamentals Assignment 1 - Details & Problems - In this assignment, you are required to answer the short questions, identify error in the code, give output of the code and develop three C# Console P ...

What are the legal requirements with which websites must

What are the legal requirements with which websites must comply in order to meet the needs of persons with disabilities? Why is maximizing accessibility important to everyone?

There are several ways to calculate the pulse width of a

There are several ways to calculate the pulse width of a digital input signal. One method is to directly read the input pin and another method (more efficient) is to use a timer and pin change interrupt. Function startTi ...

Assignment word matchingwhats a six-letter word that has an

Assignment: Word Matching What's a six-letter word that has an e as its first, third, and fifth letter? Can you find an anagram of pine grave. Or how about a word that starts and ends with ant (other than ant itself, of ...

1 implement the binary search tree bst in c using the node

1. Implement the Binary Search Tree (BST) in C++, using the Node class template provided below. Please read the provided helper methods in class BST, especially for deleteValue(), make sure you get a fully understanding ...

Assign ment - genetic algorithmin this assignment you will

ASSIGN MENT - GENETIC ALGORITHM In this assignment, you will use your C programming skills to build a simple Genetic Algorithm. DESCRIPTION OF THE PROGRAM - CORE REQUIREMENTS - REQ1: Command-line arguments The user of yo ...

Project - space race part a console Project - Space Race Part A: Console Implementation

Project - Space Race Part A: Console Implementation INTRODUCTION This assignment aims to give you a real problem-solving experience, similar to what you might encounter in the workplace. You have been hired to complete a ...

Why do researcher drop the ewaste and where does it end

Why do researcher drop the ewaste and where does it end up?

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As