ANL251R: Python Programming |
Question 1
In this assignment, you are required to write a research report of investment opportunities based on the historical performance of financial asset classes. Before answering any parts of the questions below, please review all the parts of the question and ensure that the datasets you have chosen are suitable for the assignment. Please also submit the used datasets together with the Python
script file.
(a) Construct a research question relating to investments that is of interest to you. The question should be broad enough to cover multiple dimensions and measures and should be supported by datasets that you can find on the web.
An example of a broad research topic would be to examine the price performance and volatility of different index funds (S&P 500, STI, HSI, etc.) over the past 5 years and recommend suitable portfolio allocations based on different investor risk profiles.
You can cover any asset classes (stocks, bonds, commodities, real estate, derivatives, cryptocurrencies, etc.) as long as they are supported by valid data sets.
(b) Explain the measures you will be using to answer the stated research question. In the example provided in (a), the measures used will likely be the year-over-year price change and standard deviation of the different index funds. Investor risk profiles can be modeled using the Sharpe Ratio, with varying portfolio returns and standard deviation.
(c) Identify two (2) or more datasets that will be used for your research question. Provide a brief overview of the datasets. Provide a detailed description (including name, data type, and how it will be used) on the subset of data fields that will be used for your research question.
The datasets used should be time-series data that have been collated on a daily/weekly/monthly frequency or transactional data that are captured on an ad-hoc basis. Provide the reference web links of the datasets used.
(d) Describe the steps needed to prepare the data for analysis. This includes all steps to deal with any missing data, merging of data sets and any other data cleaning/transformation/manipulation required. Include screenshot(s) of the codes ONLY used to perform the above steps.
(e) Explain how you will create the measures in part (b) using the data prepared. Analyze the results obtained and explain their significance.
Develop function(s) that will be used to compute the measures, and display the results of the computed measures. Include screenshot(s) of the codes ONLY used to perform the creation of the measures. Include a screenshot of the results displayed.
(f) Construct appropriate plots to visualize the datasets. Attach the plots to your report and explain how your visualization helps in answering your research question.
(g) Provide a conclusion to your findings. Discuss any recommendations, assumptions, as well as possible limitations of your findings in your conclusion.
Write the codes you used for implementing the tasks in a .py file. Use functions where appropriate to organize your codes. The program should have sufficient comments to describe and/or discuss the corresponding steps and logic for the various tasks.
Up to 25 marks of penalties will be imposed for inappropriate or poor paraphrasing. For serious cases, they will be investigated by the examination department. More information on effective paraphrasing strategies can be found on