ARMA SIMULATION
%The NYSE return series
clear;clc
format compact
load Data_EquityIdx;
priceNYSE = DataTable.NYSE;
returnNYSE = 100*price2ret(priceNYSE);
figure
plot(returnNYSE)
title('The NYSE return Series')
%Simulation for MA(1)
modelMA01 = arima('constant',0,'MA',0.1,'variance',0.001)
rng('default')
MA1 = simulate(modelMA01,3027);
figure
plot(MA1)
title('Simulated MA(1)')
%Simulation for MA(2)
modelMA02 = arima('constant',0,'MA',{0.1,0.7},'variance',0.001)
rng('default')
MA2 = simulate(modelMA02,3027);
figure
plot(MA2)
title('Simulated MA(2)')
% Simulation for AR(1)
modelAR01 = arima('constant',0,'AR',0.1,'variance',0.001)
rng('default')
AR1 = simulate(modelAR01,3027);
figure
plot(AR1)
title('Simulated AR(1)')
% Simulation for AR(2)
modelAR02 = arima('constant',0,'AR',{0.1,0.7},'variance',0.001)
rng('default')
AR2 = simulate(modelAR02,3027);
figure
plot(AR2)
title('Simulated AR(2)')
% Simulation for ARMA(1,1)
modelARMA01 = arima('constant',0,'AR',0.3,'MA',0.6,'variance',0.001)
rng('default')
ARMA01 = simulate(modelARMA01,3027);
figure
plot(ARMA01)
title('Simulated ARMA(1,1)')
Preliminary Analysis
%Financial Time Series Analysis
clear;
clc;
format compact;
load Data_EquityIdx;
priceNYSE = DataTable.NYSE;
returnNYSE = 100*price2ret(priceNYSE); %convert price to return
% figure
% plot(priceNYSE)
% title('NYSE price index')
% xlabel('daily')
% ylabel('Price Index')
% figure
% plot(returnNYSE)
% title('NYSE return series')
% xlabel('daily')
% ylabel('return series')
subplot(2,1,1)
plot(priceNYSE)
title('NYSE price index')
xlabel('daily')
ylabel('Price Index')
subplot(2,1,2)
plot(returnNYSE)
title('NYSE return series')
xlabel('daily')
ylabel('return series')
% Descriptive Statistics for return series
y = [mean(returnNYSE),median(returnNYSE)]
z = [skewness(returnNYSE), kurtosis(returnNYSE)]
figure
boxplot(returnNYSE)
% % histogram fitting for simulated return series
% ret = -7:0.1:7;
% yNORM = normpdf(ret,0,1);
% yT5 = tpdf(ret,5);
% yT3 = tpdf(ret,3);
% plot(ret,yNORM,':r',ret,yT5,'--b',ret,yT3,'g')
% title('Normal and t returns')
% xlabel('return')
% ylabel('probability density function')
% legend('NORMAL','t-nu=5','t-nu=3')
%
% histogram fitting for NYSE return series
figure
histfit(returnNYSE,50,'normal');
title('normal histogram fitting')
figure
histfit(returnNYSE,50,'tlocationscale');
title('student-t histogram fitting')
% fitting Normal and student-t in NYSE return
fitNORMAL = mle(returnNYSE, 'distribution','normal')
meanN = fitNORMAL(1)
signmaN = fitNORMAL(2)
fitT = mle(returnNYSE,'distribution','tlocationscale')
meanT = fitT(1)
sigmaT = fitT(2)
dof = fitT(3)
% normality test (quantile-quantile plot)
figure
qqplot(returnNYSE)