ICM316-Programming for FinTech (Python)
Module Provider: ICMA Centre
Number of credits: 20 [10 ECTS credits]
Level:7
Terms in which taught: Autumn term module
Pre-requisites:
Non-modular pre-requisites:
Co-requisites:
Modules excluded:
Current from: 2019/0
Type of module:
Summary module description:
In this module you will be introduced to Python, a programming language that has become
an industry standard and is widely used to produce innovative financial products and
services. Common applications include big data analysis and manipulation, algorithmic
trading, portfolio analysis, and machine learning algorithms. Students who complete this
course will be able to write programming functions in Python, process data files including
reading, modifying and writing data to external files. Specifically, students will be able to
read and write to Excel, CSV and Text files, connect to databases, obtain and process data
from the Web, as well as use Python for Finance and Econometrics applications including
developing event based trading strategies and back testing with historical data. By the end
of the module students are expected to produce a simple Python application to solve real
world financial problems. No prior programming experience is required.
Aims:
The module focuses on (1) what is computational programming and why it is useful (2) fundamentals of object-oriented programming (3) Python step by step: conditional statements, functions, sequences and loops (4) key Python libraries for data manipulation, visualisation and statistical analysis which include financial time series regressions and portfolio optimisation (5) input / output operations with excel integration (6) rapid web applications and web services integration (7) finance applications: efficient portfolio frontier, multivariate regressions, algorithmic trading, option pricing and Monte Carlo simulations (8) Build your own finance tool.
Assessable learning outcomes:
By the end of the module it is expected that students will:
Understand the principles behind object-oriented programming
Know how to formulate a problem and use divide-and-rule techniques to solve it with Python
Understand Python’s syntax and be able to use conditional statements, functions and loops be able to upload, organise, manipulate, visualise and export databases of various formats
Understand how to retrieve data from a web-based database and complete textual analysis
Understand how to do linear regression analysis in Python
Know how to code portfolio optimisation problems, algorithmic trading, option pricing models and Monte Carlo simulations
Additional outcomes:
Students will be able to consolidate their knowledge of the tools and strategies learnt in this module by completing a project where they will be asked to build a Python programme to solve a practical finance problem
Outline content:
Python and object-oriented programming
Python syntax: conditional statements, functions, sequences and loops
Data science basics: NumPy and Pandas packages
Input / Output operations and excel integration
Financial time series analysis – Linear regressions and data visualisation
Mathematical tools and statistics – Portfolio optimisation
Performance Python – Monte Carlo simulations and binomial option pricing
Derivatives Analytics library – Asset pricing, derivatives valuation and volatility
Python and systematic trading – Incorporating signals and technical indicators in trading strategies
GUI and Web integration – Traders chat room and data modelling
Global context:
The finance application in this module will be based on international examples. Python is one of the most common programming languages for FinTech applications worldwide. For example:
Athena -- J.P. Morgan's cross-market risk management and trading system that provides functionality for traders, salespeople and operations staff globally;
Quartz -- Bank of America Merrill Lynch's integrated trading, position management, pricing and risk management platform;
Venmo -- a mobile payment service owned by PayPal which allows users to transfer money to others using a mobile phone app.
Brief description of teaching and learning methods:
(1) If Python is your first coding language, do the tutorial at https://www.learnpython.org
(2) If you have coded before, work through the challenges at https://www.hackerrank.com/domains/python
The core theory and concepts will be presented during lectures. Problem sets will be solved in workshops.
Autumn | Spring | Summer | |
Lectures | 20 | ||
Seminars | 10 | ||
Guided independent study: | |||
Wider reading (independent) | 50 | ||
Wider reading (directed) | 20 | ||
Preparation for seminars | 20 | ||
Revision and preparation | 30 | ||
Carry-out research project | 30 | ||
Reflection | 20 | ||
Total hours by term | 200 | 0 | 0 |
Total hours for module | 200 |
Method | Percentage |
Project output other than dissertation | 50 |
Set exercise | 25 |
Class test administered by School | 25 |
Summative assessment- Examinations:
Summative assessment- Coursework and in-class tests:
Students will be asked to complete:
a set exercise (25%) to be submitted in week 8 of the autumn term,
an in class multiple choice tests (25%) in week 11 of the autumn term and
an individual project (50%) to be submitted in week 1 of the spring term.
Formative assessment methods:
Seminar questions are assigned for each class. The seminar leader will facilitate discussion and offer feedback.
Penalties for late submission:
Penalties for late submission on this module are in accordance with the University policy.
Please refer to page 5 of the Postgraduate Guide to Assessment for further information:
http://www.reading.ac.uk/internal/exams/student/exa-guidePG.aspx
Assessment requirements for a pass:
50% weighted average mark
Reassessment arrangements:
By individual project to be submitted in August/September
Additional Costs (specified where applicable):
Last updated: 27 August 2019
THE INFORMATION CONTAINED IN THIS MODULE DESCRIPTION DOES NOT FORM ANY PART OF A STUDENT'S CONTRACT.