G
uidelines
- 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 subject to significant and unavoidable risk. Hence, 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:
Elysium Investment Forecasting
(abbreviated as EIF)
Centurion Energy Solutions
(abbreviated as CES)
Quantum Nanomaterials Technologies
(abbreviated as QNT)