algorithmic trading with matlab

36

Click here to load reader

Upload: umbyis

Post on 24-Oct-2015

115 views

Category:

Documents


3 download

DESCRIPTION

Presentation about Algorithmic Trading using Matlab

TRANSCRIPT

Page 1: Algorithmic Trading with MATLAB

1 © 2011 The MathWorks, Inc.

Algorithmic Trading with MATLAB®

Martin Demel, Application Engineer

Page 2: Algorithmic Trading with MATLAB

2

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

Page 3: Algorithmic Trading with MATLAB

3

Management

Traders

Other groups

Quant Group

Financial

Engineer

Regulators

Clients

Partners

Challenges through the organization

Page 4: Algorithmic Trading with MATLAB

4

Customers using MATLAB

Asset Management Insurance

Banks (Commercial,Retail,Investment) Financial Services Central Banks

Energy Trading

Page 5: Algorithmic Trading with MATLAB

5

Algorithmic trading workflow

Research and Quantify

Data Analysis

& Visualization

Testing &

Optimization

Strategy

Development

Reporting

Applications

Production

Share

Automate

Files

Databases

Datafeeds

Access

Page 6: Algorithmic Trading with MATLAB

6

Algorithmic trading workflow

Financial

Statistics Optimization

Fixed Income Financial Derivatives Econometrics

MATLAB

Parallel Computing MATLAB Distributed Computing Server

Files

Databases

Datafeeds

Access

Reporting

Applications

Production

Share

Data Analysis and Visualization

Testing and Optimization

Strategy Development

Research and Quantify

Datafeed

Database

Spreadsheet Link EX

Builder NE

Builder EX

Builder JA

MATLAB Compiler

Rep

ort G

en

era

tor

Page 7: Algorithmic Trading with MATLAB

7

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

Page 8: Algorithmic Trading with MATLAB

8

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

Page 9: Algorithmic Trading with MATLAB

9

Trading decision engine

Models

Trading Rules

Decision Engine

Broker API

Order Routing

Execution

Real-Time Feeds

Event-Based

Live Data

Implementation

Development and testing

Historical Data

End of Day / Intraday

Databases

Files

Strategy Modeling

Research / Algorithms

Calibration

Model Development

Back Testing

Profit / Loss

Risk Exposure

Page 10: Algorithmic Trading with MATLAB

10

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

Page 11: Algorithmic Trading with MATLAB

11

Task 1: Develop a back testing environment

Goal: Build a back testing environment around historical

data and a preliminary trading rule

Models

Trading Rules

Decision Engine

Broker API

Order Routing

Execution

Real-Time Feeds

Event-Based

Live Data

Implementation

Development and testing

Historical Data

End of Day / Intraday

Databases

Files

Strategy Modeling

Research / Algorithms

Calibration

Model Development

Back Testing

Profit / Loss

Risk Exposure

Page 12: Algorithmic Trading with MATLAB

12

Key tasks

Key tasks

Import data from files

Create a preliminary rule

Test the rule’s performance

Solutions

MATLAB data tools

High-level programming and

pre-built functions

Powerful graphics

environment

0

20

40

60

80

100

1200 20 40 60 80 100 120

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

Max Sharpe Ratio 0.758 for Lead 17 and Lag 120

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

Page 13: Algorithmic Trading with MATLAB

14

Task 2: Expand the scale of the engine

Goal: Move to a higher frequency (minute-by-minute) and

re-calibrate the model

Models

Trading Rules

Decision Engine

Broker API

Order Routing

Execution

Real-Time Feeds

Event-Based

Live Data

Implementation

Development and testing

Historical Data

End of Day / Intraday

Databases

Files

Strategy Modeling

Research / Algorithms

Calibration

Model Development

Back Testing

Profit / Loss

Risk Exposure

Page 14: Algorithmic Trading with MATLAB

15

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

Page 15: Algorithmic Trading with MATLAB

17

Task 3: Rule selection engine

Goal: Develop a rule selection system for instruments

using evolutionary learning

Models

Trading Rules

Decision Engine

Broker API

Order Routing

Execution

Real-Time Feeds

Event-Based

Live Data

Implementation

Development and testing

Historical Data

End of Day / Intraday

Databases

Files

Strategy Modeling

Research / Algorithms

Calibration

Model Development

Back Testing

Profit / Loss

Risk Exposure

Page 16: Algorithmic Trading with MATLAB

18

Key tasks

Key tasks

Increase number of rules

Incorporate advanced

analytics to select best

combination

Page 17: Algorithmic Trading with MATLAB

19

Working with multiple strategies

Signal 1 Signal 2 Signal 3 AND AND

Should I trade?

Yes Yes No

OR OR

Dempster et. al., Computational learning techniques for intraday fx trading using popular technical indicators,

IEEE Transactions on Neural Networks (2001).

Page 18: Algorithmic Trading with MATLAB

20

Working with multiple strategies

Represent different combinations as bit strings

Signal 1 Signal 2 Signal 3 AND OR

1 0 0 1 0 1 1 1 1 1

Sig

na

l 1

Sig

nal 2

Sig

nal 3

AND OR Signals

Active?

Page 19: Algorithmic Trading with MATLAB

21

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 = [ 1 0 1 0 0 1 1 0 0 0 ]

– child = [ 0 1 0 1 0 1 0 0 0 1 ]

Page 20: Algorithmic Trading with MATLAB

22

Key tasks

Key tasks

Increase number of rules

Incorporate advanced

analytics to select best

combination

Solutions

High-level programming

MATLAB Toolboxes: Global

Optimization, …

1000 2000 3000 4000 5000 6000 7000 8000 9000 100000

50

100

150Evolutionary Learning Results, Sharpe Ratio = 2.38

Price (

US

D)

1000 2000 3000 4000 5000 6000 7000 8000 9000 100000

50

100

150

200P

rice (

US

D)

Serial time number

Final Return = 239 (249%)

Position

Cumulative Return

Page 21: Algorithmic Trading with MATLAB

23

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

Page 22: Algorithmic Trading with MATLAB

24

MATLAB’s 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

Page 23: Algorithmic Trading with MATLAB

25

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

Page 24: Algorithmic Trading with MATLAB

26

Pairs Trading in Brief

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

Nov/09 Dec Jan/10 Feb Mar

70

72

74

76

78

80

82

84

Date

Price (

US

D)

Intraday prices for LCO and WTI

LCO

WTI

Page 25: Algorithmic Trading with MATLAB

27

Key tasks / challenges

Key tasks

Identify cointegrating

relationships

Test the strategy

Solution

Econometrics Toolbox

– New in R2011a: Engle-

Granger and Johansen

frameworks

Code reuse from previous

tasks

2450 2500 2550 2600 2650 2700 2750 2800 2850

-6

-5

-4

-3

-2

-1

0

1

2

3

Indic

ato

r

Pairs indicator: rebalance every 60 minutes with previous 420 minutes' prices.

Indicator

LCO: Over bought

LCO: Over sold

Page 26: Algorithmic Trading with MATLAB

28

Implementing the Decision Engine

Goal: Evaluate and test the decision engine with real-time

feeds and execution through a messaging bus

Models

Trading Rules

Decision Engine

Broker API

Order Routing

Execution

Real-Time Feeds

Event-Based

Live Data

Implementation

Development and testing

Historical Data

End of Day / Intraday

Databases

Files

Strategy Modeling

Research / Algorithms

Calibration

Model Development

Back Testing

Profit / Loss

Risk Exposure

Page 27: Algorithmic Trading with MATLAB

29

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

Page 28: Algorithmic Trading with MATLAB

30

Java Excel .NET Web COM

Deploying Applications with MATLAB

Give MATLAB code

to other users

Share applications

with end users who

do not need MATLAB

– Stand-alone

executables

– Shared libraries

– Software components

.exe .dll

MATLAB Compiler

MATLAB Builder NE

MATLAB Builder EX

MATLAB Builder JA

Page 29: Algorithmic Trading with MATLAB

31

MATLAB’s 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

Page 30: Algorithmic Trading with MATLAB

32

Support and Community

Page 31: Algorithmic Trading with MATLAB

33

Migration Planning

Component Deployment

Full Application Deployment

Co

nti

nu

ou

s Im

pro

ve

me

nt

Supplier Involvement Product Engineering Teams Advanced Engineering Research

Advisory Services

Process Assessment

Jumpstart

Process and Technology

Standardization

Process and Technology

Automation

A global team of experts supporting every stage of tool and process integration

Consulting Services Accelerating return on investment

Page 32: Algorithmic Trading with MATLAB

34

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

Page 33: Algorithmic Trading with MATLAB

35

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

Newsgroup – Web forum for technical discussions about

MATLAB and Simulink

– 200 posts per day

Blogs – Frequent posts from key MathWorks developers

who design and build the products

– Open conversation at blogs.mathworks.com

Based on February 2009 data

MATLAB Central

Page 34: Algorithmic Trading with MATLAB

36

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

Page 35: Algorithmic Trading with MATLAB

37

Book Program

Controls Signal Processing Image Processing Biosciences Communications Mechanical Engineering

Mathematics Aerospace Engineering Environmental Sciences Chemistry Finance Electronics

More than 1,000 books for educational and

professional use, in 26 languages

Page 36: Algorithmic Trading with MATLAB

38

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%