Brian G. Peterson

Brian Peterson has more than a decade of experience researching, designing, developing, and deploying production quantitative trading systems. He is a Managing Director at Hehmeyer Trading + Investments in Chicago where his primary responsibilities include leading research, development, and electronic execution for quantitative strategies in digital assets and co-managing client money via Hehmeyer’s asset management division. He has previously been the lead executive for quantitative trading in multiple Chicago proprietary trading firms where his personal assets have been at risk every day. Brian is co-author or maintainer of over 10 packages for using the R language in finance, and acts as the organization administrator for R’s participation in the annual Google Summer of Code program and a member of the founding committee for the annual R/Finance conference in Chicago. Brian publishes papers on risk and portfolio construction in multiple peer-reviewed journals. Brian has deep experience delivering large, technically complex production systems utilizing the latest technologies and techniques, including advanced optimization, machine learning and artificial intelligence, low latency execution, and algorithm design, judged directly by their performance in live markets.



CFRM 522 or prior approval from the instructor for students in the industry who already have working knowledge of the topics and tools to be covered.

A working knowledge of R and trading related packages such as xts, quantstrat, blotter, PerformanceAnalytics will be required.

Course work will also reference packages such as caret, forecast, ROCR, and e1071, among others, but prior knowledge of these packages should not be necessary. Analytical techniques will be briefly covered in lectures, and covered in full in the suggested readings.

Specific analytical techniques and packages will vary widely across student projects. Students should understand that they will likely need to self-study package examples or online references for specific analytical techniques to complete their projects.

Course Description

This course will provide a detailed research process and tools for replicating, assessing, conceptualizing, and developing systematic trading strategies. Students will apply their knowledge in hands-on projects to replicate and evaluate existing research and to create and evaluate a new strategy model.

Development of systematic trading strategies should follow a highly scientific and repeatable process. This course will start by reviewing categories of systematic strategies, drawing out patterns followed throughout the industry.

We will demonstrate a repeatable process for evaluating ideas, constructing hypotheses, building each of the strategy components, and evaluating and improving the strategy at each step. Students will use the R Language for Statistical Computing and Graphics to replicate academic research and evaluate the claims made in papers. Students will also construct a non-trivial strategy from scratch, evaluate the power of each of its components, and examine the likelihood of overfitting. The strategy will be documented and presented in lieu of a final exam.

Learning objectives

Upon successful completion of this course students will be able to:

  1. Articulate the major classes of trading strategies and explain what market behavior different classes of strategies seek to exploit.
  2. Evaluate and Replicate research results presented in academic papers on trading system development or analytical techniques applicable to trading strategies.
  3. Create, evaluate, backtest, and optimize their own non-trivial quantitative trading strategy in R using appropriate R packages such as quantstrat and blotter.

Course Approach

We will be teaching the class using a “flipped” model. Lectures will be provided on the course website in advance, and will be structured as short (10-30 minute) videos on a single topic. Multiple short lectures will be reviewed by students before each class period.

During class sessions, our primary focus will be on the student projects.

We will start by answering questions or providing clarification submitted to the instructor in advance which have not been answered already on the course site. Time will be given to answering questions about the lectures, whether submitted in advance or asked in class.

We will then move to an interactive session focused on further clarification and the individual project work. Students will be encouraged to discuss what they are working on in their project, and collaborate with peers. Because each student’s strategy or paper will be different, an open mode of communication between students about their projects is encouraged. Questions about student projects will be addressed in a manner designed to benefit all students in the class in their projects by targeting common patterns for problems and solutions raised by the question.


The major portion of the grade for the class will come from two projects designed to mimic the activities of working strategy quants.

Students will have two individual projects to complete over the quarter.

The final deliverable for both projects will include a Rmarkdown or knitr document which includes both written commentary and all the code necessary to produce the analysis. Intermediate deliverables will help guide the student, and make sure that they are progressing towards a completed analysis, in much the same way that an analyst would confer with management and colleagues during the course of an analytical project.

Both projects will allow students to choose from a suggested topic list, or propose another appropriate paper or strategy model as the basis for their project. Two students will not be allowed to work on the same paper, though many papers or strategies will be related (they may share citations or techniques, for example) and could provide leverage from coordination.

Midterm Project: Paper Replication

The first project will replicate an academic paper. Analysis of new trading system hypotheses often starts when an analyst or their management reads something interesting, providing the seed of a new idea. The analyst needs to first replicate the paper, since most papers do not publish data and code.
After replicating the paper, the results need to be analyzed to determine whether the model or results are credible, and how the analysis of the paper can be improved. No two students will share the same paper. This will allow students to openly assist each other on project approach, code problems, etc. in a manner that is more realistic to a real environment, where colleagues would be contacted for ideas and assistance.

Final Project: Strategy Development

The second project will apply the process learned in class to create a new strategy from scratch. It will start from identifying constraints and objectives, proceed through hypothesis generation and test plans, and move to creating and evaluating each component of the strategy. Finally, the strategy will be tested for data snooping, look ahead biases, and overfitting.


Planned Schedule of lectures, readings, and deadlines:

Date Lecture Topic Readings Project Work
6/24 1 Introduction (live during class) Tomasini, review CFRM 522 slides on quantstrat
6/26 2 Process overview: replicating papers / creating strategies / formulating hypotheses essays on these topics
7/1 3 Constraints, Benchmarks, and Objectives Paper Summary due
7/3 (no class) Holiday
7/8 4 Indicators and Filters / Evaluating and Improving Indicators Narang, Tomasini Literature Review due
7/10 5 Signals / Evaluating and Improving Signals Narang, Tomasini Data Summary due
7/15 6 Rules: (Introduction, Entry, Exit and Risk Rules, Rule Burden, Parameterization Intro)
7/17 Classes of Strategies Narang, Ilmanen Key Techniques due
7/22 7 Replication Project due
7/24 8 Strategy Project Introduction Hyndman, Kuhn
7/29 Order Sizing & Money Management Strategy Specification due
7/31 9 Evaluating the Whole Strategy Tomasini, Aronson Strategy Hypothesis Summary and Tests due
8/5 10 Parameter Optimization Tomasini, Aronson Initial (working) Strategy Code
8/7 11 Walk Forward Analysis Tomasini, Aronson Evaluation of Indicators and Signals due
8/12 12 Overfitting I: Monte Carlo Analysis Hyndman, Kuhn, Aronson Rule Evaluation due
8/14 13 Overfitting II / Machine Learning Hyndman, Kuhn, Aronson Walk Forward due
8/19 14 Common Mistakes / Asset Allocation
8/21 15 Loose Ends (live during class) Final Project Due

The lecture titles above should be reviewed by students in approximately this order. Students may find reason to ‘jump ahead’ to a later lecture in order to better cover a topic for their projects. Questions on the lectures may be submitted at any time via email or Canvas. Questions submitted more than 24 hours in advance of a scheduled class period are more likely to merit formal/structured responses, rather than ad-hoc or informal responses during class.

The interactive class periods (Lectures) are from 2:30pm to 4:40 pm, Seattle time, on Mondays and Wednesdays. They may not take this entire time. From experience, interactive class periods averaged about 1.5 hrs each, not the full allotted 2:10.

We will have no class on Wednesday, July 3rd, in observance of the United States holiday.

Required Texts

Tomasini, Emilio, and Urban Jaekle. 2011. Trading Systems. Harriman House.

Narang, Rishi K. 2013. Inside the Black Box: A Simple Guide to Quantitative and High Frequency Trading. John Wiley & Sons.

Hyndman, Rob J., and George Athanasopoulos. 2014. Forecasting: principles and practice. OTexts.

Peterson, Brian G. 2017. “Developing & Backtesting Systematic Trading Strategies”.

Supplementary Reading

Supplemental texts will be referred to in the lectures, and referenced by other readings, but no readings will be required from these texts. Whether a student should own these texts will in part be influenced by your career goals, or the types of analysis you choose to do for your projects.

Kuhn, Max, and Kjell Johnson. 2013. Applied Predictive Modeling. New York: Springer.

Hastie, Trevor, et. al. 2009. The Elements of Statistical Learning. Vol. 2, no. 1. New York: Springer.

Ilmanen, Antti. 2011. Expected Returns: An Investor’s Guide to Harvesting Market Rewards. John Wiley & Sons.

Pardo, Robert. 2008. The Evaluation and Optimization of Trading Strategies, Second Edition. John Wiley & Sons.

Aronson, David. 2006. Evidence-Based Technical Analysis: Applying the Scientific Method and Statistical Inference to Trading Signals. Wiley.

Both projects will require extensive additional reading. Required project reading will be determined by the paper or strategy chosen, and demonstrating understanding of your project-specific supplementary readings will be a key part of your grade.

I have prepared an extensive bibliography of resources on various quantitative strategy styles which is available on the course website and here:

To be perfectly clear, you won’t have time to read all the material during the quarter. The readings for this class are core texts if you want to be a working strategy quant, and contain a wealth of knowledge about the various models and techniques you need to be successful in this field. You will need to read material relevant to your projects first, and reference other materials to help you develop your thought processes and code for your projects, as you would in replication and strategy projects in a professional setting. From experience, students who show more familiarity with the readings, and add more references to their projects, generally do better in the class, as they are taking initiative to learn and apply knowledge to their replication and strategy projects.

Learning technology

Canvas learning management system

The Canvas learning management system is the central means of interaction and participation during the course.

  • news and announcements
  • general discussion forum with other students and instructor
  • links to recorded lectures
  • lecture slides
  • assignment posting
  • online quizzes

Students should post all course related questions to the general discussion forum for instructor and peer responses and discussion.

Zoom web conferences

Lectures and office hours will be conducted via Zoom Web Conferencing.

  • Live web conferencing
  • Screen sharing
  • Interactive chat

Office Hours

Brian is in the office from approximately 6am-6pm Chicago Time Monday-Friday. Google Hangouts or Zoom conferences may be scheduled at student request during these times, with flexibility for prior commitments. Chats via all common platforms (Hangouts, Zoom, Skype, WhatsApp, Telegram, etc.) will also be supported.

Times outside the listed Office hours times will be considered on a case by case basis. Office hours should be utilized for private matters not suitable for interactive class/lecture periods or unsuitable for email.

Students are encouraged to network with and collaborate with their classmates, and the instructor will be available for appointments as well.

Brian will answer emails and text chats as expeditionsly as possible, typically within 1-2 hours during the day, and early in the morning if the inquiry comes in overnight. Please don’t get hung up on a project step for fear of asking a question. You wouldn’t do it in a job, so don’t hold back here.


The final grade will be determined as follows:

Assessment % of final grade
Paper Project 45%
Strategy Project 45%
Lecture Quizzes 10%
Total 100%

Policy on late assignment/project submission

No late midterm/final project submissions will be accepted. Extenuating circumstances (documented medical issue or death in the family) will be handled on an individual basis.

Assignments are targeted to help you make progress on your projects.

Failure to keep up with the assignments will likely result in lower project grades, as it will be difficult to cover all the project steps if you do not do all the interim steps. The projects reflect significant, non-trivial, outlays of research, reading, coding, and writing time, and can not reasonably be completed in a marathon before the due date. Assignments are not graded other than ‘submitted’. Brian will comment on assignments either where is seems that it will help student progress, or where students have asked specific questions.

Lecture ‘Quizzes’ have been added to keep you on track with the lecture material. You will be asked to provide feedback on what you found most difficult about each lecture topic and for any questions you have which you want covered in the class period. We’ve learned from experience that engagement with the lectures is correlated with greater success in the course projects, so we’re making formal commentary on the lectures a structured part of the class.