楼主: 黃河泉
6973 27

[学习心得] (可能几乎最快之)股票崩盘危机指标之指令 (I) [推广有奖]

大师

52%

还不是VIP/贵宾

-

威望
3
论坛币
34526 个
通用积分
55917.6077
学术水平
3538 点
热心指数
3699 点
信用等级
2922 点
经验
308761 点
帖子
14505
精华
12
在线时间
7395 小时
注册时间
2016-7-9
最后登录
2024-4-29

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
大家最常用之 statsby
  1. set rmsg on

  2. cap log close
  3. log using "cr_statsby.log", replace

  4. clear
  5. set seed 123

  6. // 2000 firms
  7. set obs 2000
  8. gen long id = _n

  9. // 18 years
  10. expand 18
  11. bys id: gen year = 1999 + _n

  12. // 250 daily / 50 weekly observations
  13. expand 50

  14. gen ri = runiform()
  15. gen rm = runiform()

  16. bys id (year): gen t = _n
  17. xtset id t

  18. gen L1rm = L1.rm
  19. gen L2rm = L2.rm
  20. gen F1rm = F1.rm
  21. gen F2rm = F2.rm

  22. // statsby
  23. statsby _b r2 = e(r2), by(id year) saving("r2.dta", replace): reg ri L2rm L1rm rm F1rm F2rm
  24. merge m:1 id year using "r2.dta"
  25. gen e_statsby = ri - (_b_L2rm*L2rm + _b_L1rm*L1rm + _b_rm*rm + _b_F1rm*F1rm + _b_F2rm*F2rm + _b_cons)

  26. // firm-specific returns
  27. gen W = ln(1+e_statsby)

  28. // de-mean
  29. bys id year: egen W_mean = mean(W)
  30. replace W = W - W_mean

  31. * CRASH & CRASH_count
  32. bys id year: egen W_sd = sd(W)
  33. gen W_norm = (W-W_mean)/W_sd

  34. gen crash_week = 1 if W_norm <= -3.2
  35. replace crash_week = 0 if crash_week ==.

  36. bys id year: egen crash_count = total(crash_week)
  37. gen crash = 1 if crash_count != 0
  38. replace crash = 0 if crash_count == 0

  39. * NCSKEW
  40. gen W2 = W^2
  41. gen W3 = W^3
  42. bys id year: egen TW2 = total(W2)
  43. bys id year: egen TW3 = total(W3)
  44. bys id year: gen n = _N
  45. gen ncskew = -(TW3*n*(n-1)^1.5)/((n-1)*(n-2)*(TW2)^1.5)

  46. * DUVOL
  47. gen down = 0
  48. replace down = 1 if W < 0
  49. bys id year: egen down_sd = sd(W) if down == 1
  50. bys id year: egen up_sd = sd(W) if down == 0

  51. * ALL
  52. collapse ncskew down_sd up_sd, by(id year)
  53. gen duvol = ln(down_sd/up_sd)
  54. drop down_sd up_sd

  55. save "cr_statsby.dta", replace

  56. sum

  57. log close
复制代码



二维码

扫码加我 拉你入群

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

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

关键词:observations observation observat Specific statsby

已有 3 人评分学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 精彩帖子
Stakiny + 2 + 2 + 2 精彩帖子
sakiny136 + 2 + 2 + 2 精彩帖子

总评分: 学术水平 + 7  热心指数 + 7  信用等级 + 7   查看全部评分

沙发
静心品茶 发表于 2018-8-12 10:56:30 |只看作者 |坛友微信交流群
谢谢黄老师分享

使用道具

藤椅
zhoujiangguan 发表于 2018-10-21 15:01:48 |只看作者 |坛友微信交流群
谢谢你

使用道具

板凳
woodorange 发表于 2018-11-25 19:09:22 |只看作者 |坛友微信交流群
你好 黄老师 我刚刚STATA入门 所以很多地方不懂 想请问一下 您的代码为什么没有数据也可以跑出结果呢? 但是您最后跑出来的两个指标跟现在大家一般均值在-0.2到-0.4之间有所出入 想知道什么原因呢 我如何用这套代码跑自己的数据呢?

使用道具

报纸
黃河泉 在职认证  发表于 2018-11-26 08:02:18 |只看作者 |坛友微信交流群
woodorange 发表于 2018-11-25 19:09
你好 黄老师 我刚刚STATA入门 所以很多地方不懂 想请问一下 您的代码为什么没有数据也可以跑出结果呢? 但是 ...
因为我自己产生"假的"资料。

使用道具

地板
lclzh 发表于 2018-12-9 11:51:24 |只看作者 |坛友微信交流群
您好,黄老师,* NCSKEW gen W2 = W^2 gen W3 = W^3,这边的W已经变成了replace W = W - W_mean,但是按照公式不是应该是W = ln(1+e_statsby)这个最初的W吗?谢谢

使用道具

7
黃河泉 在职认证  发表于 2018-12-9 14:51:08 |只看作者 |坛友微信交流群
lclzh 发表于 2018-12-9 11:51
您好,黄老师,* NCSKEW gen W2 = W^2 gen W3 = W^3,这边的W已经变成了replace W = W - W_mean,但是按照公 ...
你讲得没错,只是我画蛇添足,按照一般统计概念先 de-mean,不过结果应该不会差太太多。

使用道具

8
lclzh 发表于 2018-12-9 16:53:26 |只看作者 |坛友微信交流群
黃河泉 发表于 2018-12-9 14:51
你讲得没错,只是我画蛇添足,按照一般统计概念先 de-mean,不过结果应该不会差太太多。
那您这边DUVOL的计算跟公式也是有一定细微差别吧

使用道具

9
黃河泉 在职认证  发表于 2018-12-9 17:08:10 |只看作者 |坛友微信交流群
lclzh 发表于 2018-12-9 16:53
那您这边DUVOL的计算跟公式也是有一定细微差别吧
你觉得困扰,就将 demean 的部分去掉!

使用道具

10
415812560 发表于 2018-12-22 16:08:37 |只看作者 |坛友微信交流群
最后出来的结果怎么没有股票代码了呀, 完全看不懂的我只想做出结果来

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 10:30