wrdstaq

7
Extracting Intraday Price Quotes from TAQ database in WRDS using SAS (30 minutes interval) Oscar TorresReyna/Todd Hines [email protected]/[email protected] http://dss.princeton.edu/training/

Upload: vsuarezf2732

Post on 01-Oct-2015

4 views

Category:

Documents


2 download

DESCRIPTION

WRDSTAQ

TRANSCRIPT

  • ExtractingIntradayPriceQuotesfromTAQdatabaseinWRDSusingSAS

    (30minutesinterval)

    OscarTorresReyna/[email protected]/[email protected]

    http://dss.princeton.edu/training/

  • Note ThecodepresentedhereisbasedonasampleSAScodeavailableatWRDS(http://wrds.wharton.upenn.edu/)

    YoucancopyandpastethecodeinSASandmodifyittoyourneeds.

    Makesureyoucopyitintheorderitispresentedhere.

    OTR/TH 2

  • 1)LoginintoWRDSfromSAS

    %letwrds =wrds.wharton.upenn.edu4016;

    optionscomamid=TCPremote=WRDS;

    signon username=_prompt_;

    libname local'H:\';*Thisiswherethedatawillbesaved;

    rsubmit;

    libname taq'/wrds/taq/sasdata';*Thisiswherethedatasetsarelocated;

    OTR/TH 3

  • 2)Inputarea

    *%lettaq_ds=taq.cq_20090102;*datasetyouareinterested(ifonlyonedataset);%letstart_time ='9:00:00't;*startingtime;*%letdate1='02JAN2009'd;*dayyouareinterested(ifonlyone);*%letinterval_seconds =15*60;*intervalis15*60seconds,15min;%letinterval_seconds =30*60;*intervalis15*60seconds,30min;

    OTR/TH 4

  • 3)Extractselecteddata/date/time*ExtractdataforJanuaryJulyof2009and2stocksbetween9:00amto4:30pm,retrieveSYMBOLDATETIMEandPRICE;dataall2009;

    settaq.cq_20090102taq.cq_20090105taq.cq_20090106taq.cq_20090107taq.cq_20090108taq.cq_20090109taq.cq_20090112taq.cq_20090113taq.cq_20090114taq.cq_20090115taq.cq_20090116taq.cq_20090120taq.cq_20090121taq.cq_20090122taq.cq_20090123taq.cq_20090126taq.cq_20090127taq.cq_20090128taq.cq_20090129taq.cq_20090130taq.cq_20090202taq.cq_20090203taq.cq_20090204taq.cq_20090205taq.cq_20090206taq.cq_20090209taq.cq_20090210taq.cq_20090211taq.cq_20090212taq.cq_20090213taq.cq_20090217taq.cq_20090218taq.cq_20090219taq.cq_20090220taq.cq_20090223taq.cq_20090224taq.cq_20090225taq.cq_20090226taq.cq_20090227taq.cq_20090302taq.cq_20090303taq.cq_20090304taq.cq_20090305taq.cq_20090306taq.cq_20090309taq.cq_20090310taq.cq_20090311taq.cq_20090312taq.cq_20090313taq.cq_20090316taq.cq_20090317taq.cq_20090318taq.cq_20090319taq.cq_20090320taq.cq_20090323taq.cq_20090324taq.cq_20090325taq.cq_20090326taq.cq_20090327taq.cq_20090330taq.cq_20090331taq.cq_20090401taq.cq_20090402taq.cq_20090403taq.cq_20090406taq.cq_20090407taq.cq_20090408taq.cq_20090409taq.cq_20090413taq.cq_20090414taq.cq_20090415taq.cq_20090416taq.cq_20090417taq.cq_20090420taq.cq_20090421taq.cq_20090422taq.cq_20090423taq.cq_20090424taq.cq_20090427taq.cq_20090428taq.cq_20090429taq.cq_20090430taq.cq_20090501taq.cq_20090504taq.cq_20090505taq.cq_20090506taq.cq_20090507taq.cq_20090508taq.cq_20090511taq.cq_20090512taq.cq_20090513taq.cq_20090514taq.cq_20090515taq.cq_20090518taq.cq_20090519taq.cq_20090520taq.cq_20090521taq.cq_20090522taq.cq_20090526taq.cq_20090527taq.cq_20090528taq.cq_20090529taq.cq_20090601taq.cq_20090602taq.cq_20090603taq.cq_20090604taq.cq_20090605taq.cq_20090608taq.cq_20090609taq.cq_20090610taq.cq_20090611taq.cq_20090612taq.cq_20090615taq.cq_20090616taq.cq_20090617taq.cq_20090618taq.cq_20090619taq.cq_20090622taq.cq_20090623taq.cq_20090624taq.cq_20090625taq.cq_20090626taq.cq_20090629taq.cq_20090630taq.cq_20090701taq.cq_20090702taq.cq_20090706taq.cq_20090707taq.cq_20090708taq.cq_20090709taq.cq_20090710taq.cq_20090713taq.cq_20090714taq.cq_20090715taq.cq_20090716taq.cq_20090717taq.cq_20090720taq.cq_20090721taq.cq_20090722taq.cq_20090723taq.cq_20090724taq.cq_20090727taq.cq_20090728taq.cq_20090729taq.cq_20090730taq.cq_20090731;

    wheresymbolin('GE','C')andtimebetween'9:00:00'tand'16:30:00't;run;proc sort;bysymboldatetime;run;Title'Printseverallinesoftheoriginaldataforchecking';

    OTR/TH 5

  • 4)Screendatatofindthetradebeforeasettimeinterval

    dataxtemp2;setall2009;bysymboldatetime;formatitime rtime time12.;iffirst.symbol=1orfirst.date=1thendo;*Initializetimeandpricewhennewsymbolordatestarts;rtime=time;iprice=bid;oprice=ofr;itime=&start_time;

    end;iftime>=itime thendo;*Intervalreached;

    output;*rtime andiprice holdthelastobservationvalues;itime =itime +&interval_seconds;dowhile(time>=itime);*needtofillinalltimeintervals;output;itime =itime +&interval_seconds;

    end;end;rtime=time;iprice=bid;oprice=ofr;retainitime rtime iprice oprice;*Carrytimeandpricevaluesforward;*keepsymboldateitime iprice rtime;

    run;

    OTR/TH 6

  • 5)Checkthedata,saveasSASdataandexportto*.csv

    Title"Finaloutput XXmininterval";*ReplacetheXXbyinterval;proc printdata=xtemp2(obs=100);

    var symboldateitime iprice oprice rtime;run;

    proc downloaddata=xtemp2OUT=local.all30;*ThisdownloadthedatasetinSASformat.CHANGETHENAMEIFYOUCHANGETHEINTERVAL;run;

    proc exportDATA=local.all30OUTFILE="h:\all30.csv"DBMS=csv REPLACE;*ThisexportstheSASdatasetto*.csv toreadin

    Excel.REMEMBERTOCHANGETHENAMEIFYOUCHANGETHEINTERVAL;run;

    OTR/TH 7