风险值VaR计算.DOC

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
风险值VaR计算

14.4.3 组合构建 /*挑选1997年以前发行的A股股票,用到数据集:行情数据集compufin.quot和股本数据集compufin.shares*/ /*选择行情数据*/ Data quot; length hexcd $6.; Set compufin.quot; Keep date clpr hexcd; /*选择保留变量, date为日期,clpr为收盘价*/ if substr(hstocd,3,1)=6 or substr(hstocd,1,5)=21000; hexcd=substr(hstocd,3,6); /*将行情数据集中的股票代码转换为交易所必威体育精装版代码 */ label hexcd=必威体育精装版交易所代码; proc sort data=quot; by hexcd date; run; /*选择流通股本数据*/ data shares; length hexcd $6.; set compufin.shares; keep date pubflt hexcd; /*选择变量,date为日期,pubflt为观测到的流通股本数 */ hexcd =substr(hstocd,3,6); /*转换股本观测数据集中的股票代码 */ proc sort data=shares; by hexcd date; run; /*合并行情与股本数据 */ data biao; merge quot shares; by hexcd date; run; /*对每个交易日都填上流通股本数据 */ data a; set biao; if pubflt^=. then y=1; sumy+y; /*创建新变量sumy, 为变量y的累加变量,即对每支股票,每一次股本变动变量sumy都加上1, 后面要用到(实际上sumy还是起到了加标识的作用,它是站在整个数据集的角度上加的) */ data b; set a; keep sumy pubflt; if pubflt^=.; /*if保证了只保留数据集A中pubflt不等于.时的变量sumy和pubflt */ run; data c; set a; drop pubflt; /*删除数据集A中的变量pubflt, 方便下面数据集c和b合并时,将股本填全,这是个很重要的技巧*/ data biao2 (drop=y sumy); merge c b; by sumy; run; /*上面这里,在数据并不一一对应的情况下(同时c中没有pubflt这一变量),在新生成的biao2中,pubflt的值是对应于b中sumy相同的那个pubflt值。这一过程实际上是为了用个别的pubflt填全整个数据集,这一实现方法需要注意。同样的目的也可以通过retain等语句加以实现*/ /*生成最终表zongbiao*/ data zongbiao; set biao2; where year(date)=1996; /*日期可以灵活控制,但最好用where语句*/ proc sort data=zongbiao; by hexcd date; run; /*计算1996年每支股票的平均流通市值*/ data mv(keep=clpr pubflt date hexcd mv); set zongbiao; mv=clpr*pubflt; proc means data=mv noprint; var mv; by hexcd; output out=mv mean=m_mv; run; /*由此得到的数据集mv, 其中有我们随机抽股票和按1996年平均流通市值抽股票需要的变量:股票代码hexcd和1996年各股票平均流通市值m_mv */ /*选取股票方法一:随机抽取20支股票*/ data mv; set mv; if substr(hexcd,1,1)^=0 and substr(hexcd,4,1)=6; /*只对复权价逻辑库stoindif中的股票抽取 */ proc sql; create view _tmp_ as select *, ranuni(1055) as _ran_ from mv order by calculated _ran_; quit; data stocks; set _tmp_(obs = 20); drop _ran_; a=%a(; c=);; file d:\genstock.txt; put a $ hexcd $ c $; run; /*选取股票方法二:按1996年股票平均流通市值m_mv均匀选取20只股票 */ proc sort data= mv out=a; by

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档