MATLAB财务数据算法

时间:2014-11-26 22:05:45

标签: matlab finance probability-density quantitative-finance

因此,我在2010年至今的不同日期拥有大量的S& P 100历史期权数据excel电子表格。我想在每个日期找到股票的概率密度函数。

找到此功能的方法是采用与执行价格相关的通话价格(列于第5列)的二阶导数。我希望我的MATLAB脚本能够按如下方式工作:

  1. 使用曲线拟合工具箱样条拟合函数创建相对于每个日期的执行价格的调用价格曲线。每个日期大约有10个点。

  2. 使用微分函数得到可能有50分的二阶导数估计二阶导数函数。

  3. 在这些点上使用Riemann积分来计算预期值的积分。

  4. 我的主要问题是分组表。我已经完成了研究,并认为我可能不得不使用rowfun,但我对使用这样的数据真的不是很有经验。

    任何帮助都会非常感激!

    数据集的样本:

    Data table

1 个答案:

答案 0 :(得分:0)

您是否只是为了计算该日期的“最佳”二阶导数值而执行步骤(1)到(3)?如果是这样,有一个更简单的方法来做到这一点。在伪代码中,它看起来像:

%assume that all_dates is a Matlab datenum that encodes both
%the date and the time as a floating point value

%find just those values for your day that you care about
I = find(todays_date == floor(all_dates));
todays_data = all_data(I);
todays_datenums = all_dates(I);

%find the best-fit parabola to today's data
N_fit = 2;  %2nd order is a parabola
p = polyfit(todays_datenums, todays_data,N_fit); 

%compute the 2nd derivative
p_1st = polyder(p);      %first derivative, form is y = p(1)*todays_datenum+p(2)
p_2nd = polyder(p_1st);  %second derivative

因为你只适合抛物线,所以p_2nd将是单个值。这是您对当天数据的二阶导数的最佳估计。单位为每天(?)。