首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >攀爬二叉树寻找期权价值

攀爬二叉树寻找期权价值
EN

Code Golf用户
提问于 2016-08-30 06:38:03
回答 1查看 705关注 0票数 7

背景:

在金融领域,二项式期权定价模型(BOPM)是最简单的期权定价技术。模型背后的数学是相对容易理解的,而且(至少在它们的基本形式中)它并不难实现。这个模型是由考克斯、罗斯和鲁宾斯坦于1979年首次提出的。引用维基百科

二项式定价模型跟踪期权的关键潜在变量在离散时间的演变。这是通过二项式格(树)完成的,在估值和到期日期之间的若干时间步骤。格中的每个节点在给定的时间点表示潜在节点的可能价格。评估是迭代执行的,从每个最终节点开始(那些在到期时可能到达的节点),然后通过树向第一个节点(评估日期)反向工作。在每个阶段计算的值是该时间点上的选项的值。

为了应对这一挑战,我们将创建一个简单的模型,通过创建如下所示的格子或树(图值一千字)来预测该期权(S)未来的潜在价格:

当S是今天的期权价格时,p是价格上涨的概率,t是一段时间或步骤数。

挑战:

现在的挑战是编写一个以S,p(百分比)和t为输入,并以二叉树作为输出的程序或函数。程序或函数的输出必须遵循上述格式,但框和箭头行是可选的。例如,如果程序接受输入S = 100p = 10%t = 3,那么它的输出可以是以下简单形式:

代码语言:javascript
复制
                        133.1
                121 
        110             108.9
100              99 
         90              89.1
                 81 
                         72.9

一般规则:

  • 这是密码-高尔夫,所以以字节为单位的最短答案赢得了challenge. --不要让esolangs阻止您用常规语言发布答案。通过用你的编程语言提供一个尽可能简短的答案来享受这个挑战。如果你发布了一个聪明的答案和一个清晰的解释,不管你使用的是哪种编程语言,你的答案都会受到赞赏(因此得到了好评)。
  • 适用标准规则作为你的答案,所以你可以使用STDIN/STDOUT,函数/方法,适当的参数,完整的程序等等。选择是你的。
  • 禁止使用内置的二叉树。
  • 如果可能,您的程序可以正确地处理大量步骤。如果没有,那就没问题了。

参考资料:

  1. 二项期权定价模型
  2. 二叉树选项计算器
EN

回答 1

Code Golf用户

发布于 2016-08-30 18:48:44

R,288个字节

代码语言:javascript
复制
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纯文本文件。

代码语言:javascript
复制
      [,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;

票数 2
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/91630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档