Code covered by the BSD License  

Highlights from
Modern Pricing Method using Transforms

image thumbnail

Modern Pricing Method using Transforms

by

 

25 Jul 2012 (Updated )

COS, CONV, Lewis Option Pricing Methods including Bermudan and American Options.

coeff_b(k, x1, x2, a, b)
% This is material illustrating the methods from the book
% Financial Modelling  - Theory, Implementation and Practice with Matlab
% source
% Wiley Finance Series
% ISBN 978-0-470-74489-5
%
% Date: 02.05.2012
%
% Authors:  Joerg Kienitz
%           Daniel Wetterau
%
% Please send comments, suggestions, bugs, code etc. to
% kienitzwetterau_FinModelling@gmx.de
%
% (C) Joerg Kienitz, Daniel Wetterau
% 
% Since this piece of code is distributed via the mathworks file-exchange
% it is covered by the BSD license 
%
% This code is being provided solely for information and general 
% illustrative purposes. The authors will not be responsible for the 
% consequences of reliance upon using the code or for numbers produced 
% from using the code. 



function [chi, psi] = coeff_b(k, x1, x2, a, b)
% compute chi and psi for cosine method
NStrikes = size(k,1);                       % fix size

chi = ones(NStrikes,1) * (exp(x2)-exp(x1)); % init chi
psi = ones(NStrikes,1) * (x2-x1);           % init psi

k2 = k(2:end);

arg2 = k2 .* pi .* (x2 - a) ./ (b - a);     % arg trig func
arg1 = k2 .* pi .* (x1 - a) ./ (b - a);     % arg trig func

term1 = exp(x2) .* cos( arg2 );
term2 = exp(x1) .* cos( arg1 );

term3 = exp(x2) .* k2 .* pi ./ (b-a) .* sin( arg2 );
term4 = exp(x1) .* k2 .* pi ./ (b-a) .* sin( arg1 );

chi(2:end) = 1 ./ ( 1 + ((k2 .* pi) ./ (b - a)).^2 ) ...
    .* ( term1 - term2 + term3 - term4 );   % modify init

arg2 = k2 .* pi .* (x2 - a) ./ (b - a);     % arg trig func
arg1 = k2 .* pi .* (x1 - a) ./ (b - a);     % arg trig func
    
psi(2:end) = (b - a) ./ (k2 .* pi) ...
    .* ( sin(arg2) - sin(arg1) );           % modify init

end

Contact us