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

Plot Koordinaten

 

Pythagoras79
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 67
Anmeldedatum: 31.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.05.2009, 17:13     Titel: Plot Koordinaten
  Antworten mit Zitat      
Hi,
bin blutiger Anfänger. Probiere einen plot(x,y) mit einem Vektor S von 1500 bis 1700, der dann auf der waagrechten abgezeichnet werden soll.
Erstens spuckt mir der Plot nur die Koordinaten zwischen 1699 und 1701 aus und zweitens dreht er x und y-Achse.
Warum eigentlich?
Danke für erste Tipps...
Private Nachricht senden Benutzer-Profile anzeigen


Dagnabit
Forum-Century

Forum-Century


Beiträge: 244
Anmeldedatum: 23.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.05.2009, 17:25     Titel:
  Antworten mit Zitat      
Hallo Phythagoras79

Ich bitte Dich, Dein Problem etwas genauer zu beschreiben bzw. betreffende Zeilen Deines Codes hier rein zu stellen.

Sonst wird´s schwierig zu sagen wo das Problem liegt.

lg
Martin
Private Nachricht senden Benutzer-Profile anzeigen
 
Pythagoras79
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 67
Anmeldedatum: 31.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.05.2009, 17:43     Titel: Genauer
  Antworten mit Zitat      
for S=[1500:1:1700]


d1 = (log(S./X) + (r-q+0.5.*sigma.^2).*(T-t))./(sigma.*sqrt((T-t)));
d2 = d1 - sigma.*sqrt(T-t);
N1 = Norm_dist(d1);
N2 = Norm_dist(d2);
BSM_Call = S.*exp((-q).*(T-t)).*N1 - X.*exp(-r.*(T-t)).*N2;

x = BSM_call(S,X,r,q,sigma,t,T)
y=S

end

plot(x, y)
title('Delta Call, Optioprice against stock price')
xlabel('option price c')
ylabel('stockprice S')

die übrigen variablen habe ich dann oben angegeben mit X= etc.

Gruß

Errorplot.fig
 Beschreibung:
ich seh da nix

Download
 Dateiname:  Errorplot.fig
 Dateigröße:  2.76 KB
 Heruntergeladen:  616 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Dagnabit
Forum-Century

Forum-Century


Beiträge: 244
Anmeldedatum: 23.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.05.2009, 17:56     Titel:
  Antworten mit Zitat      
Also:

Deine for Schleife solltest Du so deklarieren:

Code:
for S = 1500 : 17000
...
end


Wenn
Zitat:
zweitens dreht er x und y-Achse
bedeutet, dass sie vertauscht sind, dann musst Du eben
Code:
verwenden.

(In Deinem Code ist S "waagrecht")

lg
Martin

Ps.: Wenn Du das nächste mal Code postest, verwende bitte die Code- Umgebung. (Unter Titel befinden sich Kästchen mit 'B' 'i'....; mit 'Code' kann Dein Code besser gelesen werden. Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Dagnabit
Forum-Century

Forum-Century


Beiträge: 244
Anmeldedatum: 23.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.05.2009, 18:58     Titel:
  Antworten mit Zitat      
Hallo nochmal

Was mir jetzt auch noch aufgefallen ist:
Code:
...
BSM_Call = S.*exp((-q).*(T-t)).*N1 - X.*exp(-r.*(T-t)).*N2;

x = BSM_call(S,X,r,q,sigma,t,T)
...
 


Da stimmt auch was nicht.
Entweder "BSM_Call" ist eine Funktion. Dann macht dir
Code:
BSM_Call = S.*exp((-q).*(T-t)).*N1 - X.*exp(-r.*(T-t)).*N2;
Probleme

Oder BSM_Call ist einfach eine Variable. Dann stimmt
Code:
x = BSM_call(S,X,r,q,sigma,t,T)
nicht.


Ich vermute BSM_Call ist eine Variable.
Dann solltest Du die Sache so machen:
Code:
...
for S = 1500 : 1700
     d1 = (log(S./X) + (r-q+0.5.*sigma.^2).*(T-t))./(sigma.*sqrt((T-t)));
     d2 = d1 - sigma.*sqrt(T-t);
     N1 = Norm_dist(d1);
     N2 = Norm_dist(d2);
     BSM_Call = S.*exp((-q).*(T-t)).*N1 - X.*exp(-r.*(T-t)).*N2;

     x(S - 1499)= BSM_Call;
     y(S-1499) = S;
end

plot(x, y) % oder plot(y,x)?
title('Delta Call, Optioprice against stock price')
xlabel('option price c')
ylabel('stockprice S')


lg
Martin
Private Nachricht senden Benutzer-Profile anzeigen
 
Pythagoras79
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 67
Anmeldedatum: 31.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.05.2009, 11:03     Titel: Bis jetzt funktioniert es
  Antworten mit Zitat      
Hi Martin,
vielen Dank erstmal für die Unterstützung. Hab jetzt raus gelesen, dass Funktionen nicht so leicht einzubauen sind. BSM_Call hab ich schon als function hinterlegt und gespeichert.

Jetzt kommt eine weitere Hürde hinzu. Soll das ganze jetzt noch über die Zeit laufen lassen: von t=1 bis 5 Beispielsweise. Und dann als 3D Plot.
Stehe wirklich ganz am Anfang meiner Kenntnisse und versuch mich einzuarbeiten.

Gruß
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.