Durham University
Programme and Module Handbook

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


  • None


  • None

Excluded Combination of Modules

  • None


  • 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.


  • 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