How to create for-loop for this case ?
Mostra commenti meno recenti
How would you create a for-loop for this case, I want to make the S and C and R jump on 25 days
close all; clear all; clc;
data1 = xlsread('dataCompanyprices','Sheet1','W4:AP1250');
S = std(data1)*sqrt(252); %Standard deviation for assets
C = cov(data1)*252; %Annual Covariance
r = mean(data1)*252; %Annual asset return
e = ones(1,20); %Unit vector
2 Commenti
Geoff Hayes
il 28 Gen 2020
Hannes - what do you mean by jump on 25 days? Where would the 0, 25, 50, 75, etc. fit into the above code? In the data1 array?
Hannes Arnar
il 28 Gen 2020
Risposte (1)
Paresh yeole
il 28 Gen 2020
Referring from your previous question,
I think this is what you need :
for i=1:(no_of_datapoints/25)
S(i) = std(data1(1+(i-1)*25:i*25))*sqrt(252); %Standard deviation for assets
C(i) = cov(data1(1+(i-1)*25:i*25))*252; %Annual Covariance
r(i) = mean(data1(1+(i-1)*25:i*25))*252;
end
3 Commenti
Hannes Arnar
il 28 Gen 2020
Paresh yeole
il 28 Gen 2020
My solution is for a 1-D array of data points. If you have multiple columns, then you need an extra for loop. If I understand correctly,
for j=1:no_of_columns
%rep
data = data1(:,j);
for i=1:(no_of_datapoints/25)
S(i,j) = std(data(1+(i-1)*25:i*25))*sqrt(252); %Standard deviation for assets
C(i,j) = cov(data(1+(i-1)*25:i*25))*252; %Annual Covariance
r(i,j) = mean(data(1+(i-1)*25:i*25))*252;
% here you will get a matrix of all the three values which correspond to set of 25 points
% for every column
end
end
Hannes Arnar
il 29 Gen 2020
Categorie
Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!