mvratio1(S0,Strike, prices, K, levymeasure,dt,i_ub)

% This is material illustrating the methods from the book
% Financial Modelling  Theory, Implementation and Practice with Matlab
% source
% Wiley Finance Series
% ISBN 9780470744895
%
% 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 fileexchange
% 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 y = mvratio1(S0,Strike, prices, K, levymeasure,dt,i_ub)
v = interp1(Strike,prices,K,'linear','extrap'); % option values at K
xval2 = dt:dt:i_ub;
xval1 = xval2;
f2 = @(x) (exp(x)  1) .* levymeasure(x);
f3 = @(x) (exp(x)1).^2 .* levymeasure(x);
s2 = v * dt*(sum(f2(xval1)) + sum(f2(xval2)));
s3 = dt*(sum(f3(xval1)) + sum(f3(xval2)));
s1 = zeros(length(K),1);
Xval1 = (exp(xval1)  1) .* exp(xval1) .* levymeasure(xval1);
Xval2 = (exp(xval2)  1) .* exp(xval2) .* levymeasure(xval2);
for jj = 1:length(K)
s1(jj) = (sum(Xval1 .* interp1(Strike,prices,K(jj)*exp(xval1))) ...
+ sum(Xval2.*interp1(Strike,prices,K(jj)*exp(xval2))))*dt;
end
num = s1s2;
denum = s3;
y = num/denum/S0;
end

