经管之家送您一份
应届毕业生专属福利!
求职就业群
感谢您参与论坛问题回答
经管之家送您两个论坛币!
+2 论坛币
* 打开文件夹所在路径(根据文件存放位置)
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
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
|