Beweiss für die Existenz des Hallowenn

Werbung
%% Beweiss für die Existenz des Hallowenn-Effektes auf dem deutschen
%Kapitalmarkt von 1970 bis 2013
% von Vicky Nolte und Muxing Wang (Gruppe 10)
%% Daten einlesen Rohdaten-Totalreturns
mTR=xlsread('datastreamtotalreturnindexmonatsdaten.xlsx');
%Datumsformat ändern
mTR(:,1)=x2mdate(mTR(:,1));
%% Daten bereinigen von Financials(SIC 6000-7000)durch NaN,
%%da Ihre Tätigkeit spiegelbildlich zu anderen Branchen ist und sich
%%Forderungen und Verbindlichkeiten innerhalb einer Bank umgekehrt zu
%%anderen Unternehmen verhalten.
mSIC=mTR(1,2:end);
lfinancials=mSIC>=6000 & mSIC<7000;
mTR(:,[false lfinancials])=NaN;
%Inf Elemente durch NaN ersetzen
mTR(isinf(mTR))=NaN;
%Penny Stocks (Werte unter 1 Euro) bereinigen
mTR(mTR<1)=NaN;
%Alle Nullen ersetzen durch NaN
mTR(mTR==0)=NaN;
%% Daten einlesen CDAX als vergleichbares Marktportfolio
mCDAX=xlsread('RMRF.xlsx',1,'B6:C533');
%Datumsformat ändern
mCDAX(:,1)=x2mdate(mCDAX(:,1));
%% Renditen berechnen alle Zeitpunkte der Rohdaten
mRet=mTR(2:end,2:end)./mTR(1:end-1,2:end)-1;
%% Renditen berechnen alle Zeitpunkte der CDAX-Werte
mRetCDAX=mCDAX(3:end,3:end)./mCDAX(2:end-1,3:end)-1;
%% Graphische Darstellung
bar(mRet);
% Später soll auch mRetCDAX dargestellt werden. Es ist zu prüfen, ob dies
% mit in den Befehl bar aufgenommen werden kann oder ein gesonderter Befehl
% erforderlich ist.
%Achsen beschriften
title('Gegenüberstellung der CDAX und nicht CDAX Renditen');
xlabel('Monate');
set(gca,'XTickLabel',{'AlleAktien';'CDAX'});
ylabel('Mittlere Rendite');
%% Mittelwerte der Renditen
% mittlere Rendite über aller Jahre und Aktien
dMeanRetMarket=nanmean(nanmean(mRet));
% mittlere Renditen CDAX aller Jahre und Aktien
dMeanRetMarketcdax=nanmean(nanmean(mRetCDAX));
%% Varianz der Mittelwerte berechnen, welches die Verteilung der Werte
%um den Mittelwert darstellt
%Varianz der Renditen Rohdaten
vVari=var(vStockmean);
%Varianz des CDAXes
vCDAXVari=var(vBeta);
%% Standardabweichung der Mittelwerte berechnen, um die Verteilung aller
%Werte zu betrachten
% Standardabweichung der Renditen
dRetMonthlyStd=nanstd(mRet);
%Standardabweichung des CDAXes
dRetMonthlyStdCDAX=nanstd(mRetCDAX);
%Grafik Standardabweichung, Mittelwert, Varianz von Renditen der Rohdaten
% Später soll auch mRetCDAX dargestellt werden.
bar(dMeanRetMarket);
%Achsen beschriften Grafik des Mittelwertes
title('Gegenüberstellung der Mittelwerte');
xlabel('Monate');
set(gca,'XTickLabel',{'Mittelwert' 'Mittelwert CDAX'});
ylabel('Mittlere Rendite');
bar(dRetMonthlyStd)
%Achsen beschriften Grafik der Standardabweichung
title('Gegenüberstellung Standardabweichung');
xlabel('Monate');
set(gca,'XTickLabel',{'Standardabweichung' 'Standardabweichung CDAX'});
ylabel('Mittlere Rendite');
%% Durchführung des Jarque-Bera-Tests zur Prüfung der Normalverteilung.
%Der Jarque-Bera-Test ist ein statistischer Test
%der anhand einer Schleife und der Kurtosis in den Daten überprüft, ob eine
%Normalverteilung vorliegt und stellt somit einen speziellen Anpassungstest
%da.
%H0= Normalverteilung der Stichprobe
%H1= Abnormale Verteilung der Stichprobe
%H0 wird abgelehnt/verworfen, wenn das Signifikanzniveau < 5%
%H1 wird beibehalten, wenn das Signifikanzniveau > 5%
if vH0 == 1
disp('Die Stichprobe ist nicht normal verteilt')
else
disp('Die Stichprobe ist normal verteilt')
end
load datastreamtotalreturnindexmonatsdaten.xlsx
[h]=jbtest(mRet);
%% Regression für jede Aktien mit allen Monaten auf CDAX durchführen.
%Auf dieser Grundlage soll im Anschluss eine Schleife gebaut werden (für
%jede Aktie), um die Existenz des Halloweeneffektes (erhöhter
%Winterrenditen) zu prüfen. Die Schleife wird auf Basis von Epsilon
%erstellt.
%load mRet
%load mRetCDAX
% Dimension ermitteln
[iNumObs,iNumStocks]=size(mRet);
% letzte Spalte ist der Markt,(gleichgewichtete Marktrendite)
iNumStocks=iNumStocks-1;
% Datum anfuegen
mRet=[mTR(2:end,1) mRet];
%Datumsformat ändern
%mTR(:,1)=x2mdate(mTR(:,1));
% Start und Enddatum
sStartDatum='01.01.1970';
sEndDatum='01.12.2013';
% logischen Index erstellen
lIndx=mRet(:,1)>datenum(sStartDatum,'dd.mm.yyyy') &
mRet(:,1)<datenum(sEndDatum,'dd.mm.yyyy');
% Regressionen fuer jede Aktie
vBeta=NaN(iNumStocks,1);
vStockMean=NaN(iNumStocks,1);
for iStock=2:iNumStocks
if ~any(isnan(mRet(lIndx,iStock)))
rResults=regstats(mRet(lIndx,iStock),mRet(lIndx,end));
vBeta(iStock,1)=rResults.beta(2);
vStockMean(iStock,1)=mean(mRet(lIndx,iStock));
end
end
% Regression durchschnittliche Rendite auf die geschaetzten Beta-Koeffizienten
rBetaFM=regstats(vStockMean,vBeta);
% Abbildung erstellen
%figure(1)
%scatter(vBeta,vStockMean)
%xlabel('\beta_m');
%ylabel('\mu_{r_i}');
%T-Test durchführen, um Nullhypothese zu prüfen.
%Regressionscode
for i=1size(mRet,1)
[b,bint,r,rint]=regress(mRet(:,i),mCDax);
end
Herunterladen