在金融领域,二项式期权定价模型(BOPM)是最简单的期权定价技术。模型背后的数学是相对容易理解的,而且(至少在它们的基本形式中)它并不难实现。这个模型是由考克斯、罗斯和鲁宾斯坦于1979年首次提出的。引用维基百科:
二项式定价模型跟踪期权的关键潜在变量在离散时间的演变。这是通过二项式格(树)完成的,在估值和到期日期之间的若干时间步骤。格中的每个节点在给定的时间点表示潜在节点的可能价格。评估是迭代执行的,从每个最终节点开始(那些在到期时可能到达的节点),然后通过树向第一个节点(评估日期)反向工作。在每个阶段计算的值是该时间点上的选项的值。
为了应对这一挑战,我们将创建一个简单的模型,通过创建如下所示的格子或树(图值一千字)来预测该期权(S)未来的潜在价格:

当S是今天的期权价格时,p是价格上涨的概率,t是一段时间或步骤数。
现在的挑战是编写一个以S,p(百分比)和t为输入,并以二叉树作为输出的程序或函数。程序或函数的输出必须遵循上述格式,但框和箭头行是可选的。例如,如果程序接受输入S = 100、p = 10%和t = 3,那么它的输出可以是以下简单形式:
133.1
121
110 108.9
100 99
90 89.1
81
72.9发布于 2016-08-30 18:48:44
x=scan()
M=Map
U=rbind
noquote(t(do.call(U,M(function(x,y){r=rep;c(r(" ",x),rev(as.vector(U(y,r(" ",length(y))))),r(" ",x))},as.list(x[3]:0),M(function(x,y){sapply(y,function(y)(1-x[2])^y[1]*(1+x[2])^y[2]*x[1])},list(x),lapply(0:x[3],function(y)data.frame(do.call(U,list(y:0, 0:y)))))))))有时候我觉得自己甚至不打高尔夫球。最大t受系统内存量的限制。输出的可读性取决于屏幕/控制台大小的分辨率。如果我们将其写入文件,则可以绕过可读性限制。我能够在我的16 mb内存系统上运行t= 5000、100、0.1;输出是400+ mb纯文本文件。
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,]
[2,] 285.311670611
[3,] 259.37424601
[4,] 235.7947691 233.436821409
[5,] 214.358881 212.21529219
[6,] 194.87171 192.9229929 190.993762971
[7,] 177.1561 175.384539 173.63069361
[8,] 161.051 159.44049 157.8460851 156.267624249
[9,] 146.41 144.9459 143.496441 142.06147659
[10,] 133.1 131.769 130.45131 129.1467969 127.855328931
[11,] 121 119.79 118.5921 117.406179 116.23211721
[12,] 110 108.9 107.811 106.73289 105.6655611 104.608905489
[13,] 100 99 98.01 97.0299 96.059601 95.0990049900001
[14,] 90 89.1 88.209 87.32691 86.4536409000001 85.5891044910001
[15,] 81 80.19 79.3881 78.594219 77.80827681
[16,] 72.9 72.171 71.44929 70.7347971000001 70.027449129
[17,] 65.61 64.9539 64.304361 63.66131739
[18,] 59.049 58.45851 57.8739249 57.295185651
[19,] 53.1441 52.612659 52.08653241
[20,] 47.82969 47.3513931 46.877879169
[21,] 43.046721 42.61625379
[22,] 38.7420489 38.354628411
[23,] 34.86784401
[24,] 31.381059609 T= 5000;

https://codegolf.stackexchange.com/questions/91630
复制相似问题