On Fri, Jul 22, 2011 at 2:37 PM, john nicholas <jbnich...@sbcglobal.net> wrote:
>  Hello,
>
> I would like to implement a "turn-of-the-month' trading strategy in R.
>
> Given a daily series of stock market return data as a zoo object, the strategy
> would go long (buy) four trading days before the end of the month, and sell 
> the
> third trading day of the following month.
>
> How can I select these days, particularly the fourth day before and the third
> day after the turn of the month, from a zoo object?
>
Here are two ways to do this using xts.  The first approach creates a
list of xts objects where each list element contains one month of
data.  Then it uses first() and last() to extract the 4th trading day
prior to the end of the month.

require(quantmod)
getSymbols(SPY)
x1 <- do.call(rbind, lapply(split(SPY, "months"), function(x) first(last(x,4))))

The second approach uses apply.monthly(), but that function always
returns an object with index values that correspond to the last
observation in the month.  So we have to manually update the index to
be 3 days prior.

x2 <- apply.monthly(SPY, function(x) first(last(x,4)))
index(x2) <- index(SPY)[endpoints(SPY, "months")[-1]-3]

> Thanks in advance,
>
> John B. Nicholas, Ph.D
> 650-315-9895
>

HTH,
--
Joshua Ulrich  |  FOSS Trading: www.fosstrading.com

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to