全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
624 0
2024-04-04

* 打开文件夹所在路径(根据文件存放位置)
cd C:\Users\13910\Desktop\data\机会减持\2022-2007年高管机会主义减持数据
use 日个股回报率文件1990-20230217.dta, clear
keep 证券代码 交易日期 考虑现金红利再投资的日个股回报率
save 日个股回报率文件1990-20230217.dta, replace

use 偿债能力.dta, clear
merge 1:1 code year using 偿债能力.dta, nogen keep(1 3) keepusing(行业代码)  
keep code 证券代码 year 行业代码
order code 证券代码 year 行业代码
save 偿债能力.dta, replace




* 1.初始处理
* 1.1 董监高及相关人员持股变动情况表
import excel 董监高及相关人员持股变动情况表.xlsx, firstrow clear
gen code=real(证券代码)
gen 事件日期=变动日期
gen year=real(substr(事件日期, 1, 4))

* 本文借鉴Gao等(2014)和曾庆生等(2018)的做法,在减持样本中剔除了高管通过大宗交易和协议转让股票的数据。
* 另外,由于股票期权的授予和行权并不完全由高管决定,本文参考Huddart和Ke(2010)的研究,研究样本中也剔除了股权激励实施的数据。
drop if 变动原因=="大宗交易" | 变动原因=="协议转让"  |  变动原因=="股权激励实施"   

* 选择年份
keep if year>=2005 & year<=2022

keep if 变动股份数量<0 &  变动股份数量!=.
keep code 证券代码 year 事件日期 持股变动人姓名 董监高人员姓名 董监高人员职务 变动股份数量 成交均价
save 董监高及相关人员持股变动情况表.dta, replace


* 1.2 事件日期
use 董监高及相关人员持股变动情况表.dta, clear
keep code 证券代码 year 事件日期
duplicates drop code 证券代码 year 事件日期, force
save 事件日期.dta, replace


* 1.3 市场回报率
import excel 综合日市场回报率文件1990-20230217.xlsx, firstrow clear
keep if 综合市场类型==53
save 综合日市场回报率文件1990-20230217.dta, replace


* 1.4 合并数据
use 日个股回报率文件1990-20230217.dta, clear
merge m:1 交易日期 using 综合日市场回报率文件1990-20230217.dta, nogen keep(1 3) keepusing(考虑现金红利再投资的综合日市场回报率流通市值加权平均法)
gen code=real(证券代码)  //生成数值型证券代码“code”
gen year=real(substr(交易日期, 1, 4))  //生成年份变量“year”
keep code 证券代码 year 交易日期 考虑现金红利再投资的日个股回报率 考虑现金红利再投资的综合日市场回报率流通市值加权平均法
save data.dta, replace


* 2.计算过程
* 数据量较大,分年度进行计算
forv year=2006/2022 {

        use 事件日期.dta, clear
        keep if year==`year'
        joinby code using data.dta

        sort 证券代码 事件日期 交易日期
        by 证券代码 事件日期: gen date_num=_n  //将交易日期转化为连续数字

        gen trade_date=date(交易日期,"YMD")
        format trade_date %td  //生成数值型交易日期变量“trade_date”
        gen event_date=date(事件日期,"YMD")
        format event_date %td  //生成数值型事件日期变量“event_date”

        gen 间隔时间=trade_date-event_date
        replace 间隔时间=. if 间隔时间<0  //剔除 交易日期<事件日期 的数据
       
        * 与交易日期相隔最近的事件日期
        egen min_dif = min(间隔时间),  by(code even
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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