WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Verschiedene Ergebnisse bei gleicher Formel

 

Malco
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.05.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.05.2015, 20:15     Titel: Verschiedene Ergebnisse bei gleicher Formel
  Antworten mit Zitat      
Guten Abend liebe Matlab-Gemeinde,

mein Problem mit Matlab ist, dass ich bei unterschiedlichen Darstellungen einer gleichen Formel verschiedene Ergebnisse herausbekomme. Ich erkläre das an folgendem Beispiel:

Ich befasse mich gerade mit der Optionsbewertung und mir ist dieses Problem an der Black-Scholes-Formel aufgefallen. Innerhalb dieser Formel treten die folgenden Brüche auf:

d_1 = \frac{log(\frac{S}{K})+(r+\frac{\sigma^2}{2})T}{\sigma\sqrt{T}}

d_2 = \frac{log(\frac{S}{K})+(r-\frac{\sigma^2}{2})T}{\sigma\sqrt{T}} = d_1 - \sigma\sqrt{T}

Wenn ich nun für diese beiden Brüche als Beispiel die Parameter S=K=50, r=0,05, sigma=0,2 und T=3 einsetze, gibt mir Matlab komischerweise die folgenden Ergebniss heraus:

d_1 = 1,8187, aber:

d_1 - \sigma\sqrt{T} = 1,4722 \neq 0,7794 = \frac{log(\frac{S}{K})+(r-\frac{\sigma^2}{2})T}{\sigma\sqrt{T}}

Ich vermute, dass das daran liegt, dass Matlab mit gerundeten Werten rechnet, aber das möchte ich mir von erfahreneren Matlab-Nutzern bestätigen lassen. Gibt es eine Funktion, mit der man das verhindern kann?

Danke im Voraus. Smile
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 07.05.2015, 20:56     Titel:
  Antworten mit Zitat      
bitte poste den matlab code. das ist einfacher.für alle
grüße winkow
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Malco
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.05.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.05.2015, 21:45     Titel:
  Antworten mit Zitat      
Da hätte ich selbst drauf kommen können, sorry. Very Happy Ich hab das mal als die folgende Funktion geschrieben:

Code:
function [ d1,d2,x ] = bswerte(S,K,r,sigma,T)

d1=((log(S/K)+(r+((sigma^2)/2))*T) / sigma*sqrt(T));
d2=((log(S/K)+(r-((sigma^2)/2))*T) / sigma*sqrt(T));
x=d1-sigma*sqrt(T);

end


Wenn ihr Werte für die Parameter einsetzt, wird Matlab euch für d2 und x verschiedene Werte ausgeben, obwohl die eigentlich gleich sein müssen. Mir ist allerdings noch aufgefallen, dass Matlab für T=1 die Werte korrekt ausgibt (d2 und x sind in dem Fall auch gleich), aber für T!=1 nicht.

Woran kann das liegen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 07.05.2015, 22:03     Titel:
  Antworten mit Zitat      
du hast ne klammer vergessen
Code:
S=50;
K=50;
r=0.05;
sigma=0.2;
T=3;

d1=((log(S/K)+(r+((sigma^2)/2))*T) / (sigma*sqrt(T)))
d2=((log(S/K)+(r-((sigma^2)/2))*T) / (sigma*sqrt(T)))
x=d1-sigma*sqrt(T)

deswegen ist es immer besser den code zu posten:) an der richtigen formel oben lässt sich das nur schwer erraten Smile
grüße winkow
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Malco
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.05.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2015, 08:28     Titel:
  Antworten mit Zitat      
Winkow, du bist spitze! Very Happy Vielen Dank.

Ich habe eine halbe Ewigkeit mit der Fehlersuche verbracht, aber diesen kleinen Fehler einfach nicht gefunden, sodass ich schon geglaubt habe, dass der Fehler an Matlab, und nicht an mir liegt. Very Happy Nächstes Mal werde ich daran denken, den Code direkt zu posten.

Gruß Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.