Postgraduate Programme and Module Handbook 2023-2024 (archived)
Module FINN43815: Python for Finance
Department: Finance
FINN43815: Python for Finance
Type | Tied | Level | 4 | Credits | 15 | Availability | Available in 2023/24 | Module Cap | None. |
---|
Tied to | N3K109 |
---|---|
Tied to | N3K209 |
Tied to | N3K409 |
Tied to | N3K709 |
Tied to | N3KC09 |
Prerequisites
- None
Corequisites
- None
Excluded Combination of Modules
- None
Aims
- To develop an understanding of the general principles and specific techniques of programming in Python;
- To grasp the capabilities of Python for applications in finance, including portfolio management, algorithmic trading, risk management and asset pricing;
- To develop an ability to use Python packages for financial data analysis and solving problems in the above-mentioned fields in finance.
Content
- This module aims to introduce the students to programming in Python and to explore its applications in finance. The module covers both the practical aspects of Python applications as well as the financial theory behind those applications. Prior programming experience is helpful but not required. The module starts with foundations of Python programming for finance including:
- installation of Python (Anaconda and Jupyter notebook);
- grammar, variable types, conditional statements, functions and loops;
- importing data (from local directory);
- data extraction from the web (with scrapy);
- data manipulation (with pandas);
- data visualisation (with plotly);
- Having equipped ourselves with the fundamentals of Python we will then move to the following topics and applications in finance:
- regression analysis (CAPM, Fama & French 1993, Fama & MacBeth 1973);
- algorithmic trading including constructing and backtesting various trading strategies (the long-short and pairs trading);
- portfolio performance analytics (risk-return profiles, turnover, maximum drawdown, value at risk);
- risk management and derivative pricing (with Monte Carlo simulation);
- machine learning in finance (classification and regression problems);
- sentiment analysis with text mining.
Learning Outcomes
Subject-specific Knowledge:
- General principles and techniques of programming in Python;
- Wide range of applications and capabilities of Python for solving various problems in finance;
- Financial theory behind those applications;
- Key econometric and machine learning techniques.
Subject-specific Skills:
- using Python to import, manipulate, visualise and analyse financial data;
- gaining hands-on experience of using Python packages for statistical analysis, back-testing trading strategies, machine learning, Monte Carlo simulation, and textual analysis;
- handling large (structured and unstructured) datasets and using them in conjunction with the appropriate empirical techniques to solve various problems in finance and interpret the obtained results.
Key Skills:
- programming and computer literacy skills (through using Python in tutorials and for the project);
- interpersonal and written communication skills (through working in a team on the written project);
- problem solving and analytical skills (through using Python to solve problems and interpreting results);
- planning, organising and time management skills (through meeting the multiple deadlines for formative and summative assignments of the module).
Modes of Teaching, Learning and Assessment and how these contribute to the learning outcomes of the module
- The module is highly practical in nature and is delivered through a combination of lectures and practical sessions. The coding component will be taught using web-based Jupyter notebooks (you are welcome to use Spyder as well). There is an online component (DataCamp self-study courses) to be completed prior to the commencement of the module. The students are assessed through the summative and formative assignments.
- The summative assignment consists of: (1) a written group project (back-testing and analysis of a trading strategy) and (2) an examination to test knowledge and critical understanding of the covered material. The formative assignment consists of short in-class quizzes including multiple choice and code-based questions.
Teaching Methods and Learning Hours
Activity | Number | Frequency | Duration | Total/Hours | |
---|---|---|---|---|---|
Lectures | 10 | 1 per week | 1 hour | 10 | |
Practical Sessions | 7 | 1 per week in teaching weeks 3 to 9 | 2 hours | 14 | ■ |
DataCamp Courses (self-study) | 4 | 4 hours | 16 | ||
Preparation and Reading | 110 | ||||
Total | 150 |
Summative Assessment
Component: Project | Component Weighting: 40% | ||
---|---|---|---|
Element | Length / duration | Element Weighting | Resit Opportunity |
Written Group Project | 2500 words (max) | 100% | same |
Component: Examination | Component Weighting: 60% | ||
Element | Length / duration | Element Weighting | Resit Opportunity |
Written Online Examination | 2 hours | 100% | same |
Formative Assessment:
In-class quizzes during practical sessions
■ Attendance at all activities marked with this symbol will be monitored. Students who fail to attend these activities, or to complete the summative or formative assessment specified above, will be subject to the procedures defined in the University's General Regulation V, and may be required to leave the University