algorithmic trading with matlab® - humusoft.cz · 2 agenda • introducing mathworks •...

25
1 © 2011 The MathWorks, Inc. Algorithmic Trading with MATLAB® Martin Demel, Application Engineer

Upload: doanxuyen

Post on 02-Aug-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

1 © 2011 The MathWorks, Inc.

Algorithmic Trading with MATLAB®

Martin Demel, Application Engineer

Page 2: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

2

Agenda

• Introducing MathWorks

• Introducting MATLAB (Portfolio Optimization Example)

• Introducting Algorithmic Trading with MATLAB

Break

• Credit Risk Modeling with MATLAB

• Risk Management using various VaR

computation methods

• Overview of derivatives pricing capabilities and further

financial computing products

• Q&A

Page 3: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

3

RWE Develops and Deploys an Automated

System for Natural Gas and Power Trading

and Risk Management

Challenge

Automate business processes for quoting gas

contracts and hedging against price fluctuations

Solution

Engage MathWorks Consulting to develop and

deploy to a production environment an automated

pricing and risk management system that fits within

the company’s existing IT infrastructure

Results

Models created in minutes, not weeks

100% accurate results delivered

Technical expertise applied to core business

goals

“MathWorks consultants were well-

qualified, professional, and fast. They

understood not only the technical

issues but also the business goals,

which is essential when working on a

core business system. We got more

than we expected from MathWorks

Consulting.”

Dr. Norbert Tönder

RWE

Link to user story

RWE headquarters in Essen.

Page 4: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

4

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 5: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

5

Agenda

Introduction: Algorithmic trading

Developing an automated trading decision engine

– Identify a successful trading rule

– Extend trading rule set

– Automate trading rule selection

Implementing MATLAB into your production trading

environment

Wrap up and Q&A

Page 6: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

6

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 7: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

7

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 8: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

8

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 9: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

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

Goal:

Task 1: Build a back testing environment around historical data and a

preliminary trading rule

Task 2: Move to a higher frequency (minute-by-minute) and re-calibrate

the model

Task 3: Develop a rule selection system for instruments using

evolutionary learning

Page 10: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

10

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 11: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

11

Task 1: Develop a back testing environment

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 12: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

12

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 13: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

13

Task 2: Expand the scale of the engine

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 14: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

14

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 15: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

15

Task 3: Rule selection engine

Key tasks

Increase number of rules

Incorporate advanced

analytics to select best

combination

Page 16: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

16

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 17: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

17

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 18: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

18

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 19: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

19

Task 3: Rule selection engine

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 20: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

20

Agenda

Introduction: Algorithmic trading

Developing an automated trading decision engine

– Identify a successful trading rule

– Extend trading rule set

– Automate trading rule selection

Implementing MATLAB into your production trading

environment

Wrap up and Q&A

Page 21: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

21

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 22: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

22

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 23: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

23

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 24: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

24

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 25: Algorithmic Trading with MATLAB® - humusoft.cz · 2 Agenda • Introducing MathWorks • Introducting MATLAB (Portfolio Optimization Example) • Introducting Algorithmic Trading

25

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