Cross-correlation of returns matrix

2 views (last 30 days)
Christos Chatzikomnitsas
Christos Chatzikomnitsas on 21 Jan 2021
Answered: Rik on 21 Jan 2021
Assume a returns table A(200 rows returns,30 cols stock names), trying to create a cross correlation matrix between each of the pairs of stocks.
Am I right trying to use xcorr function? Trying to do that in a for loop and also tried to xcorr with matrix name.
xcorr would take timeseries of A(,1) and create all cross correlations with rest of columns (in pairs), or am I wrong? I would expect the result would be D=cols+(cols-1)+..(cols-N), one cross-correlation for each unique pair. But thats not what I get from the below. Is my understanding wrong or my usage of function?
[r,lags]=xcorr(A)
or
for i=1:30
for j=1:30
D=xcorr(A(:,i),A(:,j))
end
end

Answers (1)

Rik
Rik on 21 Jan 2021
I'm not sure the rest of your code is doing what you want, but at the very least you need to index D so you don't overwrite it every iteration.

Products


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!