楼主: yenih
2932 2

[统计软件与数据分析] stata 如何把目标日期之前最近的交易日期找出来 [推广有奖]

  • 0关注
  • 1粉丝

本科生

63%

还不是VIP/贵宾

-

威望
0
论坛币
936 个
通用积分
1.0009
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1040 点
帖子
58
精华
0
在线时间
101 小时
注册时间
2012-3-9
最后登录
2024-4-17

楼主
yenih 在职认证  发表于 2016-3-18 15:53:47 |只看作者 |坛友微信交流群|倒序 |AI写论文
10论坛币
我现在要做event study。
有600只股票,2012年1月1日到今天的股票日收盘价格。
每只股票有一个事件日期,但是这个日期不一定是交易日。
如何把该日期之前距离该日期最近的交易日期挑出来作为事件日期并替换事件日期呢?

不知道我的描述是否清楚,有问题请继续问我,谢谢大家!

关键词:Stata tata 交易日 event study study 如何
沙发
hollyhq 发表于 2017-12-31 09:46:39 |只看作者 |坛友微信交流群
描述很清晰,同问!

使用道具

  1.         df_final['dif_cal'] = df_final.Trddt.apply(lambda x: (x - events_cal.iloc[2,0]).days)  
  2.         # 事件窗:按交易日算diff        
  3.         max_negative = max(df_final['dif_cal'].apply(lambda x : x if x < 0 else -1000**10))
  4.         min_positive = min(df_final['dif_cal'].apply(lambda x : x if x > 0 else 1000**10))
  5.         if min(abs(df_final['dif_cal']))==0:
  6.             Num = df_final[df_final['dif_cal'] == 0].index[0]
  7.             df_final['dif'] = df_final.index
  8.             df_final['dif'] = df_final.dif.apply(lambda x: (x - Num))
  9.         else:                                 
  10.             Num1 = df_final[df_final['dif_cal'] == max_negative].index[0]
  11.             Num2 = df_final[df_final['dif_cal'] == min_positive].index[0]
  12.             df_final['dif'] = df_final.index
  13.             df_final['dif'] = df_final.dif.apply(lambda x: x-Num2 if x<=Num1 else x-Num1)
复制代码

使用道具

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

本版微信群
加JingGuanBbs
拉您进交流群

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

GMT+8, 2024-4-28 13:50