<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Getting trading days around an event date in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Getting-trading-days-around-an-event-date/m-p/601329#M173918</link>
    <description>&lt;P&gt;I am not sure what I am missing. I know that using the custom trading days and weekday give different results. My questions is when I use the custom trading days, it takes a long time to create new dates.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 04 Nov 2019 10:09:26 GMT</pubDate>
    <dc:creator>somebody</dc:creator>
    <dc:date>2019-11-04T10:09:26Z</dc:date>
    <item>
      <title>Getting trading days around an event date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-trading-days-around-an-event-date/m-p/601310#M173907</link>
      <description>&lt;P&gt;I am doing an event study. So I would like to get 50 trading days before and 50 trading days after the event day. I have a dataset that contains trading dates because I cannot simply use 'weekday' for the INTNX function in SAS.&lt;/P&gt;&lt;P&gt;My code is :&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;options intervalds=(tradingdays=tradingdays) ;
	data data_window(rename=(date=date_t0 date2=date)); 
		set data_in;
		by stock date;
		if first.date;
		format date2 YYMMDD10.;
		do t=-50 to 50; date2=intnx('tradingdays',date,t) ;output; end;
	run;&lt;BR /&gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;CODE class=" language-sas"&gt;Data_in&amp;nbsp;contains&amp;nbsp;2&amp;nbsp;variables:&amp;nbsp;stock&amp;nbsp;and&amp;nbsp;date&amp;nbsp;which&amp;nbsp;is&amp;nbsp;the&amp;nbsp;event&amp;nbsp;date.&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;This runs very slow, as compared to using&amp;nbsp;&lt;CODE class=" language-sas"&gt;intnx('weekday',date,t). Is there a different way to improve the speed? &lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 04 Nov 2019 06:32:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-trading-days-around-an-event-date/m-p/601310#M173907</guid>
      <dc:creator>somebody</dc:creator>
      <dc:date>2019-11-04T06:32:43Z</dc:date>
    </item>
    <item>
      <title>Re: Getting trading days around an event date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-trading-days-around-an-event-date/m-p/601311#M173908</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/98381"&gt;@somebody&lt;/a&gt;&amp;nbsp;can you provide an example of what data_in looks like and your desired result?&lt;/P&gt;</description>
      <pubDate>Mon, 04 Nov 2019 06:34:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-trading-days-around-an-event-date/m-p/601311#M173908</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-11-04T06:34:13Z</dc:date>
    </item>
    <item>
      <title>Re: Getting trading days around an event date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-trading-days-around-an-event-date/m-p/601313#M173909</link>
      <description>&lt;P&gt;Here are the datasets.&lt;/P&gt;&lt;P&gt;Data_in the input&lt;/P&gt;&lt;P&gt;data_wanted is the desired output.&lt;/P&gt;&lt;P&gt;tradingdays contains trading days.&lt;/P&gt;&lt;P&gt;Take 2014-05-31 for example. its a public holiday so it is not a trading day. If I use 'weekday', SAS will return this day in my output which is not what I want. Thus, I have a dataset that contains valid trading days.&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Mon, 04 Nov 2019 07:49:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-trading-days-around-an-event-date/m-p/601313#M173909</guid>
      <dc:creator>somebody</dc:creator>
      <dc:date>2019-11-04T07:49:03Z</dc:date>
    </item>
    <item>
      <title>Re: Getting trading days around an event date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-trading-days-around-an-event-date/m-p/601316#M173911</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/98381"&gt;@somebody&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you know already what you would be doing if this were about weekdays then the only thing you're still missing is how to create and use a &lt;A href="https://go.documentation.sas.com/?docsetId=etsug&amp;amp;docsetTarget=etsug_intervals_sect008.htm&amp;amp;docsetVersion=15.1&amp;amp;locale=en" target="_self"&gt;custom interval&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The data set "tradingdays" is already in a perfect format so things become really simple.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;options intervalds=(Cust_TradingDays=TradingDays);
data test;
  format dt dt_plus10tradingDays dt_plus10weekDays weekdate.; 
  do dt='10dec2017'd to '20jan2018'd;
    dt_plus10tradingDays=intnx('Cust_TradingDays',dt,10);
    dt_plus10weekDays=intnx('weekdays17w.',dt,10);
    output;
  end;
  stop;
run;
proc print;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.JPG" style="width: 600px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/33612i9D88FB00E09E5241/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.JPG" alt="Capture.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 04 Nov 2019 08:55:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-trading-days-around-an-event-date/m-p/601316#M173911</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2019-11-04T08:55:43Z</dc:date>
    </item>
    <item>
      <title>Re: Getting trading days around an event date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-trading-days-around-an-event-date/m-p/601317#M173912</link>
      <description>&lt;P&gt;I am not quit sure how the INTNX function works internally with interval tables, but I think it may be a dynamic WHERE clause. In which case it may be possible to speed things up by putting an index on the BEGIN variable.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Another possibility is to hardcode the interval fetching, e.g.:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data trading_days;&lt;BR /&gt;  set tradingdays;&lt;BR /&gt;  rename begin=date2;&lt;BR /&gt;  format begin YYMMDD10.;&lt;BR /&gt;  obs=_N_;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;proc sql;&lt;BR /&gt;  create index date2 on trading_days(date2);&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;data data_window(rename=(date=date_t0 date2=date));&lt;BR /&gt;  set data_in;&lt;BR /&gt;  by stock date;&lt;BR /&gt;  if first.date;&lt;BR /&gt;  date2=date;&lt;BR /&gt;  set trading_days key=date2/unique nobs=nobs;&lt;BR /&gt;  do _N_=(max(obs-50,0) to min(obs+50,nobs);&lt;BR /&gt;    set trading_days pont=_N_;&lt;BR /&gt;    output;&lt;BR /&gt;    end;&lt;BR /&gt;  drop obs;&lt;BR /&gt;run;  &lt;BR /&gt;  &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Only make sure that the TRADINGDAYS data set is sorted before doing this.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 04 Nov 2019 08:50:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-trading-days-around-an-event-date/m-p/601317#M173912</guid>
      <dc:creator>s_lassen</dc:creator>
      <dc:date>2019-11-04T08:50:25Z</dc:date>
    </item>
    <item>
      <title>Re: Getting trading days around an event date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Getting-trading-days-around-an-event-date/m-p/601329#M173918</link>
      <description>&lt;P&gt;I am not sure what I am missing. I know that using the custom trading days and weekday give different results. My questions is when I use the custom trading days, it takes a long time to create new dates.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 04 Nov 2019 10:09:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Getting-trading-days-around-an-event-date/m-p/601329#M173918</guid>
      <dc:creator>somebody</dc:creator>
      <dc:date>2019-11-04T10:09:26Z</dc:date>
    </item>
  </channel>
</rss>

