Algorithmic Trading with MATLAB
Martin Demel, Application Engineer
2011 The MathWorks, Inc. 1
Challenges when building trading strategies
Increasing complexity
More data More complicated models
Increasing computational speed
Push to higher frequency
Long deployment cycle
(Re)coding is costly and error-prone
Challenges through the organization
Regulators Management Financial Engineer Traders
Clients
Quant Group Partners Other groups
Customers using MATLAB
Asset Management
Insurance Energy Trading
Financial Services
Banks (Commercial,Retail,Investment)
Central Banks
Algorithmic trading workflow
Access
Files Data Analysis & Visualization
Research and Quantify
Share
Reporting
Databases
Testing & Optimization
Applications
Datafeeds
Strategy Development
Production
Automate
5
Algorithmic trading workflow
Access
Files Databases Datafeeds
Research and Quantify
Data Analysis and Visualization Testing and Optimization Strategy Development
Share
Reporting Applications Production
Report Generator
Spreadsheet Link EX
Database Datafeed
Fixed Income Financial Derivatives
Financial Statistics
Econometrics
Builder EX Builder NE
Optimization
Builder JA MATLAB Compiler
MATLAB Parallel Computing MATLAB Distributed Computing Server
Agenda
Introduction: Algorithmic trading Developing an automated trading decision engine
Identify a successful trading rule Extend trading rule set Automate trading rule selection
Break Implementing MATLAB into your production trading environment Wrap up and Q&A
The problem at hand: Identifying profitable trading strategies
Commodities analyst Developing a trading strategy
Multiple trading rules High frequency
Management requirements:
Tested on historical data Uses sophisticated analytics to identify optimal trading rule combination Integrates with existing data and execution APIs
Trading decision engine
Development and testing
Historical Data
End of Day / Intraday Files Databases
Strategy Modeling
Research / Algorithms Model Development Calibration
Back Testing
Profit / Loss Risk Exposure
Implementation
Live Data
Real-Time Feeds Event-Based
Decision Engine
Models Trading Rules
Execution
Broker API Order Routing
Requirements for the trading engine
Sophisticated analytics
Custom rules & indicators Non-traditional techniques
Scalable speed
Higher frequency data More trading rules
Quick to develop and deploy
Try different strategies Embed in trading engine
10
Task 1: Develop a back testing environment
Goal: Build a back testing environment around historical data and a preliminary trading rule
Development and testing
Historical Data
End of Day / Intraday Files Databases
Strategy Modeling
Research / Algorithms Model Development Calibration
Back Testing
Profit / Loss Risk Exposure
Implementation
Live Data
Real-Time Feeds Event-Based
Decision Engine
Models Trading Rules
Execution
Broker API Order Routing
11
Key tasks
Key tasks Import data from files Create a preliminary rule Test the rules performance Solutions MATLAB data tools High-level programming and pre-built functions Powerful graphics environment
Max Sharpe Ratio 0.758 for Lead 17 and Lag 120 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 0 20 40 60 80 100 120 0 20 40 60 80 100 120 -0.6 -0.4 -0.2 0 0.2 0.4 0.6
12
Task 2: Expand the scale of the engine
Goal: Move to a higher frequency (minute-by-minute) and re-calibrate the model
Development and testing
Historical Data
End of Day / Intraday Files Databases
Strategy Modeling
Research / Algorithms Model Development Calibration
Back Testing
Profit / Loss Risk Exposure
Implementation
Live Data
Real-Time Feeds Event-Based
Decision Engine
Models Trading Rules
Execution
Broker API Order Routing
14
Key tasks
Key tasks Importing data from databases Increase computational speed Solutions MATLAB data tools: Database Toolbox High-performance computing: Parallel Computing Toolbox, MATLAB Distributed Computing Server
15
Task 3: Rule selection engine
Goal: Develop a rule selection system for instruments using evolutionary learning
Development and testing
Historical Data
End of Day / Intraday Files Databases
Strategy Modeling
Research / Algorithms Model Development Calibration
Back Testing
Profit / Loss Risk Exposure
Implementation
Live Data
Real-Time Feeds Event-Based
Decision Engine
Models Trading Rules
Execution
Broker API Order Routing
17
Key tasks
Key tasks Increase number of rules Incorporate advanced analytics to select best combination
18
Working with multiple strategies
Should I trade?
Signal 1
AND OR
Signal 2
AND OR
Signal 3
Yes
Yes
No
Dempster et. al., Computational learning techniques for intraday fx trading using popular technical indicators, IEEE Transactions on Neural Networks (2001).
19
Working with multiple strategies
Represent different combinations as bit strings
Signal 1
AND
Signal 2
OR
Signal 3
1
Signal 1
0
AND
1
Signal 2
0
OR
1
Signal 3
1
Signals Active?
20
Building Custom Evolution Algorithms
Selection
Retain the best performing bit strings from one generation to the next. Favor these for reproduction
Crossover
parent1 = [ 1 0 1 0 0 1 1 0 0 0 ] parent2 = [ 1 0 0 1 0 0 1 0 1 0 ] child = [1 0 0 0 0 1 1 0 1 0]
Mutation
parent child = [1 0 1 0 0 1 1 0 0 0] = [0 1 0 1 0 1 0 0 0 1]
21
Key tasks
Key tasks Increase number of rules Incorporate advanced analytics to select best combination
Evolutionary Learning Results, Sharpe Ratio = 2.38 150
Price (USD)
Price (USD)
Solutions High-level programming MATLAB Toolboxes: Global Optimization,
100
50
1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Final Return = 239 (249%)
200 150 100 50 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Serial time number Position Cumulative Return
22
Review: Requirements for the trading engine
Sophisticated analytics
Custom rules & indicators Non-traditional techniques
Scalable speed
Higher frequency data More trading rules
Quick to develop and deploy
Try different strategies Embed in trading engine
23
MATLABs solutions
Sophisticated analytics
Advanced graphics environment Toolboxes give access to hundreds of new techniques Flexible and customizable
Scalable speed
Parallel computing solution
Quick to develop and deploy
High-level programming Automated deployment after the break
24
Agenda
Introduction: Algorithmic trading Developing an automated trading decision engine
Identify a successful trading rule Extend trading rule set Automate trading rule selection
Break Implementing MATLAB into your production trading environment Wrap up and Q&A
25
Pairs Trading in Brief
Price (USD)
Cointegration: Two or more time series share long-term behavior Identify a pair that has spread apart Take opposing positions Profit occurs when prices revert
Intraday prices for LCO and WTI 84 82 80 78 76 74 72 70 LCO WTI
Nov/09
Dec
Jan/10 Date
Feb
Mar
26
Key tasks / challenges
Key tasks Identify cointegrating relationships Test the strategy
Indicator
Pairs indicator: rebalance every 60 minutes with previous 420 minutes' prices. 3 2 1 0 Indicator LCO: Over bought LCO: Over sold
Solution Econometrics Toolbox
New in R2011a: EngleGranger and Johansen frameworks
-1 -2 -3 -4 -5 -6 2450 2500 2550 2600 2650 2700 2750 2800 2850
Code reuse from previous tasks
27
Implementing the Decision Engine
Goal: Evaluate and test the decision engine with real-time feeds and execution through a messaging bus
Development and testing
Historical Data
End of Day / Intraday Files Databases
Strategy Modeling
Research / Algorithms Model Development Calibration
Back Testing
Profit / Loss Risk Exposure
Implementation
Live Data
Real-Time Feeds Event-Based
Decision Engine
Models Trading Rules
Execution
Broker API Order Routing
28
Key Tasks
Key tasks Read live market data from data feed Connect to trading engine Solutions Datafeed Toolbox Many external APIs
.NET, Java, C/C++, etc. 3rd party APIs
29
Deploying Applications with MATLAB
Give MATLAB code to other users
MATLAB Compiler
Share applications with end users who do not need MATLAB
Stand-alone executables
.exe .dll
MATLAB Builder EX
MATLAB Builder JA
MATLAB Builder NE
Shared libraries Software components
Excel
Java
Web
COM
.NET
30
MATLABs solutions
Sophisticated analytics
Advanced graphics environment Toolboxes give access to hundreds of new techniques
Scalable speed
Parallel computing solution
Quick to develop and deploy
High-level programming Automated deployment
31
Support and Community
32
Consulting Services
Accelerating return on investment
A global team of experts supporting every stage of tool and process integration
Process and Technology Automation Process and Technology Standardization Full Application Deployment Component Deployment Advisory Services
Process Assessment
Jumpstart Migration Planning
Research
Advanced Engineering
Product Engineering Teams
Supplier Involvement
33
Continuous Improvement
Training Services
Exploit the full potential of MathWorks products
Flexible delivery options:
Public training available worldwide Onsite training with standard or customized courses Web-based training with live, interactive instructor-led courses
More than 30 course offerings:
Introductory and intermediate training on MATLAB, Simulink, Stateflow, Real-Time Workshop, and PolySpace products Specialized courses in control design, signal processing, parallel computing, code generation, communications, financial analysis, and other areas
34
MATLAB Central
Open exchange for the MATLAB and Simulink user community 662,000 visits per month File Exchange
Upload/download access to free files including MATLAB code, Simulink models, and documents Ability to rate files, comment, and ask questions More than 9,000 contributed files, 400 submissions per month, 25,500 downloads per day Web forum for technical discussions about MATLAB and Simulink 200 posts per day Frequent posts from key MathWorks developers who design and build the products Open conversation at blogs.mathworks.com
35
Newsgroup
Blogs
Based on February 2009 data
Connections Program
More than 300 add-on products and services that complement and extend MathWorks products:
Specialized third-party toolboxes for MATLAB Interfaces to third-party software and hardware products Specialized training courses and consulting services System integrators and suppliers that incorporate MathWorks products
36
Book Program
More than 1,000 books for educational and professional use, in 26 languages
Controls Signal Processing Image Processing Biosciences Communications Mechanical Engineering
Mathematics Aerospace Engineering Environmental Sciences Chemistry Finance Electronics
37
Technical Support
Resources
Over 100 support engineers All with MS degrees (EE, ME, CS) Local support in North America, Europe, and Asia Comprehensive, product-specific Web support resources
High customer satisfaction
95% of calls answered within three minutes 70% of issues resolved within 24 hours 80% of customers surveyed rate satisfaction at 80-100%
38