代做FITE7405: Assignment 3代写R语言

FITE7405: Assignment 3 (20%)

Due date: 02-04-2024

1    General Information

In this assignment, you will implement a mini option pricer which can price various options including European options, Basket options, Asian options, and American options.  The computational methods available in the pricer include analytical closed-form. formulas, Monte Carlo simulation, and the binomial tree method.

You can freely choose your programming language and platform.  In this assignment, in general you should not use any third-party code except some basic statistics functions (e.g., normal random variable generator, normal cumulative distribution function, and sample covariance function, etc.). If you are not sure, please check with us first.

You are welcome to work independently or in groups (up to 3 team members) on this assignment.

2    Mathematical Background

For this assignment, we assume that an asset follows the geometric Brownian motion presented in our lecture

S(T) = S(t)e(r- 2 )△+σZ ,                                               (1)

If we have two assets, we assume their asset prices can be described by

S1(T)  =  S1(t)e(r- 1(2))△+σ1 Z(1) ,                                         (2)

S2(T)  =  S2(t)e(r- 2(2))△+σ2 Z(2) ,                                         (3)

where σi  are the respective volatilities of the two assets, △ = T - t, Z(1)  and Z(2)  are both standard normal random variables, and P(Z(1), Z(2)) = P.

Similar to Asian options, there are two types of baskets. For a geometric mean basket, its level at time t is

It can be shown that Bg(t) follows a geometric Brownian motion with drift μBg   and volatility σBg   defined by

where pi,j  is the correlation between standard normal random variables Zt(i)  and Zt(j)  corre- sponding to asset i and asset j.

The call/put options on a geometric mean basket have respective payofs at maturity T

max(Bg(T) - K, 0),    max(K - Bg(T), 0).

Then their values are given by

where

An arithmetic mean basket is defined by

As there are no closed-form. formulas for call/put options on such basket, you are required to

implement a Monte Carlo pricer to price them. Their payofs at maturity T are

max(Ba(T) - K, 0),    max(K - Ba(T), 0).

Similar to the Asian options, you can use the option on the geometric mean basket as a control variate.

3 KIKO Put Option with Rebate

As discussed in our lecture, we consider a put option with knock-in and knock-out barriers (KIKO put). Specifically, the payof function at maturity T is

where ti  = T, i = 1, . . . , n, S(ti) is the asset price at ti , K  is the strike price, and L is a given down-and-in barrier which satisfies L < S(t0 ). Moreover, at any time ti, if S(ti) ≥ U , the option terminates and pays out R dollars to the option holder right away. Here U is a positive up-and-out barrier, that is, U > S(t0 ), and R is the rebate payment.

4    Implementation Tasks

The implementation tasks include:

1. Implement Black-Scholes Formulas for European call/put options.

2. Implied volatility calculations.

3. Implement closed-form. formulas for geometric Asian call/put options and geometric basket call/put options.

4. Implement the Monte Carlo method with control variate technique for arithmetic Asian call/put options.

5. Implement the Monte Carlo method with control variate technique for arithmetic mean basket call/put options.  For the arithmetic mean basket options, you only need to consider a basket with two assets.

6. Implement the Quasi-Monte Carlo method for a KIKO-put option.  Calculate the price and the Delta of a given option.

7. The Binomial Tree method for American call/put options.

8. A graphical user interface for users to easily price various options with your pricer.

5    Input Parameters and Output Results

You option pricer should provide the following input parameter list for each type of option:

• European call/put option: the spot price of asset S(0), the volatility σ, risk-free interest rate r, repo rate q, time to maturity (in years) T, strike K, and option type (call or put).

• Implied volatility calculator: the spot price of asset S(0), risk-free interest rate r, repo rate q, time to maturity (in years) T, strike K, the option premium, and the option type (call or put).

• American call/put option: the spot price of asset S(0), the volatility σ, risk-free interest rate r, time to maturity (in years) T, strike K, the number of steps N, and option type (call or put).

•  Geometric Asian option:  S(0), σ , r , T, K, the number of observation times for the geometric average n, and the option type (call or put). With the parameters n and T, you should assume that the geometric average involves S( T n ), S( 2 n T ), . . . , S( (n− n 1)T ), and S(T).

• Arithmetic Asian option: it has all input parameters for geometric Asian option and two extra input parameters. One is the number of paths in the Monte Carlo simulation. The other one is to specify the control variate method (no control variate, or geometric Asian option). Your pricer should output the 95% confidence interval.

•  Geometric basket option: the spot prices of two assets S1(0) and S2(0), the volatilities of the two assets σ 1  and σ2 , r , T, K, the correlation P, and option type (call or put).

•  Arithmetic basket option: it has all input parameters for geometric basket option and two extra input parameters. One is the number of paths in the Monte Carlo simulation. The other one is to specify the control variate method (no control variate, or geometric basket option). Your pricer should output the 95% confidence interval.

• KIKO put option:  S(0), σ , r , T, K, lower barrier L, upper barrier U, the number of observation times n, and the cash rebate R.

6 Test Cases

You can assume r = 0.05, T = 3, and S(0) = 100.  The number of paths in Monte Carlo simulation is m = 100, 000. Note that for the Monte Carlo implementation, please explicitly fix the initial seed/state of the random number generator so that the results from your program are reproducible. You should test the following cases for each type of options:

• Asian options:

σ

K

n

Type

0.3

100

50

Put

0.3

100

100

Put

0.4

100

50

Put

0.3

100

50

Call

0.3

100

100

Call

0.4

100

50

Call

For the arithmetic Asian option, test the MC without/with control variate.

•  Basket options:

S1(0)

S2(0)

K

σ 1

σ2

P

Type

100

100

100

0.3

0.3

0.5

Put

100

100

100

0.3

0.3

0.9

Put

100

100

100

0.1

0.3

0.5

Put

100

100

80

0.3

0.3

0.5

Put

100

100

120

0.3

0.3

0.5

Put

100

100

100

0.5

0.5

0.5

Put

100

100

100

0.3

0.3

0.5

Call

100

100

100

0.3

0.3

0.9

Call

100

100

100

0.1

0.3

0.5

Call

100

100

80

0.3

0.3

0.5

Call

100

100

120

0.3

0.3

0.5

Call

100

100

100

0.5

0.5

0.5

Call

For the arithmetic basket option, test the MC without/with control variate.

For other types of options, you can design your own test cases.

7 Report

You need to submit a report consisting of the following sections:

•  List the contributions to the assignment from each team member.  This is for our information only and doesn’t afect the marks each group/group member receives.

•  Describe the user interface of your mini option pricer.  This is to help us learn how to run your pricer.

•  Describe the functionalities of each class/function. This is to help us understand your code. Keep this part short while informative.

•  Test cases and analysis. For each type of options, test your pricer with diferent param- eters and analyze how each parameter afects the option price.

•  Extensions. If you have implemented something interesting beyond the requirements of the assignment, please present it here.

8 Marking Scheme

• Implementation/Coding (80 marks).  The correctness and reliability of your code will be examined.

{ Closed-form formula implementation for European/geometric Asian/geometric Bas- ket options (10 marks).

{ Monte Carlo option pricing (50 marks). { Implied volatility calculation (5 marks). { Binomial Tree method. (15 marks).

•  Testing and Report (20 marks).  The report doesn’t have to be long.  Please keep it within 5 pages.

9    Possible Extensions

When developing a tool, it is important to foresee potential additional requirements for ex- tensions so that you could have a proper design initially.  In this section, I try to list some possible extensions to your mini option pricer. They are provided here for information only, and you don’t have to implement them in this assignment.

•  Price options on a basket with more than two assets.

•  Price more generic options.  In theory, Monte-Carlo simulation can price any path- dependent options without early exercises. So it is very often you will be asked to price a new type of option quickly.

•  Use GPU to accelerate your pricer.  Monte-Carlo simulation is by nature a very good user case for GPU application.

• Implement better pricer for American options.

{ Better tree-based method: Ting Chen and Mark Joshi, Truncation and Accelera- tion of the Tian Tree for the Pricing of American Put Options.

{ Spectral collocation method: Leif B. G. Andersen, High Performance American Option Pricing.








热门主题

课程名

eppd1033 m06 ee3025 msci231 bb113/bbs1063 fc709 nbs-7041x mbas902 comp-1027 dpst1091 comp7315 econ0060 comp9417 comp3425 litr1-uc6201.200 ee1102 econ42915 cb9101 math1102e chme0017 fc307 mkt60104 5522usst math39512 cosc2803 omp9727 ddes9903 int2067/int5051 bsb151 mgt253 fc021 babs2202 mis2002s phya21 18-213 cege0012 mdia1002 math38032 mech5125 cisc102 07 mgx3110 cs240 11175 fin3020s eco3420 ictten622 comp9727 cpt111 de114102d mgm320h5s bafi1019 efim20036 mn-3503 math21112 comp9414 fins5568 comp4337 bcpm0054 comp(2041|9044) 110.807 bcpm000028 info6030 inft6800 bma0092 math20212 cs365 ce335 math2010 ec3450 comm1170 cenv6141 ftec5580 ecmt1010 csci-ua.0480-003 econ12-200 ib3960 ectb60h3f cs247—assignment tk3163 ics3u ib3j80 comp20008 comp9334 eppd1063 acct2343 cct109 isys1055/3412 econ7230 math350-real math2014 eec180 msinm014/msing014/msing014b stat141b econ2101 fit2004 comp643 compsci 369 bu1002 cm2030 mn7182sr ectb60h3s ib2d30 ohss7000 fit3175 acct7104 econ20120/econ30320 math226 127.241 info1110 37007 math137a mgt4701 comm1180 fc300 ectb60h3 llp120 bio99 econ7030 csse2310/csse7231 comm1190 110.309 125.330 csc3100 bu1007 comp 636 qbus3600 compx222 stat437 kit317 hw1 ag942 fit3139 115.213 ipa61006 6010acc econ214 envm7512 fit4005 fins5542 slsp5360m 119729 cs148 hld-4267-r comp4002/gam cava1001 or4023 cosc2758/cosc2938 cse140 fu010055 csci410 finc3017 24309 bsys702 mgec61 cive9831m pubh5010 fsc60504 5bus1037 caes1000 plana4310 info90004 p6769 bsan3209 ap/adms4540 ast101h5f plan6392 625.609.81 csmai21 fnce6012 misy262 ifb106tc csci910 502it comp603/ense600 4035 csca08 8iar101 bsd131 msci242l csci 4261 elec51020 blaw1002 ec3044 acct40115 csi2108–cryptographic 158225 7014mhr econ60822 ecn302 philo225-24a acst2001 fit9132 comp1117b ad654 comp3221 st332 cs170 econ0033 engr228-digital
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图