Advanced Python Modeling in Finance
Coursalytics is an independent platform to find, compare, and book executive courses. Coursalytics is not endorsed by, sponsored by, or otherwise affiliated with Fitch Learning.Full disclaimer.
This course offers a continuation of the intermediate course in Python by providing a more in-depth examination of secondary Python packages that contain useful tools for a quantitative analyst’s daily workflow. In particular, it explores in further detail Python tools that are relevant for creating dashboard visualizations, web scraping, natural language processing, creating C++/Python bindings, interacting with SQL databases, unit testing, versioning Python code and deployment automation.
Key Learning Outcomes
- Create simple interactive dashboard charting visualizations using the Dash/plot.ly framework
- Design scripts to automate the process of downloading publicly available information from the internet and use web scraping tools to parse this information into a format that may be used for subsequent processing
- Integrate existing C++ libraries into a Python codebase using CFFI in order to overcome Python performance issues in runtime critical applications
- Understand tools for versioning Python code, writing unit and regression tests, and setting up an automated framework for packaging and deployment of code
- Briefly review relevant content from the intermediate course relevant to topics that will be discussed including pandas dataframes and static matplotlib plotting functions
- Demonstrate a command line interface development workflow that will be needed for testing dashboard applications
- Create all static data and graphical components of a time series view applications which we will build an interactive dashboard around later
Interactive Dashboards with Dash/Plot.ly
- Overview of the Dash/Plot.ly framework and how it compares and contrasts with other front-end development frameworks such as D3, Tableau, etc.
- Discuss the structure of a plot.ly script that provides a static browser-based time series visualization
- Extend the previous example to an interactive visualization that includes dropdowns to select different time series, text input to accept window sizes lengths, etc.
- Describe how to host, add an authentication layer, and manage a dash dashboard application
Web Scraping in Python
- Review fundamentals of the urllib2 and BeautifulSoup Python packages and their application to web scraping
- Go through an example of scraping stock price and fundamental information from yahoo finance
- Download, parse, and process text data associated with news articles
Natural Language Processing Tools
- Review the Natural Language Processing Toolkit (NLTK) package in Python
- Discuss how to stem, remove stop works, and develop bag of words and n-gram representations of text
- Use Python’s Natural Language Processing Toolkit package to develop basic sentiment analysis tools for the text related to news articles
Profiling Code and C++ Bindings
- Review Python performance limitations
- Discuss options for improving performance of time critical portions of code by utilizing C++ binding options including Numba, CFFI, and Boost.Python
- Provide a code profiling demonstration that shows how to identify performance bottlenecks
- Create a CFFI C++ function and associated Python binding example and quantify performance increases
Managing SQL Databases with Python
- Review mysql and the SQLAlchemy packages
- Create an example mysql database, add and remove data directly using SQLAlchemy functions
- Construct dynamic queries using Python functions within SQLAlchemy
- Integrate these functions into the previous dashboard we constructed if time permits
Versioning, Unit Testing and Deployment Automation
- Discuss the git framework for version Python source code and why it is important as codebases increase in size
- Give an overview and example of the py.test unit testing framework and discuss importance of test-driven development
- Review open source tools to automate the unit test, package creation for multiple platforms and deployment processes for Python code
Who should attend
This course is ideal for financial analysts, business analysts, portfolio analysts, quantitative analysts, risk managers, model validators, quantitative developers and information systems professionals. Taking either the intermediate level course or having a working knowledge of the Python language is a prerequisite to attending this course. We expect participants to have a basic knowledge of finance and basic notions of programming as well.