QuantSoftware ToolKit
From Quantwiki
If you are in a hurry, you can skip to the QSToolKit_Installation_Guide.
Georgia Tech Course
[CS 7646]
About the QuantSoftware ToolKit
QSToolKit (QSTK) is a Python-based open source software framework designed to support portfolio construction and management. We are building the QSToolKit primarily for finance students, computing students, and quantitative analysts with programming experience. You should not expect to use it as a desktop app trading platform. Instead, think of it as a software infrastructure to support a workflow of modeling, testing and trading.
- Scroll through the Gallery to see the sorts of things you can do easily with QSTK.
- If you are in a hurry, you can skip to the QSToolKit_Installation_Guide.
Key components of QSTK are:
- Data: A data access package that enables fast reading of historical data (qstkutil.DataAccess).
- Processing tools: Uses pandas, a Python package designed for time series evaluation of equity data.
- Portfolio optimization: Using the CVXOPT library.
- Event studies: An efficient event analyzer, Event_Profiler.
- Simulation: A simple backtester, quicksim, that includes transaction cost modeling.
Gallery
Scroll through the Gallery to see the sorts of things you can do easily with QSTK.
Download, Installation & Open Source License
- QSTK is released under the New BSD License. Read the QSTK License.
- Download and installation instructions are here: QSToolKit_Installation_Guide.
Assumptions & Supported Platforms
We support Mac OS X and Ubuntu Linux on Intel machines. We recommend a 2.0 GHz processor and 2GB of RAM as a minimum. QSTK does run on Windows machines, but we don't guarantee it, and we can't always help you if you run into problems.
We make some assumptions about the you should know about that may limit QSTK's use, including:
- Frequency: Daily trading (versus intra-day high frequency trading);
- Equities: Publicly traded equities for which historical data are available;
- Calendars: US market calendars (e.g. NYSE open/close).
Having said that, the tool kit can easily be adapted for other trading regimes. You might want to scan our to see some examples of what you can do with QSTK.
email Lists
- Subscribe to this list if you want occasional emails about new developments or releases of QSTK: qstk-announce list
- Subscribe to this list if you are a GT student working with Prof. Balch, or are a developer: ml4trading-dev list
Documentation
This page is the root page for QSTK documentation. Here are links to information about important modules and APIs:
- Installation and overview information
- QSToolKit Installation Guide for downloads and details on getting up and running.
- Connecting With Data Sources
- Newscred Data
- Getting Yahoo Data
- Getting Compustat Data.
- Work Flow Guide that provides an overview of intended use of the software
- QSTK Tutorials
- QSTK Tutorial 1 Reading data and basic time series operations and plotting
- QSTK Tutorial 2 Reading CSV data (not QSTK specific)
- QSTK Tutorial 3 Tips for accessing historical data via DataAccess + a quick and dirty portfolio back test
- QSTK Tutorial 4 Creating a an equity allocation DataFrame
- QSTK Tutorial 5 Using qstksim to back test an allocation strategy
- QSTK Tutorial 6 Reading Compustat data
- QSTK Tutorial 7 Using the NAG library
- QSTK Tutorial 8 Using the CVXOPT library
- QSTK Tutorial 9 Event Profiler
- QSTK Tutorial 10 Visualizer
- Other Tutorials
- Numpy Tutorial 1 Working with Numpy arrays
Getting help: send email to tucker@cc.gatech.edu
Contributing & Coding Conventions
Contact Tucker Balch to get write access to the SVN repository (the repository is already open for public reading). QSTK is released under the New BSD license, we require that all contributors also consent to having their code released under this license. You may, of course, develop on your own using QSTK and retain ownership of your code.
Please follow coding conventions described here: Coding Standard
Use the text 2FIX as a comment indicating a potential bug. As in:
# 2FIX we may inadvertently divide by zero below x = y / u
Contributors
QSToolKit development began to support CS 8803-FIN: Machine Learning for Trading, a course at Georgia Tech. To date, the main contributors are at Georgia Tech, but we certainly welcome others!
- Prof Tucker Balch, Georgia Tech
- Sourabh Bajaj, Georgia Tech
- Drew Bratcher, Georgia Tech
- John Cornwell, Georgia Tech
- Prof Maria Hybinette, UGA
- Shreyas Joshi, Georgia Tech, now AQR
- Harikrishna Narayanan, Georgia Tech, now Yahoo! Finance
Courses
- CS 8803-FIN/4803-FIN ML4Trading was taught Fall 2011 at Georgia Tech
- CS 8803-FIN, 2010SPR8803 was taught Spring and Fall 2010 at Georgia Tech
Resources, Relevant News & Links
- Resources: Additional relevant resources.
- Tucker Balch's blog augmentedtrader.wordpress.com
- WSJ article about AI for trading.
Getting Started with Wikimedia
- User's Guide for information on using the wiki software.
- Configuration settings list
- MediaWiki FAQ
- MediaWiki release mailing list
Legacy
Older documents
- [Fund Tools]
- Work_Flow_Guide that provides a block diagram overview of QSTK intended use.
- Legacy_Main_Page
