Skip to content

Instantly share code, notes, and snippets.

Joost Impink JoostImpink

  • UF
  • Florida
Block or report user

Report or block JoostImpink

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile

Keybase proof

I hereby claim:

  • I am JoostImpink on github.
  • I am impink ( on keybase.
  • I have a public key whose fingerprint is 3B29 169E 938B 866A 7CBF 3085 3F4E 2E9E 02B9 C853

To claim this, I am signing this object:

JoostImpink /
Created Jul 1, 2016
Macro to create dummy variables (non-missing values only)
/* Helper macro to make dummy variables
Note: it is not robust for missing values
%macro createDummyVars(dsin=, var=, newvar=);
proc sql noprint;
select distinct &var. into :mvals separated by '|'
from &dsin.;
/* Number of unique values */
%let mdim=&sqlobs;
JoostImpink /
Created May 17, 2016
Hayn 1995 replicate table 4b assignment
proc sort data=g_sample_wins; by gvkey;run;
proc reg data= g_sample_wins;
model ret = e_p ;
ods output ParameterEstimates = regout_1a FitStatistics = regout_1b;
/* adding by gvkey will result in separate regressions for each firm */
by gvkey;
JoostImpink /
Last active Mar 20, 2017
Google vs industry MTB benchmark
/* Example of how to use SAS to retrieve data from WRDS
Computing market-to-book ratio for years 2000-, and benchmark it against
other firms in the industry */
/* this piece of code makes a connection of your SAS instance with WRDS remote server */
%let wrds = 4016;options comamid = TCP remote=WRDS;
signon username=_prompt_;
/* any code executed on WRDS needs to go in a remote submit block, for example: */
JoostImpink /
Created May 13, 2016
Hayn 1995 replica, table 4
/* Regressions */
/* Some variables need to be created */
data g_sample;
set b_sample;
/* earnings per share scaled by beginning of year stock price */
e_p = epspx / prcc_f_lag;
/* change in eps scaled by boy stock price */
ch_e_p = (epspx - epspx_lag) / prcc_f_lag;
/* keep observations with no missings */
JoostImpink /
Created May 13, 2016
Hayn 1995 replica, table 3
/* For each size decile: compute #firm-years and #losses */
/* Create size deciles */
proc rank data = b_sample out = e_ranked groups = 10;
var size;
ranks size_d ;
/* Add 1 to rank (0-9 => 1-10) */
data e_ranked;
JoostImpink /
Created May 13, 2016
Hayn 1995 replica, table 2
/* Table 2
Use firms that have at least 8 years of data
Count the number of loss-years
/* For each gvkey, count the #loss-years */
proc sql;
create table d_table2_a as
select gvkey, sum(loss) as lossYears from b_sample
/* gvkey must be in the following table */
where gvkey IN (
JoostImpink /
Created May 13, 2016
Hayn 1995 replica, table 1
/* Table 1
Left panel shows by year the #obs, and the #loss years
Right panel shows the same, but for firms that were in the sample from 1968
through 1990 (23 years)
/* Left panel */
/* Using SQL */
proc sql;
JoostImpink /
Last active Oct 5, 2017
Hayn 1995 replica, code to construct sample
/* We need to make a sample for US listed firms with fiscal years 1962-1990
From Compustat Funda we need:
- gvkey Firm identifier
- datadate End of fiscal year
- fyear Fiscal year
- epspx EPS before extraordinary items
- prcc_f Price at fiscal year end
- csho Common shares outstanding end of year (to compute market cap)
JoostImpink / intraday_return_SEC_filings.R
Last active Apr 24, 2016
Intraday return for SEC filings
View intraday_return_SEC_filings.R
## For each SEC filing stock return in the interval [time - before, time + after] is measured
# Set constants
before <- 0
after <- 7200
# load Grokit Nanex library
# Load dataset with 8-K filings (symbol and timestamp)s
You can’t perform that action at this time.