就是,哪有那么简单的事情?这玩意要自己写程序的。不过可以给个你参考
function [] = MertonJumpEuro(CallPut, AssetP, Strike, RiskFree, Time, Vol, Jumps, Gamma, MaxIter)
% Requires BlackScholesEuro.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Computes the Merton (1976) Jump diffusion model for European Call/Put Option Values based
% on the following inputs:
% CallPut = Call = 1, Put = 0
% AssetP = Underlying Asset Price
% Strike = Strike Price of Option
% RiskFree = Risk Free rate of interest
% Time = Time to Maturity
% Vol = Volatility of the Underlying
% Jumps = Number of Jumps per Year
% Gamma = Percent of total volatility explained by jumps
% MaxIter = Max number of iterations to be used
% Please note that the use of this code is not restricted in anyway.
% However, referencing the author of the code would be appreciated.
% To run this program, simply use the function defined in the 1st line.
% http://www.global-derivatives.com
% info@global-derivatives.com
% Kevin Cheng (Nov 2003)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Delta = sqrt((Gamma * (Vol ^ 2)) / Jumps);
A = sqrt(Vol ^ 2 - Jumps * Delta ^ 2);
Value = 0;
for i = 0:MaxIter
VV = sqrt(A ^ 2 + Delta ^ 2 * (i / Time));
Value = Value + (exp(-Jumps * Time) * (Jumps * Time) ^ i / factorial(i)) * BlackScholesEuro(CallPut, AssetP, Strike, RiskFree, Time, VV);
end
MertonJumpEuro = Value