From trombley@aruba.ccit.arizona.edu Sun Jun 16 19:55:58 1996 Received: from aruba.ccit.arizona.edu (trombley@aruba.CCIT.Arizona.EDU [128.196.137.30]) by gsb-pound.Stanford.EDU (8.7.5/8.7.1) with ESMTP id TAA16525 for ; Sun, 16 Jun 1996 19:55:56 -0700 (PDT) Received: (from trombley@localhost) by aruba.ccit.arizona.edu (8.7.5/8.7.3) id TAA56177; Sun, 16 Jun 1996 19:55:21 -0700 Date: Sun, 16 Jun 1996 19:55:21 -0700 (MST) From: "Mark A. Trombley" X-Sender: trombley@aruba.ccit.arizona.edu To: "Donald P. Cram" Subject: Re: calc betas In-Reply-To: <199606160119.SAA12280@sphinx.Stanford.EDU> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Status: RO Don, Here is a fortran event study program. Probably pretty similar to yours, I bet. Mark --------------------------------------------------------------------- Mark Trombley University of Arizona College of Business and Public Administration 301 McClelland Hall Tucson, AZ 85721 Voice 520-621-4805 Fax 520-621-3742 trombley@u.arizona.edu http://www.u.arizona.edu/ic/trombley --------------------------------------------------------------------- C************************************************************** C THIS PROGRAM CONDUCTS A TYPICAL EVENT STUDY USING DAILY C RETURNS FROM CRSP TAPE. C THIS PROGRAM (1) ESTIMATES MARKET MODEL USING OLS OR C THE SCHOLES AND WILLIAMS [1977] METHOD; (2) CALCULATES C 3 DIFFERENT ABNORMAL RETURNS METRICS: (A) UNSTANDARDIZED C AR, (B) STANDARDIZED AR, AND (C) U-STATISTIC. THE C ALGORITHM CLOSELY FOLLOWS PATELL [1976; JAR]. C C The program looks for a data file with the format C C 12345678 780421 C C where the first number is the firm cusip, and the second is C an event date in the format YYMMDD C C To select s-w or regular betas, set the flag below. C Program uses vw index by default. To use ew, change C calculation of RZZ. C C NOTE: AT COMPILE TIME, THE FILES 'crsp.include' AND 'include.crsp' C MUST IN THE SAME DIRECTORY AS THIS SOURCE FILE. C C TO COMPILE THE PROGRAM: xlf -qsource -o devent devent.f C C TO RUN THE PROGRAM ONCE COMPILED SUCCESSFULLY: devent C C************************************************************** C Modified name Beta variable 3/92 NLF PROGRAM DEVENT INCLUDE 'crsp.include' DATA IUNIT/1/, JUNIT/2/, KOUNT/0/ DIMENSION FRET(400),ZRET(400),FRES(400),ZRES(400), * RESD(400),RESD1(400),SRESD(400),UIT(400),CIT(400),DATA(400) DIMENSION IDATE(9000) CHARACTER CNUM(9000)*8 REAL EP_ALPHA, EP_BETA !Estimation Period Alpha and Beta C**************************************************************** C** OPEN INPUT FILE (UNIT 3), CRSP INDEX FILE (UNIT 1), C** CRSP FIRM DATA (UNIT 2), and OUTPUT FILES (UNIT 6,7,8,33) C**************************************************************** OPEN(IUNIT,STATUS="unknown", . FILE="/fa1/databases/crsp/nyse_daily_returns/bcal", . ACCESS="sequential", form="unformatted") OPEN(JUNIT,STATUS="unknown", * FILE="/fa1/databases/crsp/nyse_daily_returns/bstkfl", . ACCESS="sequential", form="unformatted") OPEN(3,STATUS="unknown",FILE="event.firms") OPEN(6,STATUS="unknown",FILE="sampfirm.aret") OPEN(7,STATUS="unknown",FILE="sampfirm.sar") OPEN(8,STATUS="unknown",FILE="sampfirm.ust") OPEN(33,STATUS="unknown",FILE="regress.output") C**************************************************************** C**1 INITIALIZE PARAMETERS. C** MODEL=1 IF SCHOLES & WILLIMS [1977;JFE] IS USED; C** MODEL=0 IF OLS IS USED TO ESTIMATE MARKET MODEL. C** LENEST= # OF DAYS IN ESTIMATION PERIOD. C** LENPRE= # OF DAYS PRIOR TO EVENT DATE (DAY 0). C** LENPOS= # OF DAYS AFTER EVENT DATE. C** TOTAL # OF DAYS IN TEST (EVENT) PERIOD= LENPRE+LENPOS+1. C** MINOBS= MINIMUM # OF DAYS REQUIRED FOR MARKET MODEL ESTIMATION. C**************************************************************** MODEL=0 LENEST=60 LENPRE=10 LENPOS=10 MINOBS=15 WRITE (33,2) 2 FORMAT(26X,'REGRESSION OUTPUT') WRITE (33,3) 3 FORMAT(2X,'ALPHA',6X,'BETA',7X,'REGSSQR',4X,'ERRSSQR', . 4X,'TOTSSQR',4X,'R-SQUARE') C**************************************************************** C**2 READ CUSIP #'S & EVENT DATES (YYMMDD) OF SAMPLE FIRMS AND C** COUNT THE NUMBER OF CASES (NF). C**************************************************************** N=1 10 READ(3,333,END=15) CNUM(N),IDATE(N) 333 FORMAT(1X,A8,1X,I6) N=N+1 GOTO 10 15 CONTINUE NF=N-1 C---------------------------------------------------------------- C--3 READ CRSP INDEX FILE (MARKET RETURNS, CALENDAR DATES ETC.). C---------------------------------------------------------------- CALL BICAL(IUNIT,NDAYS) C---------------------------------------------------------------- C--4 READ CRSP DAILY RETURNS FILE FOR A FIRM. C---------------------------------------------------------------- 1000 CALL BIGET(JUNIT,*900) C---------------------------------------------------------------- C--5 CHECK IF THE CRSP FIRM IS IN THE SAMPLE. IF IN THE SAMPLE, C-- IDENTIFY EVENT DATE IN TERMS OF CRSP DATE. IF NOT IN THE C-- READ NEXT FIRM ON CRSP TAPE. C---------------------------------------------------------------- DO 100 I=1,NF IF(CUSIP.NE.CNUM(I)) GOTO 100 ICHK=(IDATE(I)/10000)-63 IFST=ICHK*250 IF(IFST.LE.0) IFST=1 DO 200 K=IFST,NDAYS IF(IDATE(I).NE.CALDT(K)) GOTO 200 IEVDT=K GOTO 300 200 CONTINUE GOTO 100 C---------------------------------------------------------------- C--6 DEFINE ESTIMATION AND TEST PERIODS. C-- ESTIMATION PERIOD=[MBEG MEST]; TEST PERIOD=[MTEST MEND]. C---------------------------------------------------------------- 300 CONTINUE MBEG=IEVDT-LENPRE-LENEST MEST=IEVDT-LENPRE-1 MTEST=IEVDT-LENPRE MEND=IEVDT+LENPOS C***************************************************************** C**7 CALCULATE LOG OF PRICE RELATIVES DURING ESTIMATION PERIOD. C** TO USE EQUALLY-WEIGTED INDEX, REPLACE [VWRETD] WITH [EWRETD]. C***************************************************************** KK=1 DO 400 M=MBEG,MEST IF(RET(M).LE.-1.0) GOTO 400 RFF=1.0+RET(M) RZZ=1.0+VWRETD(M) FRET(KK)=ALOG(RFF) ZRET(KK)=ALOG(RZZ) KK=KK+1 400 CONTINUE C***************************************************************** C**8 CALCULATE LOG OF PRICE RELATIVES DURING TEST PERIOD. C** TO USE EQUALLY-WEIGTED INDEX, REPLACE [VWRETD] WITH [EWRETD]. C***************************************************************** KL=1 DO 500 L=MTEST,MEND RFF=1.0+RET(L) RZZ=1.0+VWRETD(L) IF(RET(L).LE.-1.0) GOTO 520 FRES(KL)=ALOG(RFF) GOTO 540 520 FRES(KL)=-9.9 540 ZRES(KL)=ALOG(RZZ) KL=KL+1 500 CONTINUE C*************************************************************** C**9 COUNT # OF OBSERVATIONS AVAILABLE IN ESTIMATION PERIOD (NOBS), C** AND CACULATE # OF DAYS IN TEST PERIOD (NRESD). IF NOBS