Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

COMP6212 Group Coursework 2022/23

March 24, 2023

Deliverables

Deadline

Feedback

Weight

Report, Code, data

19 May 16:00

16 June

25%

Table 1: Deliverables and Deadlines

Contents

1 Introduction

2 Part 1: Time Series Analysis (max. 7 marks) 2

3 Part 2: Algorithmic Trading (max. 7 marks) 3

4 Part 3: Portfolio Optimisation (max. 7 marks) 3

5 Part 4: Stylised Facts (max. 4 marks) 3

6 Marking 3

7 Submission 3

1 Introduction

The coursework can be done in groups of up to 4 students.  The dates are in Table 1. Please write a single report of up to 8 pages double column with a clear description of the methods and the results. In addition, you should provide the full code and datasets used.  The code needs to be properly commented and a readme file should be included which explains how the code for the various parts in the coursework can be run. Either Python or Java can be used. In the case of Python, the code should be in the form of scripts with the .py extension and in text format.  Other formats such as Jupyter notebooks are not acceptable. All the results should be reproducible.

t

1

2

3

4

5

6

yt

15

10

12

17

25

23

Table 2: Caption

The use of existing libraries is limited. Common libraries such as numpi and libraries for producing graphs can be used.  However, you cannot use libraries which do most of the work for you, such as ARIMA. It is expected that you implement these yourself from scratch. If in doubt, contact Prof Enrico Gerding at [email protected] All libraries used, including common ones, need to be clearly acknowledged in the report. Similarly, existing code should not normally be used, but if it is used, then it should be acknowledged in the report.

Any code and the report produced as part of this coursework should not be made public at any time, even after you leave university. Doing so breaches academic integrity regulation since you may be enabling other students to cheat. If you are using online repositories such as Github make sure they are set to private, or use Southampton’s internal repository git.soton.ac.uk

2 Part 1: Time Series Analysis (max. 7 marks)

This part will be based on the lecture around time series.

2.1 ARIMA part 1 (max. 3 marks)

You are given the time series in Table 2. Apply the ARIMA(2,1,1) model. For the coefficients, use the last 3 digits of one of the group’s student numbers. In the report, clearly state which digits you used for which component.  Compute yˆ7  and yˆ8 .  Explain your approach in your report.  Make sure you write your own code, and provide the code as part of your submission including instructions how to run it.

2.2 ARIMA part 2 (max. 4 marks)

Obtain daily prices from one or more random companies listed on the FTSE 100, e.g. through Yahoo! finance. Obtain daily data of stock prices for the past year at least.  Split the data into a training and test set as appropriate.  Only use the test set for final validation and not for parameter tuning.

Using the implementation from part 1, now apply this to the dataset.  Use a simple approach to tune the weights such as random search, hill climbing, or gradient descent.   Tune the hyperparameters of the ARIMA model using an appropriate approach.  Evaluate the final result using appropriate metrics. Describe your approach and motivate your choices.

3 Part 2: Algorithmic Trading (max. 7 marks)

• Find a suitable pair of stocks from the FTSE 100 for applying pairs trad- ing. Motivate your approach. Plot and analyse the returns including the ratio between them.

• Apply and compare at least two trading strategy to the selected stocks using a pairs trading approach. Note that whilst it is fine to get inspiration from existing implementations, you are required to implement your own solution.

4 Part 3: Portfolio Optimisation (max. 7 marks)

• Select at least 3 stocks from the FTSE 100 for at least a year.  Split into training and testing using simple approach (e.g. first half training, second half testing).

• Estimate the returns and covariances of these stocks based on the training data.

• Use an appropriate method to compute an efficient portfolio and compare this to a simple 1/n portfolio on the test set.  When computing the effi- cient portfolio, there is no need to use advanced optimisation techniques. Simple discretisation of the search space and using a brute force approach suffices. Make sure you don’t choose too many assetts so the approach is computationally feasible.

5 Part 4: Stylised Facts (max. 4 marks)

Using time series from the FTSE  100,  analyse the main stylised facts using visual approaches and/or quantitative measures: heavy tails; autocorrelation of returns over various lags; volatility clustering.  Cite academic literature where appropriate.

6 Marking

Each section indicates the maximum marks for that part, totalling 25 marks. The marking is based on 4 criteria: (1) clarity and writing quality of the report, (2) Correctness and understanding,  (3) Completeness of the description and reproducibility, (4) Challenge and sophistication of the approach.

7 Submission

Submit your report as a Word or PDF document.  The report should have a maximum of 8 pages, but these can be in a double column format (like many conference and some journal paper formats).  Choose an appropriate format. Make sure you mention all the author names and student numbers/emails on the document, as well as the assigned group number. There is no need to include an abstract, table of contents, introduction or conclusion.  Indeed, the report should be structured according to the various parts above.

The code and, if needed, the data, should be bundles into a zip file and submitted with the report through HANDIN. Make sure to include a readme file with clear instructions on how to run each component, including the depen- dencies. If the data is loaded from an online source within the code, and it can be run without the files, then there is no need to provide the data.  Otherwise, please provide everything needed to run the code.

Please contact Prof Enrico Gerding for any questions.  This coursework is newly introduced for the first year, and an FAQ will be produced to clarify the coursework as questions are received.