Code covered by the BSD License

# Automated Trading with MATLAB - 2012

### Stuart Kozola (view profile)

31 Aug 2012 (Updated )

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.

## 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.
```

## 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;                        % Sell (short)

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)
```