%% 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