[R-SIG-Finance] How to calculate Trading Days

Brian G. Peterson brian at braverock.com
Sun Nov 7 17:50:29 CET 2010

On Sat, 06 Nov 2010 18:35:13 -0700, Noah Silverman
<noah at smartmediacorp.com> wrote:
> Hi,
> I'm working on some option value pricing models. Starting with the 
> GBSvolatility for example.  All of the various formulas require a Time 
> parameter (fraction of year) until expiration. Ideally, I want to 
> compute it as:
> "trading days until expiration" / 252
> Give two days, I can use the difftimeDate to get the number of days 
> between them, However I can't seem to find a way to get Trading Days 
> (which excludes weekends and holidays.)  I've looked through rseek.org 
> and many library's documentation, but can't find a way to do this.
> One thought would be to generate a vector of dates between the start and

> end days.  Then test EACH date to see if it was a holiday or weekend.  
> This could work, but seems very inefficient.
> Does anyone know of a way to calculate Trading Days between two dates???
> (Surely I can't be the only person here who needs this in R.)

Each exchange has a different calendar.  Most people keep a calendar in a
database for each exchange they trade on.  This can then be matched to the
exchange meta-data for each instrument you trade.

Since you seem to be using timeDate, you could take a close look at
fCalendar and see if the holiday functions included there will solve your

A more efficient method of extracting holidays would be to generate
vectors of weekends and holidays and the remove the weekends and holidays
vectors from your vector of all days.


  - Brian

Brian G. Peterson
Ph: 773-459-4973
IM: bgpbraverock

More information about the R-SIG-Finance mailing list