早安。我是新来的。在发布之前,我已经搜索了类似的问题,但是我发现只有使用不同的编程语言才能发现类似的问题,但是发现的问题并不完整绘图轨迹与VBA
好吧,我的问题是要找到它,在Excel中一次回忆起VBA代码,它离我只有几何布朗运动(GBM)的参数(初始库存值s,成熟T,波动Z,无风险收益率要求r,红利q,步数n),我需要重现的轨迹数m。 作为一个输出,我不想看到没有数字,只有一条叠加的m轨迹。
问题在于,我不能直接逐个单元格地写(然后携带),因为这样从计算能力的角度来看它会过于复杂;它将允许制作类似15个轨迹的东西,而不是更多。 因此,解决方案是在VBA中工作。
我最初的步骤是
Function GBMSimulation(s As Double, t As Double, z As Double, r As Double, q As Double, n As Double) As Variant
Dim dt, e, dlns, SimVar() As Double
ReDim SimVar(n + 1)
dt = t/n
SimVar(0) = s
For i = 1 To n
Randomize
e = WorksheetFunction.NormSInv(Rnd())
dlns = (r - q - z^2/2) * dt + z * e * dt^0.5
SimVar(i) = SimVar(i - 1) * Exp(dlns)
Next i
GBMSimulation = SimVar(n)
End Function
此代码的工作;我的意思是,它给出了一个数字,这是1Gbm的第n个步骤。
更改
GBMSimulation = SimVar(n)
与
GBMSimulation = SimVar(i)
我想获得的该特定 GBM的第i个步骤。
因此,所有的步骤都存储在存储器中,这是很好的。
我的问题是:如何创建一个GBM的m个不同的实现(即重复我以前的步骤m次,m作为输入),并为他们每个人自动创建一个情节?
我认为应该考虑一些周期,但我是一个初学者,我不知道该怎么做。
我想我可以创建一个n维数组,在其中存储GBM步骤,绘制它们并重复这m次;问题是我错过了语言,我正在学习它,但它需要时间,并且一些帮助可能会有用。
只有从图形的角度来看,最终的结果应该是like this(我指定图形pov,因为在链接中有数字,所有的工作是逐个单元格制作的,正如我之前所说的,我需要避免这个)。
非常感谢。
UPDATE:问题已经部分解决了感谢信给Tehscript。 他/她友情提供的代码,允许存储在数组的数组每个米GBM中的n步骤。因此,为了解决我的问题仍然是最后一步:我如何绘制这些数据?
您可以让该函数返回一个数组并使用此函数来获得数组数组。 – Tehscript
@Tehscript:谢谢你的提示;然而,我真的是一个初学者,我可以请你轻轻地告诉我一点点吗? 谢谢 – Joe
我真的不知道要使用什么数字,所以我用了所有的数字 – Tehscript