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

  The purpose of the program is to prepare an accounting

the purpose of the program is to prepare an accounting database for e.g. a dorms kitchen to keep track of the

  Determine how many consonants are in an entered string

Write a program that determines how many consonants are in an entered string of 50 characters or less. Output the entered string and the number of consonants in the string.

  Write cpp code to open a document with the name hello-txt

Write C++ code to open a document with the name Hello.txt, place the message "Hello, World!" in the document, and exit the document. Re open the file you closed, and read the message into a string variable.

  What is a control statement

What is a Control Statement? There are several types of control statements; define two control statements and use your own example in your definition.

  Calculates how much money you''ll end up

Write a C program that calculates how much money you'll end up with if you invest an amount of money at a fixed interest rate, compounded yearly.

  Where are numeric constants called the coefficients

Add an evaluate operation to your Polynomial class that allows the user to enter a value for x and that calculates the value of the polynomial for that value.

  Write a loan calculator program

Write a loan calculator program in C++ that displays monthly balances for user-specified loan terms. To be flexible, you decide to specify the loan terms in a file and provide that filename  entered from the keyboard. To keep things simple

  Write a complete c++ program that read

Write a complete C++ program that read in from the key board a string and converts all letters in the string to upper cases. You are not allowed to use topper function.

  Display the complete fibonacci sequence

Display the complete Fibonacci sequence until you reach a value less or equal than 1,000,000 (one million) - display the division of the number by the previous one for the complete sequence.

  Give a pseudo code for the script logic.

Update the given script for above requirements, and also give a pseudo code for the script logic.

  Write a function that will calculate the current persons bmi

Write a function that will prompt for the current person's height in FEET and INCHES and return total height in INCHES. Write a function that will calculate and return the current person's BMI.

  Implement the polynomial regression algorithm

Write a C program to implement the polynomial regression algorithm

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