Enrollment

Email Kaiyan (QuantDeCal@gmail.com) to explain how you meet the course prerequisites: demonstrated interest in quant trading, and background in probability, trading, and programming.
The following are guidelines,
Probability: Semi-professional poker player wannabe; stat 134; or lots of reading and implementing statistical learning algorithms or something similar on your own time
Trading: You've traded regularly in a personal account with margin; interned at a trading firm; or tested some models on historical data
Programming: Putting yourself through college as a freelance programmer; CS major who has taken the 61 series and done well; or interned as a software developer

Quantitative Trading DeCal:
DeCal.org/Quant

Syllabus

Demand for graduates knowledgeable about finance with a quantitative background is high. Working as a quant trader is enjoyable: a typical workday is spent researching technology, behavioral economics, machine learning, or other topics, depending on your own interest; the compensation can be extremely compelling; and the hours are flexible.

This course is structured as a parallel series of lectures, reading, and homework. Lectures are graded by attendance, reading by a quiz in class, and homework by autograding scripts. Each counts for 1/3 of the grade points. Collecting 80% of the points is required to pass. All readings are provided, all homeworks use open source software. 

Any assignment can be made up for by completing extra credit. For extra credit you may read something related to the class material. Write a little bit (~200 words) about it and email it to me.

Spring 2013: Class meets weekly on Tuesdays 7-9pm in Haas C335. The first day is January 22nd.

Fall 2012: Class meets weekly on Wednesdays 7-9pm in Soda 320. The first day is September 5th.

Reading

Topics

Grinold and Kahn Active Portfolio Management Ch 1

History

Industry

Alpha

Marco Dion (provided in class) 

Data, Simulation, & Analysis



Homework

(due Midnight on the day before class)

Topics

Intro

Talk to someone else in the class. Write at least 250 words about what you found out about them. Turn in via email.

History

Set up meeting with trader/finance professional. Write at least 250 words about what you found out about them. Turn in via email.

Industry

Alpha

hw_signal.zip

Data, Simulation, & Analysis

backtest

Optimization & Statistical Learning


Liquidity & Execution 


Programming/Hardware


Risk


Coding Instructions

  1. Download starter source code
  2. Fill in any parts labeled with the comment "// TODO" according to the comment that describes what that part is supposed to do. Do not worry about the lines commented "// TODO" in the gtest directory.
  3. Compile and test your work by running "make *_test" where * is the assignment name (look in Makefile if you are unsure). 
  4. Fix compilation errors.
  5. Fix test errors by reading the error, looking at the test script, and fixing your code. If the test passes, you will see output like the following:
    Running main() from gtest_main.cc
    [==========] Running 1 test from 1 test case.
    [----------] Global test environment set-up.
    [----------] 1 test from *Test
    [ RUN      ] *Test.*
    [       OK ] *Test.* (0 ms)
    [----------] 1 test from *Test (0 ms total)

    [----------] Global test environment tear-down
    [==========] 1 test from 1 test case ran. (0 ms total)
    [  PASSED  ] 1 test.
  6. Turn in completed code via email. Only submit the .cc file you modified.

Platform

The starter source code is designed to work on a Ubuntu Linux platform. If you are running Windows or Mac OS, you can set up a virtualized Ubuntu environment:

  1. Install VirtualBox.
  2. Download the Ubuntu 10.10 virtual machine here: http://sourceforge.net/projects/virtualboximage/files/Ubuntu%20Linux/10.10/Ubuntu%2010.10.vdi.bz2/download.
  3. Uncompress the vm (~5 min) and add it to VirtualBox. Choose "New", then select Linux and Ubuntu. Then, when asked for hard drive, choose "existing" and point to the unpacked .vdi file.
  4. Start the vm. The username for the vm is "ubuntu" and password is "reverse" (without quotes). To run a command as root use "sudo".
  5. Download and uncompress the starter source code.
  6. Start writing code! (You can use gedit, emacs (install with "sudo apt-get install emacs23"), vim (install with "sudo apt-get install vim-gnome"), or whatever you want)