Code covered by the BSD License  

Highlights from
Automated Trading with MATLAB - 2012

image thumbnail

Automated Trading with MATLAB - 2012

by

 

31 Aug 2012 (Updated )

Files from the Automated Trading webinar showing X_Trader and QuickFIX/J integration.

Algorithmic Trading with MATLAB: Preliminary modeling

Algorithmic Trading with MATLAB: Preliminary modeling

This demo is an introduction to using MATLAB to develop a simple trading strategy using an exponential moving average.

Copyright 2010-2012, The MathWorks, Inc. All rights reserved.

Contents

Load in some data (Excel)

LCO is Brent Crude blend, one of the most commonly traded oil benchmarks. Here, we load in price information from August 2003 through March 2011.

data     = xlsread('brent_1D.xlsx');
LCOClose = data(:,3);

Develop a simple lead/lag technical indicator

We'll use two exponentially weighted moving averages

[Lead, Lag] = movavg(LCOClose, 5, 20,'e');

% We can interactively create the chart we want with MATLAB's plotting
% tools, and we can automatically generate code for this cart as well.
indicatorChartMA([LCOClose, Lead, Lag])

Develop a preliminary strategy based on the indicator

We will create a simple trading rule based on the moving averages' crossover.

signal = zeros(size(LCOClose));
signal(Lead > Lag) =  1;                        % Buy  (long)
signal(Lead < Lag) = -1;                        % Sell (short)

trades  = [0; 0; diff(signal(1:end-1))];       % shift trading by 1 period
cash    = cumsum(-trades.*LCOClose);
pandl   = [0; signal(1:end-1)].*LCOClose + cash;
returns = diff(pandl);

annualScaling = sqrt(250);
sharpeRatio   = annualScaling*sharpe(returns,0); % Annual Sharpe ratio

Again, we can use MATLAB's plotting tools to provide a custom chart providing the information we need.

ruleChartMA([LCOClose, Lead, Lag], [signal, pandl], sharpeRatio)

Contact us