基于均值回归和跳跃扩散的电价模拟
这个例子展示了如何使用具有季节性和跳跃成分的均值回归模型来模拟电价。该模型在使用历史电价的真实概率下进行校准。风险的市场价格是由期货价格得出的。使用校正后的模型和风险的市场价格进行风险中性蒙特卡罗模拟。利用模拟结果对以电价为基础的百慕大期权进行定价。
模型概述
在高需求时期,当额外的、效率较低的发电方法上线以提供充足的电力供应时,电价会出现上涨。此外,它们具有显著的季节性成分,以及向平均水平的回归。因此,这些特征应纳入电价模型[2].
在本例中,电价建模为:
在哪里<年代pan class="inlineequation">
是电力的现货价格。电价的对数由两个分量建模:<年代pan class="inlineequation">
而且<年代pan class="inlineequation">
.组件<年代pan class="inlineequation">
模型的确定性季节部分,和<年代pan class="inlineequation">
是模型的随机部分。用三角函数来建模<年代pan class="inlineequation">
如下[3]:
在哪里<年代pan class="inlineequation">
常量参数,和<年代pan class="inlineequation">
是年化时间因素。随机分量<年代pan class="inlineequation">
被建模为带有跳跃的Ornstein-Uhlenbeck过程(均值回归):
的参数<年代pan class="inlineequation">
而且<年代pan class="inlineequation">
是均值回归参数。参数<年代pan class="inlineequation">
是波动,还是<年代pan class="inlineequation">
是标准布朗运动。跳跃大小为<年代pan class="inlineequation">
,为正态分布均值<年代pan class="inlineequation">
,和标准差<年代pan class="inlineequation">
.泊松过程<年代pan class="inlineequation">
的跳跃强度<年代pan class="inlineequation">
.
电价
2010年1月1日至2013年11月11日的样本电价如下图所示。价格控制电价,以及PriceDates包含与价格相关的日期。计算价格和年时间因子的对数。
载入电价和期货价格。负载(<年代pan style="color:#A020F0">“electricity_prices.mat”);PriceDates =日期时间<年代pan style="color:#A020F0">“ConvertFrom”,<年代pan style="color:#A020F0">“datenum”);FutExpiry = datetime(FutExpiry,<年代pan style="color:#A020F0">“ConvertFrom”,<年代pan style="color:#A020F0">“datenum”);FutValuationDate =日期时间(FutValuationDate,<年代pan style="color:#A020F0">“ConvertFrom”,<年代pan style="color:#A020F0">“datenum”);<年代pan style="color:#228B22">绘制电价图。图;情节(PriceDates、价格);标题(<年代pan style="color:#A020F0">“电价”);包含(<年代pan style="color:#A020F0">“日期”);ylabel (<年代pan style="color:#A020F0">的价格($));
![图中包含一个轴对象。标题为Electricity Prices的axes对象包含一个line类型的对象。gydF4y2Ba](//www.tianjin-qmedu.com/help/examples/fininst/win64/SimulateElectricityPricesExample_01.png)
获取价格日志。logPrices = log(价格);<年代pan style="color:#228B22">从日期中获取年度时间因子。PriceTimes = yearfrac(PriceDates(1), PriceDates);
校准
首先,采用最小二乘法对确定性季节性部分进行校正。因为季节性函数与参数是线性的<年代pan class="inlineequation">
,反斜杠操作符(mldivide)。校准后,从价格对数中去除季节性。价格和季节性趋势的对数如下图所示。同时,还绘制了价格的非季节性对数。
校准季节性模型的参数。seasonMatrix = @ (t)[罪(2。*π。* t)因为(2。*π。* t)罪(4。*π。* t)<年代pan style="color:#0000FF">...Cos (4.* * *t) t ones(size(t, 1), 1)];C = seasonMatrix(PriceTimes);seasonParam = C\logPrices;<年代pan style="color:#228B22">绘制原木价格和季节性曲线。图;Subplot (2,1,1);情节(PriceDates logPrices);标题(<年代pan style="color:#A020F0">“log(价格)和季节性”);包含(<年代pan style="color:#A020F0">“日期”);ylabel (<年代pan style="color:#A020F0">的日志(价格));持有<年代pan style="color:#A020F0">在;情节(PriceDates, C * seasonParam,<年代pan style="color:#A020F0">“r”);持有<年代pan style="color:#A020F0">从;传奇(<年代pan style="color:#A020F0">的日志(价格),<年代pan style="color:#A020F0">“季节性”);<年代pan style="color:#228B22">%图去季节性原木价格X = logPrices-C*seasonParam;Subplot (2,1,2);情节(PriceDates X);标题(<年代pan style="color:#A020F0">“剔除季节性因素后的价格记录”);包含(<年代pan style="color:#A020F0">“日期”);ylabel (<年代pan style="color:#A020F0">的日志(价格));
![图中包含2个轴对象。带有标题日志(价格)和季节性的坐标轴对象1包含2个类型为line的对象。这些对象表示对数(价格),季节性。除去季节性的标题日志(价格)的Axes对象2包含一个类型为line的对象。gydF4y2Ba](//www.tianjin-qmedu.com/help/examples/fininst/win64/SimulateElectricityPricesExample_02.png)
第二阶段是对随机部分进行标定。的模型<年代pan class="inlineequation">
需要进行离散化才能进行校准。为了离散化,假设跳跃事件存在伯努利过程。也就是说,由于这个示例是根据每日电价校准的,因此每天最多有一次跳跃。离散化方程为:
的概率<年代pan class="inlineequation">
而且,
的概率<年代pan class="inlineequation">
,在那里<年代pan class="inlineequation">
而且<年代pan class="inlineequation">
是独立的标准正态随机变量,和<年代pan class="inlineequation">
.的密度函数<年代pan class="inlineequation">
鉴于<年代pan class="inlineequation">
是(1,4]:
的参数<年代pan class="inlineequation">
可通过最小化负对数似然函数进行校准:
第一个不等式约束,<年代pan class="inlineequation">
,等于<年代pan class="inlineequation">
.的波动<年代pan class="inlineequation">
而且<年代pan class="inlineequation">
肯定是积极的。在最后一个不等式中,<年代pan class="inlineequation">
在0和1之间,因为它表示在<年代pan class="inlineequation">
时间。在这个例子中,假设<年代pan class="inlineequation">
就是一天。因此,一年最多有365次跳跃。的大中型企业统计和机器学习工具箱™中的函数非常适合解决上述最大似然问题。
% t点X(t)的价格。Pt = X(2:结束);<年代pan style="color:#228B22">t-1时X(t-1)的价格。Pt_1 = X(1:end-1);<年代pan style="color:#228B22">每日价格的%离散化。Dt = 1/365;<年代pan style="color:#228B22">% PDF为离散模型。mrjpdf = @(Pt, a, phi, mu_J, sigmaSq, sigmaSq_J, lambda)<年代pan style="color:#0000FF">...λ。* exp ((- (Pt-a-phi * Pt_1-mu_J)。^ 2)。/<年代pan style="color:#0000FF">...(2。* (sigmaSq + sigmaSq_J)))。*(1/√(2.*pi.*(sigmaSq+sigmaSq_J))) +<年代pan style="color:#0000FF">...(1λ)。* exp ((- (Pt-a-phi * Pt_1)。^ 2)/(2。* sigmaSq))。*<年代pan style="color:#0000FF">...(1 /√2。*π。* sigmaSq));<年代pan style="color:#228B22">%的约束:% < 1 (k > 0)% sigmaSq > 0% sigmaSq_J > 0% 0 <= lambda <= 1lb = [-Inf -Inf -Inf 0 0 0];ub = [Inf 1 Inf Inf 1];<年代pan style="color:#228B22">初始值。X = [0 0 0 var(X) var(X) 0.5];<年代pan style="color:#228B22">解最大似然。params = mle(Pt,<年代pan style="color:#A020F0">“pdf”mrjpdf,<年代pan style="color:#A020F0">“开始”x0,<年代pan style="color:#A020F0">下界的磅,<年代pan style="color:#A020F0">“upperbound”乌兰巴托,<年代pan style="color:#0000FF">...“optimfun”,<年代pan style="color:#A020F0">“fmincon”);<年代pan style="color:#228B22">获取校准参数。Alpha = params(1)/dt
Alpha = -20.1060
Kappa = (1-params(2))/dt
Kappa = 188.2535
mu_J = params(3)
mu_J = 0.2044
Sigma =√(params(4)/dt);sigma_J = sqrt(params(5))
sigma_J = 0.2659
= params(6)/dt
Lambda = 98.3357
蒙特卡罗模拟
校正后的参数和离散化模型可以模拟真实概率下的电价。模拟进行了大约2年,进行了10,000次试验。包括模拟最后一个月的所有日期超过2年。这是因为在下一节中需要对期货合约到期日的预期模拟价格来计算风险的市场价格。季节性被添加回模拟路径。下面是单个模拟路径的图。
rng<年代pan style="color:#A020F0">默认的;<年代pan style="color:#228B22">%模拟大约2年。nPeriods = 365*2+20;nTrials = 10000;n1 = randn(nPeriods,nTrials);n2 = randn(nPeriods, nTrials);j = binornd(1, lambda*dt, nPeriods, nTrials);SimPrices = 0 (nPeriods, nTrials);SimPrices(1,:) = X(end);<年代pan style="color:#0000FF">为i=2:nPeriods SimPrices(i,:) = alpha*dt + (1-kappa*dt)*SimPrices(i-1,:) +<年代pan style="color:#0000FF">...σ* sqrt (dt) * n1(我:)+ j(我:)。* (mu_J + sigma_J * n2(我,:));<年代pan style="color:#0000FF">结束增加季节性因素。SimPriceDates = PriceDates(end) + days(0:(nPeriods-1))';SimPriceTimes = yearfrac(PriceDates(1), SimPriceDates);CSim = seasonMatrix(SimPriceTimes);logSimPrices = SimPrices + repmat(CSim*seasonParam,1,nTrials);<年代pan style="color:#228B22">绘制价格的对数和模拟价格的对数。图;Subplot (2,1,1);情节(PriceDates logPrices);持有<年代pan style="color:#A020F0">在;情节(SimPriceDates(2:结束),logSimPrices(2:结束,1),<年代pan style="color:#A020F0">“红色”);seasonLine =季节性矩阵([PriceTimes;SimPriceTimes(2:结束))* seasonParam;情节([PriceDates;seasonLine, SimPriceDates (2)):<年代pan style="color:#A020F0">“绿色”);持有<年代pan style="color:#A020F0">从;标题(<年代pan style="color:#A020F0">'实际日志(价格)和模拟日志(价格)');包含(<年代pan style="color:#A020F0">“日期”);ylabel (<年代pan style="color:#A020F0">的日志(价格));传奇(<年代pan style="color:#A020F0">“市场”,<年代pan style="color:#A020F0">“模拟”);<年代pan style="color:#228B22">绘制价格和模拟价格。PricesSim = exp(logSimPrices);Subplot (2,1,2);情节(PriceDates、价格);持有<年代pan style="color:#A020F0">在;情节(SimPriceDates PricesSim (: 1),<年代pan style="color:#A020F0">“红色”);持有<年代pan style="color:#A020F0">从;标题(<年代pan style="color:#A020F0">“实际价格及模拟价格”);包含(<年代pan style="color:#A020F0">“日期”);ylabel (<年代pan style="color:#A020F0">的价格($));传奇(<年代pan style="color:#A020F0">“市场”,<年代pan style="color:#A020F0">“模拟”);
![图中包含2个轴对象。带有标题Actual log(price)和simulate log(price)的坐标轴对象1包含3个类型为line的对象。这些物件代表市场、模拟。标题为Actual Prices和simulate Prices的Axes对象2包含2个类型为line的对象。这些物件代表市场、模拟。gydF4y2Ba](//www.tianjin-qmedu.com/help/examples/fininst/win64/SimulateElectricityPricesExample_03.png)
校正风险的市场价格
到目前为止,参数是在真实世界的概率下校准的。而要对期权进行定价,则需要在风险中性概率下进行模拟。为了得到这一点,从期货价格计算风险的市场价格,得出风险中性参数。假设市场上有月度期货合约,在合约月份内每天结算。例如,PJM电力市场的此类期货在芝加哥商品交易所上市[5].
期货在合约月份内每天结算。因此,您可以通过假设合约月份的期货价值不变来获得每日期货价值。在计算风险的市场价格时,也需要从现实世界中得到预期的期货价格。这可以从前一节进行的模拟中获得。
%获取每日期货价格。FutPricesDaily =零(大小(SimPriceDates));<年代pan style="color:#0000FF">为i=1:nPeriods idx = find(year(SimPriceDates(i)) == year(FutExpiry) &<年代pan style="color:#0000FF">...月(SimPriceDates(i)) ==月(FutExpiry));FutPricesDaily(i) = FutPrices(idx);<年代pan style="color:#0000FF">结束计算在真实环境下的预期期货价格。。SimPricesExp = mean(PricesSim, 2);
要根据市场期货价值校准风险的市场价格,请使用以下公式:
在哪里<年代pan class="inlineequation">
观察到的期货在当时是否有价值<年代pan class="inlineequation">
,<年代pan class="inlineequation">
期望值是否在真实世界的测量下<年代pan class="inlineequation">
.计算公式的方法与[3.].本例假设风险的市场价格完全由布朗运动驱动。风险的市场价格,<年代pan class="inlineequation">
,可通过离散上述方程并求解线性方程组来求解。
建立方程组。t0 = yearfrac(PriceDates(1), FutValuationDate);tz = SimPriceTimes-t0;b = -log(FutPricesDaily(2:end) ./ SimPricesExp(2:end)) ./<年代pan style="color:#0000FF">...(σ。* exp(κ。* tz(2:结束)));= (1 / k)。* (exp(κ。* tz(2:结束)——exp(κ。* tz (1: end-1)));A = tril(repmat(A', size(A,1), 1));<年代pan style="color:#228B22">稳定数值反演的前提条件。P = diag(1./diag(A));b = P*b;A = p *A;<年代pan style="color:#228B22">解决风险的市场价格。风险溢价= A\b;
风险中性价格的模拟
一次<年代pan class="inlineequation">
可采用以下动力学进行风险中性模拟:
的概率<年代pan class="inlineequation">
而且
的概率<年代pan class="inlineequation">
.
nTrials = 10000;n1 = randn(nPeriods, nTrials);n2 = randn(nPeriods, nTrials);j = binornd(1, lambda*dt, nPeriods, nTrials);SimPrices = 0 (nPeriods, nTrials);SimPrices(1,:) = X(end);<年代pan style="color:#0000FF">为i=2:nPeriods SimPrices(i,:) = alpha*dt + (1-kappa*dt)*SimPrices(i-1,:) +<年代pan style="color:#0000FF">...sigma*√(dt)*n1(i,:) - sigma*dt*风险溢价(i-1) +<年代pan style="color:#0000FF">...: j(我)。* (mu_J + sigma_J * n2(我,:));<年代pan style="color:#0000FF">结束增加季节性因素。CSim = seasonMatrix(SimPriceTimes);logSimPrices = SimPrices + repmat(CSim*seasonParam,1,nTrials);<年代pan style="color:#228B22">将日志(Price)转换为Price。PricesSim = exp(logSimPrices);
来自风险中性模拟的期望值与市场期货价值的关系。这证实了风险中性模拟能够很好地再现市场期货价值。
从风险中性模拟中获得期望值。SimPricesExp = mean(PricesSim,2);fexp = 0 (size(FutExpiry));<年代pan style="color:#0000FF">为i = 1:size(FutExpiry,1) idx = SimPriceDates == FutExpiry(i);<年代pan style="color:#0000FF">如果sum(idx)= 1 fexp(i) = SimPricesExp(idx);<年代pan style="color:#0000FF">结束结束绘制模拟的期望值与市场期货价格的关系。图;次要情节(2,1,1);情节(FutExpiry FutPrices(1:尺寸(FutExpiry, 1)),<年代pan style="color:#A020F0">“- *”);持有<年代pan style="color:#A020F0">在;情节(FutExpiry fexp,<年代pan style="color:#A020F0">“* r”);持有<年代pan style="color:#A020F0">从;标题(<年代pan style="color:#A020F0">“市场期货价格与模拟期货价格”);包含(<年代pan style="color:#A020F0">“日期”);ylabel (<年代pan style="color:#A020F0">“价格”);传奇(<年代pan style="color:#A020F0">“市场”,<年代pan style="color:#A020F0">“模拟”,<年代pan style="color:#A020F0">“位置”,<年代pan style="color:#A020F0">“西北”);次要情节(2,1,2);情节(SimPriceDates(2:结束),riskPremium);标题(<年代pan style="color:#A020F0">“风险的市场价格”);包含(<年代pan style="color:#A020F0">“日期”);ylabel (<年代pan style="color:#A020F0">“风险的市场价格”);
![图中包含2个轴对象。标题为“市场期货价格”和“模拟期货价格”的坐标轴对象1包含2个类型为line的对象。这些物件代表市场、模拟。标题为Market Price of Risk的Axes对象2包含一个类型为line的对象。gydF4y2Ba](//www.tianjin-qmedu.com/help/examples/fininst/win64/SimulateElectricityPricesExample_04.png)
百慕大期权定价
风险中性的模拟值被用作函数的输入optpricebysim在金融工具工具箱™中对欧洲、百慕大或美国的电价期权进行定价。以下是一份为期两年、有两次行权机会的百慕大看涨期权的价格。第一次是在一年后,第二次是在期权到期日。
%结算,期权到期。结算= FutValuationDate;成熟度= FutValuationDate + calyears(2);<年代pan style="color:#228B22">创建利率期限结构。riskFreeRate = 0.01;基= 0;复利= -1;RateSpec = intenvset(<年代pan style="color:#A020F0">“ValuationDate”解决,<年代pan style="color:#A020F0">startdate可以的解决,<年代pan style="color:#0000FF">...“EndDates”成熟,<年代pan style="color:#A020F0">“速度”riskFreeRate,<年代pan style="color:#A020F0">“复合”,<年代pan style="color:#0000FF">...复合,<年代pan style="color:#A020F0">“基础”、基础);<年代pan style="color:#228B22">在模拟成熟时终止模拟。endIdx = find(SimPriceDates ==成熟度);SimPrices = PricesSim(1:endIdx,:);Times = SimPriceTimes(1:endIdx) - SimPriceTimes(1);<年代pan style="color:#228B22">百慕大看涨期权,60振,两次练习机会,之后到期时,为一年期。OptSpec =<年代pan style="color:#A020F0">“电话”;罢工= 60;ExerciseTimes = [Times(366) Times(end)];Price = optpricebysim(RateSpec, SimPrices, Times, OptSpec, Strike,<年代pan style="color:#0000FF">...ExerciseTimes)
价格= 1.1085
参考文献
埃斯克里巴诺,阿尔瓦罗,佩纳,胡安伊格纳西奥,维拉普拉纳,巴勃罗。“电价建模:国际证据”马德里卡洛斯三世大学,工作论文02-27,2002。
露西亚,胡里奥·J.,施瓦茨,爱德华罗。电力价格和电力衍生品:来自北欧电力交易所的证据。<年代pan class="emphasis">衍生品研究综述.第5卷第1期,第5-50页,2002年。
[3] Seifert, Jan, Uhrig-Homburg, Marliese。“模拟电价跳跃:理论和经验证据。”<年代pan class="emphasis">衍生品研究综述.第10卷,页59-85,2007。
[4] Villaplana, Pablo。定价权力衍生品:双因素跳跃扩散方法马德里卡洛斯三世大学,工作论文03-18,2003。
[5]https://www.cmegroup.com
另请参阅
spreadbyls
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">spreadsensbyls
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">asianbyls
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">asiansensbyls
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">lookbackbyls
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">lookbacksensbyls
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">optstockbyls
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">optstocksensbyls
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">optpricebysim
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">spreadbykirk
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">spreadsensbykirk
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">spreadbybjs
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">spreadsensbybjs
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">asianbykv
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">asiansensbykv
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">asianbylevy
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">asiansensbylevy
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">lookbackbycvgsg
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">lookbacksensbycvgsg
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">optstockbyblk
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">optstocksensbyblk
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">spreadbyfd
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">spreadsensbyfd
相关的例子
更多关于
- 前锋的选择
- 期货期权
- 传播的选择
- 亚洲的选择
- 香草选项
- Lookback选项
- 万博1manbetx支持的权益导数函数
- 万博1manbetx支持的利率工具功能
- 为股票、商品、外汇工具对象映射金融工具工具箱函数
外部网站
这个例子展示了如何使用具有季节性和跳跃成分的均值回归模型来模拟电价。该模型在使用历史电价的真实概率下进行校准。风险的市场价格是由期货价格得出的。使用校正后的模型和风险的市场价格进行风险中性蒙特卡罗模拟。利用模拟结果对以电价为基础的百慕大期权进行定价。 在高需求时期,当额外的、效率较低的发电方法上线以提供充足的电力供应时,电价会出现上涨。此外,它们具有显著的季节性成分,以及向平均水平的回归。因此,这些特征应纳入电价模型[ 在本例中,电价建模为:
在哪里<年代pan class="inlineequation">
是电力的现货价格。电价的对数由两个分量建模:<年代pan class="inlineequation">
而且<年代pan class="inlineequation">
.组件<年代pan class="inlineequation">
模型的确定性季节部分,和<年代pan class="inlineequation">
是模型的随机部分。用三角函数来建模<年代pan class="inlineequation">
如下[3]:
在哪里<年代pan class="inlineequation">
常量参数,和<年代pan class="inlineequation">
是年化时间因素。随机分量<年代pan class="inlineequation">
被建模为带有跳跃的Ornstein-Uhlenbeck过程(均值回归):
的参数<年代pan class="inlineequation">
而且<年代pan class="inlineequation">
是均值回归参数。参数<年代pan class="inlineequation">
是波动,还是<年代pan class="inlineequation">
是标准布朗运动。跳跃大小为<年代pan class="inlineequation">
,为正态分布均值<年代pan class="inlineequation">
,和标准差<年代pan class="inlineequation">
.泊松过程<年代pan class="inlineequation">
的跳跃强度<年代pan class="inlineequation">
. 2010年1月1日至2013年11月11日的样本电价如下图所示。 首先,采用最小二乘法对确定性季节性部分进行校正。因为季节性函数与参数是线性的<年代pan class="inlineequation">
,反斜杠操作符( 第二阶段是对随机部分进行标定。的模型<年代pan class="inlineequation">
需要进行离散化才能进行校准。为了离散化,假设跳跃事件存在伯努利过程。也就是说,由于这个示例是根据每日电价校准的,因此每天最多有一次跳跃。离散化方程为:
的概率<年代pan class="inlineequation">
而且,
的概率<年代pan class="inlineequation">
,在那里<年代pan class="inlineequation">
而且<年代pan class="inlineequation">
是独立的标准正态随机变量,和<年代pan class="inlineequation">
.的密度函数<年代pan class="inlineequation">
鉴于<年代pan class="inlineequation">
是(
的参数<年代pan class="inlineequation">
可通过最小化负对数似然函数进行校准:
第一个不等式约束,<年代pan class="inlineequation">
,等于<年代pan class="inlineequation">
.的波动<年代pan class="inlineequation">
而且<年代pan class="inlineequation">
肯定是积极的。在最后一个不等式中,<年代pan class="inlineequation">
在0和1之间,因为它表示在<年代pan class="inlineequation">
时间。在这个例子中,假设<年代pan class="inlineequation">
就是一天。因此,一年最多有365次跳跃。的 校正后的参数和离散化模型可以模拟真实概率下的电价。模拟进行了大约2年,进行了10,000次试验。包括模拟最后一个月的所有日期超过2年。这是因为在下一节中需要对期货合约到期日的预期模拟价格来计算风险的市场价格。季节性被添加回模拟路径。下面是单个模拟路径的图。 到目前为止,参数是在真实世界的概率下校准的。而要对期权进行定价,则需要在风险中性概率下进行模拟。为了得到这一点,从期货价格计算风险的市场价格,得出风险中性参数。假设市场上有月度期货合约,在合约月份内每天结算。例如,PJM电力市场的此类期货在芝加哥商品交易所上市[ 期货在合约月份内每天结算。因此,您可以通过假设合约月份的期货价值不变来获得每日期货价值。在计算风险的市场价格时,也需要从现实世界中得到预期的期货价格。这可以从前一节进行的模拟中获得。 要根据市场期货价值校准风险的市场价格,请使用以下公式:
在哪里<年代pan class="inlineequation">
观察到的期货在当时是否有价值<年代pan class="inlineequation">
,<年代pan class="inlineequation">
期望值是否在真实世界的测量下<年代pan class="inlineequation">
.计算公式的方法与[ 一次<年代pan class="inlineequation">
可采用以下动力学进行风险中性模拟:
的概率<年代pan class="inlineequation">
而且
的概率<年代pan class="inlineequation">
. 来自风险中性模拟的期望值与市场期货价值的关系。这证实了风险中性模拟能够很好地再现市场期货价值。 风险中性的模拟值被用作函数的输入 埃斯克里巴诺,阿尔瓦罗,佩纳,胡安伊格纳西奥,维拉普拉纳,巴勃罗。“电价建模:国际证据”马德里卡洛斯三世大学,工作论文02-27,2002。 露西亚,胡里奥·J.,施瓦茨,爱德华罗。电力价格和电力衍生品:来自北欧电力交易所的证据。<年代pan class="emphasis">衍生品研究综述 [3] Seifert, Jan, Uhrig-Homburg, Marliese。“模拟电价跳跃:理论和经验证据。”<年代pan class="emphasis">衍生品研究综述 [4] Villaplana, Pablo。定价权力衍生品:双因素跳跃扩散方法马德里卡洛斯三世大学,工作论文03-18,2003。 [5]模型概述
电价
载入电价和期货价格。
获取价格日志。
校准
mldivide
校准季节性模型的参数。
大中型企业
% t点X(t)的价格。
Alpha = -20.1060
Kappa = (1-params(2))/dt
Kappa = 188.2535
mu_J = params(3)
mu_J = 0.2044
Sigma =√(params(4)/dt);sigma_J = sqrt(params(5))
sigma_J = 0.2659
= params(6)/dt
Lambda = 98.3357
蒙特卡罗模拟
rng<年代pan style="color:#A020F0">默认的
校正风险的市场价格
%获取每日期货价格。
建立方程组。
风险中性价格的模拟
nTrials = 10000;n1 = randn(nPeriods, nTrials);n2 = randn(nPeriods, nTrials);j = binornd(1, lambda*dt, nPeriods, nTrials);SimPrices = 0 (nPeriods, nTrials);SimPrices(1,:) = X(end);<年代pan style="color:#0000FF">为
从风险中性模拟中获得期望值。
百慕大期权定价
optpricebysim
%结算,期权到期。
价格= 1.1085
参考文献
另请参阅
spreadbyls
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">spreadsensbyls
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">asianbyls
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">asiansensbyls
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">lookbackbyls
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">lookbacksensbyls
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">optstockbyls
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">optstocksensbyls
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">optpricebysim
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">spreadbykirk
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">spreadsensbykirk
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">spreadbybjs
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">spreadsensbybjs
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">asianbykv
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">asiansensbykv
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">asianbylevy
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">asiansensbylevy
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">lookbackbycvgsg
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">lookbacksensbycvgsg
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">optstockbyblk
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">optstocksensbyblk
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">spreadbyfd
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">spreadsensbyfd
相关的例子
更多关于
外部网站