Verfasst am: 20.05.2010, 15:51
Titel: Ausgabematrix A in Excel
Hi, hab folgendes Programm für die Preisberechnung einer Option. Für die verschiedenen Werte von lambda sollen die resultierenden Preise angegeben werden. Wenn ich es aber so laufen lasse, werden immer nur die berechneten Werte ausgegeben und wieder überschrieben. Die Endamtrix A ist also nur mit den letzten Werten gefüllt. Ziel ist aber eine Excel Tabelle mit Splate 1 lamda Werte und Spalte 2 mit den entsprechenden Preisen.
Wenn ich eine weitere Hilfsvariable z hinzufüge meckert das Hintergrundprogramm SET mit Dimension dismatch!
Hat jemand eine Idee?
Hier die beiden Programme...
Code:
%Data Boyle and Lau:
% S=95;X=100;H=90;T=1;t=0;n=100;r=0.1;q=0;sigma=0.25;k=2;
function european_call_trin_ritch = European_call_trin_ritch_bsp(S,X,T,t,n,r,q,sigma,k) format short
for i=1:(2*n+1)
payoff(i,n+1)=max(SET_Strech(i,n+1)-X,0);
end
erg=payoff;
for j=n:-1:1 for i=(2*n-1):-1:1 if i<=(2*j-1)
payoff(i,j)=(exp(-r.*delta_t)).*((p_up.*payoff(i,j+1))+(p_middle.*payoff(i+1,j+1))+(p_down.*payoff(i+2,j+1)));
else payoff(i,j)=0;
end end end
european_call_trin_ritch=payoff(1,1);
[lambda,european_call_trin_ritch]
A=[lambda,european_call_trin_ritch] end
for i=1:(2*n+1)
payoff(i,n+1)=max(SET_Strech(i,n+1)-X,0);
end
erg=payoff;
for j=n:-1:1 for i=(2*n-1):-1:1 if i<=(2*j-1)
payoff(i,j)=(exp(-r.*delta_t)).*((p_up.*payoff(i,j+1))+(p_middle.*payoff(i+1,j+1))+(p_down.*payoff(i+2,j+1)));
else payoff(i,j)=0;
end end end
european_call_trin_ritch(z)=payoff(1,1);
Es kommt aber folgende Fehlermeldung
>> european_call_trin_ritch = European_call_trin_ritch_bsp(S,X,T,t,n,r,q,sigma,k)
??? Subscripted assignment dimension mismatch.
Error in ==> European_call_trin_ritch_bsp at 40
payoff(i,j)=(exp(-r.*delta_t)).*((p_up.*payoff(i,j+1))+(p_middle.*payoff(i+1,j+1))+(p_down.*payoff(i+2,j+1)));
schau dir das doch am besten im Debugger an. Mich wundert allerdings, dass du plötzlich in einer Zeile einen Fehler bekommst, die auf den ersten Blick vor der Zeile liegt, die du geändert hast.
Da du z verwendest, ohne es vorher gesetzt zu haben, wird das auch nicht funktionieren.
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.