Create a constructor in option

Assignment Help C/C++ Programming
Reference no: EM131421780

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<double> 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

Reference no: EM131421780

Questions Cloud

Discuss the key ways in which you would use wikis : Discuss the key ways in which you would use wikis and blogs in order to enhance the learning levels of students in your classroom. Present one example of a wiki or blog used for the purpose(s) that you have discussed.
Debate the relative merits of there two positions : Discuss this problem. Access to health care can be viewed as similar to access to other goods and services--that is, as dependent on an individual's success in gaining or inheriting income, or as a right of citizenship that should not depend on in..
Bond risk management : Given the Federal Reserve Board's current and forward-looking position on interest rates, predict the level of risk associated with investing in bonds and recommend a portfolio percentage for investment in bonds for a financial institution.
Identification of the existing law : identification of the "existing law" (e.g., by Public Law Number, (e.g., USC if it is a Federal law that has been codified, State Statute Number if it is a State law or other identifying designation) which clearly shows the law is in existence som..
Create a constructor in option : 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
What do you think will be challenging about anchor standard : What do you think will be challenging about this anchor standard? For both teachers and students? How will you support students' mastery of this anchor standard?
How does greene use the classical appeals : What real world analogies does Greene use to help relate the information? How are these helpful? How do they fall short and how does Greene work to meet the needs of his readers?
Increased labor costs impact restaurant break-even point : Fast Food may seem like a decidedly “low-tech” industry. However, some of the leading fast food companies are experimenting with automation, and more may be on the way. The hourly wages of a typical fast food worker would be considered what type of c..
Create three word study activities or games that can be used : To support your Read-Aloud/Think-Aloud activity from this discussion forum #1, create three word study activities or games that can be used to support both your text and your chosen anchor standard.

Reviews

len1421780

3/10/2017 1:22:40 AM

Need help to design C++ programs with application to finance (basic option and bonds pricing, binomial trees). Please see attached for additional files. (Binomial file and assign cont file). If the tutor is able to finish the assignment (either question 1 or question 2) earlier than deadline, please send to me so I can study it earlier. 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). Note: make sure to download Assignment5Files.zip from study.net. If you include normal.h and normal.cpp in your project, then you can call normal:NO to estimate the cumulative normal distribution.

Write a Review

C/C++ Programming Questions & Answers

  Algorithm that returns the smallest value in the array

Write an algorithm that outputs the smallest and second smallest values in the array.

  Develope problem-solving skills and declaring variables

Developing problem-solving skills, declaring variables, multi-way branches, data validation. Do not accept values larger than 10 meters or smaller than 1 x 10-20 meters as input for the wavelength.

  Calculate the total as well as the average payment

Create a C++ application which will read a file of daily payments, calculate the total as well as the average payment, display the results to the screen and write the results to a file.

  Machine that i would like to know

Let's say I have a machine that I would like to know, on average, how much it runs throughout a given day through a percentage value. Every 30 seconds, I will have a device to record the current temperature of the machine. If the machine increases..

  Write an abstract class carbon footprint

Using an abstract class with only pure virtual functions, create three small classes unrelated by inheritance---clases Building, Car and Bicycle.

  What is realistic rendering in computer graphic

Differentiate between pillar boxing and the letter boxing. What is realistic rendering in computer graphic. Discuss the approach used in realistic rendering.

  Write a c++ function that removes and counts all occurrences

Write a C++ function that removes and counts all occurrences of a given string from such a bag. Your function should return this number.

  Explain the data types used in c language

What is data type? Explain the data types used in C language.Write a program and draw a flowchart to print 1 to 100 all natural numbers.

  Show that regularity is preserved under the shift operation

Show that the regularity is preserved under the shift operation - I have the answer already but i do not understand

  Write program in c to record temperature and pressure values

Write a program in C to record the temperature and pressure values in a scientific experiment and store the data in two one-dimensional arrays, then identify the extreme values of pressure and temperature.

  Create a class called geometrycalculator.

compute the volume and surface area of a sphere with radius r, a cylinder with circular base with radius r and height h, and a cone with circular base with radius r and height h.

  How to declare and use single dimension arrays

How do you declare and use single dimension arrays? How do you perform basic sort and search routines on arrays?

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd