Matlab-Beispiel
Google
WWWwww.contractors.de

Die Ausgangsdaten der Berechnungen mit der Wertentwicklung des Dax auf Tagesbasis.

Das Script X1Filmen

Die Funktion VolPeriM

Die Funktion isokorrel

Das Script isoDM

Das Beispiel als Video-Datei

ein Video mit mehreren Iso-Oberflächen

Beispiel zur Umsetzung

Ein kleines Beispiel soll die Umsetzung zeitparametervariabler Analysen Verdeutlichen. Vom Dax soll die Volatilität, abhängig sowohl vom Start- und Endzeitpunkt, als auch von der Periodizität ermittelt und dargestellt werden.

Das Scripit X1Filmen führt die Berechnungen durch, stellt die resultierende Matrix mit Hilfe von Iso-Oberflächen dar und erstellt das oben sichtbare Video daraus.

Die Berechnung übernimmt die Funktion VolMeriM, die sowohl die Zeiträume als such die Periodizität variiert. Der Ablauf innerhalb aller Programme ist kommentiert und somit leicht nachvollziehbar. Die Darstellung wird durch den Aufruf der Funktion isokrrel erreicht. Im Script X1filmen werden mittels einer Schleife verschiedene Niveaus der Matrix unter verschiednen Betrachtungswinkeln dargestellt und aufgezeichnet. Interaktiv lassen sich die Matrizen natürlich noch besser erkunden. Das Script isoDM ermöglicht es, verschiedene Niveaus gleichzeitig darzustellen und zu bewegen, wie es das zweite Video zeigt.

X1Filmen

 

[KPM, Datumk]=VolPeriM(DAXT, 1, 300, DATUMT, DATUMJ, 1)

clear F1

for i=1:300

  isokorrel(KPM(:,:,1:250), i/1000, Datumk, 0, jet, .05, 0, 0, 10)

  daspect([50 50 1])

  camlight

  view(100+i*2,(i/100+1)*45)

  F1(i)=getframe(gcf);

  i

end

 

VolPeriM

function [KPM, Datumk]=VolPeriM(ZR1, MindestP, MaxP, Datum, ZMDatum, rollierend)

% Ermittelt die Volatilität einer Zeitreihe zu verschiedenen% Periodizitäten für alle Perioden

% © norman.schelwies@dekabank.de

% KPM      periodizitätsvariable Volatilität aller Perioden

%        (Volumen-Array), darstellbar mit isokorrel

% ZR1      Zeitreihe der Wertentwicklung eines Fonds oder eines Index

% MindestP   Mindestlänge der Renditeberechnung

% MaxP     Maximaler Abststand der Renditeberechnung

% Datum     Vektor des Zeitreihendatums

% ZMDatum    Vektor mit Datumsangaben, zu dem die Korrelationen

%        berechnet werden sollen

% rollierend  Angabe, ob die Renditen rollierend berechnet werden sollen

% Beispiel:   [KPM, Datumk]=VolPeriM(LandT(:,1), 1, 250, LandTD,...

% Jahresende, 1)

% das kleinste gemeinsame Datum bestimmen

a=max([max(find(isnan(ZR1)))+1 1]);

b=min(find(ZMDatum>Datum(a)));

NZMD=ZMDatum(b:end);

L=length(NZMD);

KPM(1:L,1:L,1:MaxP)=-1;

% die Zeitmatrix befüllen

for i=1:L-1;

  for j=i+1:L;

    c=find(Datum > NZMD(i) & Datum < NZMD(j));

    AZR=ZR1(c);

    KP(1:MaxP)=nan;

    for k=MindestP:MaxP;

      if rollierend==1

        AR=AZR(k+1:end)./AZR(1:end-k);

        % unter Umständen können auch hier die log-Renditen verwendet

        % werden, der

        % Unterschied ist aber äußerst gering

        % AR=log(AZR(i+1:end)./AZR(1:end-i));

        % BR=log(BZR(i+1:end)./BZR(1:end-i));        

      else

        AZR1=AZR(1:k:end);

        AR=AZR1(2:end)./AZR1(1:end-1);

      end

      KP(k)=std(AR)*sqrt(260/k);

    end

    KPM(j,i,1:length(KP))=KP(1:length(KP));

  end

  % rudimentäre Fortschrittsanzeige

  i

end

Datumk=NZMD;

 

 

 

isokorrel

 

function isokorrel(KPM, korrel, Datumk, Transparenz, Farbe, PatchRed, Periodenniveau, ug, Schrift)

% erstellt ein Iso-Oberflächen-Diagramm mit Isocaps für Volumendaten

% zeitparametervariabler Korrelations- oder Volatilitätsberechnungen sowie

% eine Ebene, die über alle Perioden das Niveau einer

% Vergleichsperiodizität zeigt

% © norman.schelwies@dekabank.de

% KPM        Volumendaten J x J x P parametervariabler Berechnungen

%          der Korrelation oder Volatilität, Matrix wird durch

%          KorrPeriM oder VolPeriM erzeugt

% korrel      Korrelationsniveau der Iso-Oberfläche

% Datumk      Datumsvektor zur Achsbeschriftung, wird ebenfalls durch

%          KorrPeriM oder VolPeriM erzeugt

% Transparenz    Alpha-Wert der Oberfläche der Vergleichsperiodizität

% Farbe       Farbvektor der Darstellung

% PatchRed     Schrupf-Faktor der Patch-Daten; je kleiner dieser Wert,

%          je schneller die Berechnung und je grober die Oberfläche

% Periodenniveau  Niveau der Periodizität, bei dem eine transparente

%          Oberfläche eingeblendet werden soll

% ug        Untergrenze der Korrelation zur Beschränkung der

%          Farbwerte-Erhöhung des Kontrasts

% Schrift      Schriftgröße, die im Diagramm verwendet werden soll

% Beispiel:     isokorrel(KPM, 0, Datumk, .3, jet, .05, 60, -1, 12)

%

 

% Obergrenze der Farbskala

og=.3;

% Die Ebene mit den gewünschten Eigenschaften erzeugen

L=length(Datumk);

P=ones(L,L)*Periodenniveau;

C=ones(L,L)*.2;

z=surf(P);

set(z,'CData',C,'XData',Datumk,'YData',Datumk, 'FaceAlpha', Transparenz,'EdgeColor', [ 0.853 0.853 0.853])

 [SX, SY, SZ]=size(KPM);

% Funktionsaufruf, der ein X-Y-Z-Raster analog einem meshgrid aufbaut

% Die Funktion Wertegitter ist ebenfalls enthalten

[BX, BY, BZ]=Wertegitter(Datumk,1:SZ);

% Farbwerte der Iso-Oberfläche bestimmen

fl=round(length(Farbe)*(korrel-ug)/(og-ug))+1;

% Iso-Oberfläche bestimmen

[f,v]=isosurface(BX,BY,BZ,KPM,korrel);

% Iso-Oberfläche zeichnen

p=patch('faces', f, 'vertices', v);

set(p,'FaceColor',Farbe(fl,:),'EdgeColor','none');

% Datenmenge rduzieren

reducepatch(p,PatchRed)

% Glätten der Oberflächen

isonormals(BX,BY,BZ,KPM,p)

% Isocaps erzeugen und einzeichnen

ic = isocaps(BX,BY,BZ,KPM,korrel);

p1=patch(ic);

set (p1, 'FaceColor','interp','EdgeColor','none');

colormap(Farbe)

% Renderer festlegen

lighting phong

%Achsen einrichten

axis equal

datetick('x',10)% format der Beschriftung

datetick('y',10)

% Verhältnis für die Verwendung von Zeitwerten auf der x- und y-Achse anpassen

daspect([1000 1000 20]);

axis tight

set(gcf,'color','white')% Hintergrund des Bildes

set(gca,'color',[ 0.9 0.9 0.9 ],'YAxisLocation','right','FontName','Arial','XColor', ...

  [ 0.253 0.253 0.253 ],'YColor', [ 0.253 0.253 0.253 ],'ZColor', [ 0.253 0.253 0.253 ],'FontSize',[Schrift],...

  'CLim', [ug og], 'CameraPosition',[756523 638574 1083.25],'CameraTarget', [726277 726277 100.5], 'ZLim',[0 SZ])

% Lichteinstellungen

%camlight headlight

camlight right

 

 

 

isoDM

 

 % Diagrammmatrix der Iso-Oberflächen

% auch zum Erstellen der der Einzelgrafiken verwendbar

for i=1:4

  h(i)=subplot(2,2,i)

  isokorrel(KPM(:,:,1:250), .05+i/20, Datumk, .05, jet, .2, 20, 0, 8)

  % print -djpeg -r100 'otto.jpg'

  % copyfile('otto.jpg',['REXP MSWRLD IsoKorr ' int2str(i+100) '.jpg'])

end

% Verknüpfen der Eigenschaften

hlink = linkprop(h,{'CameraPosition','CameraUpVector','CameraTarget','CameraViewAngle','PlotBoxAspectRatio','XLim','YLim'});

setappdata(h(1),'graphics_linkprop',hlink);

 

 

unten1
[Start] [Probleme] [Idee] [Dissertation] [Umsetzung] [Funktionsliste] [ViRAMax] [Matlab-Beispiel] [Ergebnisse] [Links/ Literatur] [Kontakt] [Haftungsausschluss]