Verfasst am: 08.05.2011, 10:42
Titel: Lsqr Methode und das CRR Modell
Hallo erstmal an alle. Ich bin neu in diesem Forum und hoffe jemand von euch kann mir helfen.
Also ich soll ein CRR Modell kalibrieren. Ich habe bis dato die Rückwärtsinduktion zur Berechnung des fairen Preises einer amerikanischen Calloption implementiert. Diese Funktion nennt sich bei mir ac(u,d,n,S,K,r) und gibt mir als Return den fairen Preis des Wertpapiers.
Jetzt ist meine Aufgabe anhand von echten Werten aus dem Finanzmarkt ein Modell zu kalibrieren mithilfe der Least Square Methode. Diese ist schon in Matlab integriert (lsqr). Jetzt ist das Problem, dass ich nicht weiß, ob/wie es geht das ich jetzt aufrufe
LSQR von (ac(u,d,30,1800,2500,1/100)=5.3 und ac(u,d,30,1500,2700,1/100)=1
Ich weiß, dass ich LSQR Ax=b löst. Kann das ganze aber auch mit der Funktion aufrufen und Parameter übergeben. Aber wie ich das jetzt mache weiß ich leider nicht.
Würde mich über Hilfe sehr freuen.
Danke im voraus.
mfg Stefan
für mich sieht das nach zwei nichtlin. (also nichts mit Ax = b) Gleichungen in zwei Unbekannten aus. Das wird z.B. von FSOLVE (Optimization Toolbox) gelöst.
so wie du mir das empfohlen hast geht das leider nicht.
Aber nach weiterer Recherche, habe ich die lsqnonlin Funktion gefunden.
Eben zur Annäherung nicht linearer Gleichungen mithilfe der Least Square Methode.
Kann ich die besagte Funktion verwenden? Und wenn ja, wie muss ich das implementieren? Leider ist der besagte Hilfetext noch verwirrender.
Code:
So habe ich fun definiert wie du gesagt hast.
function y = fun(x)
u =x(1);
d = x(2);
y = zeros(2,1);
y(1) = ac(u,d,30,1800,2500,1/100);
y(2) = ac(u,d,30,1500,2700,1/100);
end
und dann habe ich aufgerufen:
fsolve(@fun,[0,0])
??? Error using ==> ac
Too many output arguments.
Error in ==> fun at 8
y(1) = ac(u,d,30,1800,2500,1/100);
Oh mein Gott. Ich habe echt den Preis Wert nicht zurück geben lassen.....Was für ein Anfängerfehler...
Naja wenn ich jetzt mehr Gleichungen habe, kann ich die einfach zu der Funktion fun hinzufügen?
mfg
Wenn ich das mit meiner ac funktion ausrechnen lasse sind wir weit weg von realen Beträgen. :/
Meine Hilflosigkeit nervt mich wirklich.
Tut mir Leid.
mfg
ich habs mir nochmal angeschaut: nach deinem Post von gestern, 20:07 suchst du nach Nullstellen der Funktion. Du willst das ja aber anderen Werten gleichsetzen, siehe mein Beitrag von gestern, 15:45.
Im Zweifelsfall helfen auch bessere Startwerte.
Grüße,
Harald
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.