Futures Nearby Creation Function

DESCRIPTION:

Create a nearby series from a multivariate time series representing multiple futures contracts.

USAGE:

nearby(x, rule, contracts) 

REQUIRED ARGUMENTS:

x
multivariate time series containing futures prices for the contracts.
rule
rule giving the roll date (last date to use each contract) from one futures contract to the next, relative to the beginning of the contract month. This can be given as a time span or relative time object, or a character string which can be coerced into a relative time object.
contracts
the contract months for the columns of the time series, given as character strings of the form "F95", or "F1995", where the first letter is the month code and the remainder is the year, and where two-digit years are converted to four-digit years using options("time.century"). These should be in ascending order.

VALUE:

a single-column time series containing the specified nearby series.

DETAILS:

The series is generated with the following steps. First, the contract months are converted to dates of the first of the month, e.g. Z98 becomes December 1, 1998. Then the roll rule is added to each date, to calculate the last day each column of the data set should be used. The time series positions and the end dates are then passed to the cut function to determine which column is needed for each output date, and these data values are subscripted from x and returned. NA will be the result for positions that have no valid column data.

SEE ALSO:

, .

EXAMPLES:

# make a 5-column time series 
x <- timeSeries(data=matrix(1:750, ncol=5),  
   pos=timeDate("1/1/1995", format="%a %02m/%02d/%Y")+1:150) 
# make a nearby series, assuming this are Feb-June 1995 contracts (ignoring 
# the fact that there should be NAs in the matrix), rolling on the 3rd 
# Friday of the month before the contract month 
nearby(x, timeRelative("-1mth -1day +3fri"),  
       paste(c("G", "H", "J", "K", "M"), 1995, sep=""))