e(i)=norminv(rand,0,1); %Zufälliger Wert der Standartnormalverteilung
dS(i)=mu*dt*SA+sigma*SA*sqrt(dt)*e(i); %Änderungsrate der Aktie
neuSA(i)=neuSA(i-1)+ dS(i); %neuer wert Aktie
end
Nun wird eine Simulation über T durchgeführt, es sollen aber über den Zeitraum T, ST simulationen durchgeführt werden. Es sollen beispielsweise ST=5 weitere Simulationen durchgeführt werden mit den Selben Parametern. Das Ergebnis wäre eine Matrix mit den Dimensionen [T,ST]
Anschließend sollen die einzelnen Simulationen geplottet werden...
Mir fehlt bislang leider das Programmierverständniss. Könntet ihr mir bitte bei meinem Problem helfen.
e(i,j)=norminv(rand,0,1); %Zufälliger Wert der Standartnormalverteilung
dS(i,j)=mu*dt*SA+sigma*SA*sqrt(dt)*e(i); %Änderungsrate der Aktie
neuSA(i,j)=neuSA(i-1)+ dS(i); %neue Aktie
end end
erhalte ich ST-mal den gleichen Vektor. Es sollen aber ST-verschiedene vektoren herauskommen.Darüber hinaus ist ab den Zweiten Vektor die erste zeile 0.
Ich denke mal, dass dein Problem darin liegt, dass du für jede Simulation jeweils die gleiche zufallszahl verwendest. logischerweise sind dann alle Simulationen gleich.
mit rand([St,1]) kannst du dir einen Vektor mit unterschiedlichen Zufallszahlen erzeugen.
Code:
mu=0.15; %Erwartete Rendite
sigma=0.1; %Volatilität
dt=0.01; %Zeiteinheit 3,65 Tage
T=100; %Betrechtet Zeiträume einer simulation
ST=5; %Anzahl verschiedener Simulation mit gleichen Werten
SA= 100*ones(1,ST); %Wert der Aktie
K=[1:T]; %Zeitraum in dem geplottet werden soll
e=norminv(rand([1,ST]),0,1); %Zufälliger Wert der Standartnormalverteilung
dS(i,:)=mu*dt*SA+sigma*SA*sqrt(dt).*e; %Änderungsrate der Aktie
neuSA(i,:)=neuSA(i-1,:)+ dS(i,:); %neue Aktie
end
Programmiertechnisch ist es wichtig die Größe der dabei entstehenden Matrizen schon vorzudefinieren. Sonst muss in jedem Schleifendurchlauf die Matrix vergrößert werden, was viel Zeit in Anspruch nimmt.
Vielen Dank es Funktioniert ganz gut, allerdings finde ich es etwas komischen das matlab bei ST=10000 abbricht. Es erscheint die Fehlermeldung "Out of Memory".
Dennoch vielen Dank für die Hilfe
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.