全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
8086 22
2010-07-29
悬赏 188 个论坛币 已解决
手头有指数日行情序列,想计算周涨跌幅(即“每周最后一个交易日的收盘价/前一周最后一个交易日收盘价-1”)。本以为在Stata中很简单就可实现,结果并非如此——至少我目前找到的方法并不直观,现发悬赏贴(188个论坛币不多,也就是个鼓励),希望广大坛友积极献策,谢谢先啦。

// 生成模拟数据
version 11
clear
set obs 365
gen date = td(31dec2008) + _n
format date %td
gen ddrop = inlist(dow(date), 0, 6)
replace ddrop = (runiform()<=0.05) if ddrop == 0
replace ddrop = (runiform()<=0.2) if ddrop[_n-1] == 1 & ddrop == 0
drop if ddrop
drop ddrop
gen clsprc = 1000 in 1
replace clsprc = clsprc[_n-1]*(1+0.05*rnormal()) in 2/L

keep date clsprc

最佳答案

sungmoo 查看完整内容

*找到一种简单办法,以自然周区分各日期。 *考虑到1960年1月3日是周日,且其数值对应"2"。 g week=int((date-2)/7) *以上即可区分出各日期的自然周,不必使用tsfill,且date可以是1960年1月3日及以后任一天。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-7-29 11:09:30
*找到一种简单办法,以自然周区分各日期。
*考虑到1960年1月3日是周日,且其数值对应"2"。

g week=int((date-2)/7)

*以上即可区分出各日期的自然周,不必使用tsfill,且date可以是1960年1月3日及以后任一天。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-29 11:14:12
可以直接下载周数据的吧 呵呵
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-29 11:21:00
ki_ki_shen 发表于 2010-7-29 11:14
可以直接下载周数据的吧 呵呵
当然可以直接用周数据,但当时我手头就只有日数据,所以才有这个问题。

事实上我自己已经找到解法(共8行程序代码,但个人感觉思路并不直观),考虑到这问题具有一定的普遍性,所以想征集一下更好的答案。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-29 11:49:28
*date 是连续的
gen ddow=dow(date)
keep if ddow==5
sort date
gen rate=clsprc/clsprc[_n-1]-1
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-29 12:00:58
jzhyue 发表于 2010-7-29 11:49
*date 是连续的
gen ddow=dow(date)
keep if ddow==5
sort date
gen rate=clsprc/clsprc[_n-1]-1
date是不连续的,有些周星期五是法定节假日股市休市,如在我模拟数据中有很多周的最后一个交易日不是星期五。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群