这是一个英国的Python随机过程作业代写

## Guidelines

– You need to provide all MATLAB, Python or equivalent code that you have developed as part

of your submission to Turnitin. This is compulsory. Include clarifications/comments in your

code whenever you feel appropriate.

– You need to submit one version of the code that is executable. Unless the code is executable

locally reaching the same results as those in your report, it will not receive full marks.

o One option is to have the code in the submitted document in a state where we can

copy it off your submission and execute. A few tips to assist you in the process:

Please note that line numbers left in the code often creates an issue with

executability. Python codes embedded in LaTeX can also create problems with

executability. Please ensure that prior to submission, you can copy the code back

from the document you plan to submit and execute it, just to double check.

o If you do not want to worry about the Turnitin version being executable or not, you

can additionally choose to use Datalore as suggested. A detailed video on how to

use it is available in Moodle. Please note that submitting via Datalore is optional.

– Your submission (excluding the space taken up by your code) should be no more than 15

pages and contain no more than 15 Figures. Clarity is expected in the Text, in your Figures,

and in your codes. A single figure/image cannot comprise of 10 illegible plots, please use

your reasoning when preparing your report.

– Please make sure that you address the answer for each section or question at its respective

slot. e.g. a correct answer to section (a) provided as response to section (b) will not be

considered for marking.

– You need to develop your own code. You are not allowed to use pre-existing toolboxes to

conduct stochastic simulations, for example. However, the use of standard Python packages

such as pandas or NumPy are acceptable. Regarding random number generators (r.n.g.), you

are only allowed to use a/the uniform r.n.g. available in the programming language you

chose (MATLAB, Python etc.). Uniqueness of your scripts will be assessed and will contribute

to your mark.

– To achieve full marks in each question, your methodology needs to be correctly

implemented and your code needs to be original (i.e. your own work).

– You will be allowed to submit your work multiple times until the deadline. The Turnitin

submission will be made available weeks before the deadline. Please note that it is your

responsibility to ensure that the submission is made on time. Late submissions, SORAs and

ECs will be handled by the Admin Team, not your tutors.

## Problem Statement

Trading in the stock market is literally risky business. Given that risk is unavoidable, the key question

that arises is how a risk-averse investor can construct a portfolio that yields the desired returns at

the lowest possible risk. Efficient frontier theory, pioneered by Nobel Laureate Harry Markowitz,

provides an answer to this question, and allows us to identify investment portfolios that strike the

best balance between risk and return. While this theory makes certain assumptions that are

probably oversimplifications (notably, assuming that past performance is an indicator of future

trends and that asset returns are normally distributed), the theory is extremely important in

understanding the effect of diversification in investing, and has been extended in attempts to better

capture the real market behaviour (e.g. post-modern portfolio theory, Black–Litterman model, etc.).

In this coursework, we will explore the main concepts of modern portfolio theory and we will try to

come up with efficient portfolios of stocks of three fictitious companies:

Nano-Automata Corps (abbreviated as NAC)

Quantum Cryptographers Inc. (abbreviated as QCI)

Inter-Galactic Telecommunications (abbreviated as IGT)

Data analysis of the stock prices of these companies in the past 10 years has shown that the daily

closing prices of NAC adhere to the following stochastic process:

where X n , n =1,2,… are i.i.d. that follow the Laplace distribution, X n ∼Laplace (μ,b) , n denotes the

day, and nmax the maximum number of days we want to predict the stock price for. The Laplace

distribution is continuous with two parameters, b and µ, and has the following probability density:

From the data analysis we know that X n ∼Laplace (0.00051 0.0162 , )

The prices of the stocks of QCI and IGT can be expressed as follows:

## Things to do

1. We will first do some preliminary work that will enable us to simulate stochastic realisations of

the prices of the stocks of interest.

(a) Derive an explicit mathematical formula for the cumulative distribution function of the

Laplace distribution. [2]

(b) Describe a simple approach for the generation of random deviates from the Laplace

distribution. [4]

(c) Write a program that generates 100000 samples from the Laplace distribution with µ = 0.5

and b = 0.3 (use the approach you developed in the previous question; do not use built-in

functions for this). To verify that your method works correctly, show a histogram of these

samples and a line-graph of the probability density function (both in the same plot). [6]

2. We are now able to perform the stochastic simulations of the prices of the three stocks of

interest. We will assume that each year contains 260 days of trading (roughly 52 weeks of 5

working days each), and we will simulate stock prices for a 5-year window, i.e. nmax =1300 days.

(a) Write a program that simulates the stock price sequencies S S S n n n NAC QCI GT , , , 0,1,2,…, I n = nmax .

To do this, first generate three random streams, one for X n , n n =1,2,…, max , one for Yn and

similarly, one for Zn , using the method you developed in Question 1. Thus, you are allowed

to use only a uniform random number generator available for the programming language of

your choice (MATLAB, Python etc.), initialised with a seed value of your choice.

Subsequently, use these sequences in the application of the equations that give the stock

price per day, e.g. for QCI, you will evaluate the expression S X Y S nQCI = + + ⋅ 1 0.5 1.7 ( n n n )⋅ QCI −1

recursively. Present graphs of the stock prices per day in the same plot. [12]

(b) Repeat the procedures of Question 2(a) with two more different random seeds and

produce plots of the stock prices ped day. You will present two separate plots, one for each

random seed. Each of these plots will contain three line-graphs, one for each stock (NAC,

QCI, and IGT). Comment on the observed behaviour in the three “scenarios” that you

simulated and plotted in Questions 2(a) and 2(b). For instance, how does the magnitude of

the fluctuations (volatility) compare with the overall “average” behaviour of a stock (drift)

in the three different scenarios? Which stock(s) would you pick for your portfolio if you

were an investor? [10]