(Course start date: 6th June 2016)
- 6 month online course
- 3 month for final project
- Course support includes 2 live webinars with the presenter and a forum
- Self-Paced Course Available Now: Take this course in your own time
- Location: Globally online
- This course can be included as part of the Annual Subscription Service
- This course be taken In House.
Python has established itself as a real contender in the Quant Finance world to implement efficient analytics workflows and performant applications.
Although being an interpreted language, quantative analysts and developers can draw on the powerful (scientific) ecosystem that has grown around Python. This ecosystem comprises libraries such as NumPy that allows array management and operations both in a highly vectorized fashion and at the speed of C code.
In addition, using the pandas library makes the management and analysis of financial time series both convenient and efficient. In such a context, data visualization is also easily accomplished with Python.
The workshop also illustrates how to achieve "hardware-bound" input-output operations with Python/NumPy and libraries such as PyTables.
In summary, against the background of financial examples and use cases, the "Python for Finance" workshop introduces to most important language elements, tools and (performance) libraries that Python as a platform technology has to offer for Quant Finance.
The requires no prior knowledge of Python but knowledge of a similar programming language as well as of standard financial models. You will learn:
* How to best start using Python, related tool and libraries for Quant Finance
* How to model and store data efficiently with Python
* How to implement compact and performant financial algorithms
* How to visualize financial data with Python
* How to manage and analyze financial time series data
* How to implement performant I/O operations
* How to increase the performance of financial Python code
Lecture 1. Python and Tools
The first lecture shows how to efficiently set-up a Python and develeopment environment for Quant Finance. It also introduces into IPython, and in particular into the Notebook version which allows interactive, browser-based financial analytics with Python
Lecture 2. Introductory Financial Use Cases
This lecture immediately dives into three canonical use cases: calculating and plotting implied volatilities, implementing performant Monte Carlo simulations, backtesting a trend based trading strategy. These use cases illustrate the benefits of the major Python libraries (NumPy, pandas), explained in detail in later lectures.
Lecture 3. Data Types/Structures and Visualization
This lecture is all about data modeling and storage with Python and the visualization of data. It introduces the basic data types and structures in Python, shows how to make use of NumPy's array capabilities and how to write vectorized numerical code with Python/NumPy.
Lecture 3. Financial Time Series
This lecture is about the use of the pandas library for the management and analysis of financial time series. It shows examples implementing simple and advanced analytics as well as time series visualization. It also shows how to work with High Frequency data.
Lecture 4. Input-Output Operations
Financial analytics and financial application development mainly rests on the efficient and performant management and movement of (large, big) data. This lecture illustrates how to make sure that data reading and writing (to HDDs, SSDs) takes place at the maximum speed that any given hardware component allows. Examples also illustrate how to make use of compression techniques in such a context.
Lecture 5. Performance Libraries
The Python ecosystem has to offer a number of powerful performance libraries. For example, using the Numba dynamic compling library allows to compile Python byte code at call-time to machine code by using the LLVM infrastructure. The resulting compiled functions are directly callable from Python. Similarly, using the Multiprocessing module of Python makes parallelization of Python function executions a simple and efficient task.
Final Practical Project week.
The final project will be marked with feedback and a pass or fail will be given. One retake is allowed if you fail.
Two Live Webinars:
The two webinars are live with the presenter and will be set during the course.
About the Presenter:
Dr. Yves J. Hilpisch is the founder and managing director of The Python Quants GmbH, Germany. The company provides Python-based financial and derivatives analytics software (http://quant-platform.com) as well as consulting services and training related to Python and Finance. He is author of the books "Derivatives Analytics with Python" (see http://www.derivatives-analytics-with-python.com) as well as "Python for Finance - Analyze Big Financial Data" (seehttp://oreil.ly/1kAwNp5).
To take the course programming experience is expected in some languages; C, VB, Fortran, Matlab etc. Experience with C, C++ will also come in useful for some topics. Object oriented programming skills are not totally necessary but will also help. A knowledge of calculus, statistics, signal and image processing, optimization will all assist your learning but are not absolutely required.
The Professional Risk Managers' International Association (PRMIA) is a non-profit professional association, governed by a Board of Directors directly elected by its global membership, of nearly 90,000 members worldwide. PRMIA is represented globally by over 65 chapters in major cities around the world, led by Regional Directors appointed by PRMIA's Board.
The Programming School will be fully certified by PRMIA
You will be able to receive up to 20 CPD points (10 hours of structured CPD and 10 hours of self-directed CPD) for completing this course.
The CPD Certification Service was established in 1996 as the independent CPD accreditation institution operating across industry sectors to complement the CPD policies of professional and academic bodies. The CPD Certification Service provides recognised independent CPD accreditation compatible with global CPD principles.