[R-SIG-Finance] quantmod newTA passes a matrix?

Jeff Ryan jeff.a.ryan at gmail.com
Tue Dec 9 16:26:14 CET 2008


Brian,

The reason is mostly historical (pre-xts code)

> head(myIndicator)

1 function (..., on = -1, legend = "auto")
2 {
3     lchob <- quantmod:::get.current.chob()
4     x <- as.matrix(lchob at xdata)
5     x <- dummy.indicator(x = x)
6     yrange <- NULL

If you need an xts object, you can hand edit the function produced by
newTA (either dump() and source(), or fix()) or you can add a preFUN
argument in the newTA call.

> myIndicator <- newTA(dummy.indicator, preFUN=as.xts, on=-1, col='#3333333', border=NA)
> head(myIndicator)

1 function (..., on = -1, legend = "auto")
2 {
3     lchob <- quantmod:::get.current.chob()
4     x <- as.matrix(lchob at xdata)
5     x <- as.xts(x)
6     x <- dummy.indicator(x = x)

The data is indeed stored as an xts object internally in the 'chob'.

> str(quantmod:::get.current.chob()@xdata)
An 'xts' object from 2007-01-03 to 2008-12-08 containing:
  Data: num [1:488, 1:6] 43.5 43.3 44 43.9 44 ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:6] "QQQQ.Open" "QQQQ.High" "QQQQ.Low" "QQQQ.Close" ...
  Indexed by objects of class: [POSIXct]
   xts Attributes:
List of 3
 $ src     : chr "yahoo"
 $ updated : POSIXct[1:1], format: "2008-12-09 15:24:20"
 $ .RECLASS: logi FALSE

Jeff

On Tue, Dec 9, 2008 at 5:30 AM, Brian Lee Yung Rowe <brian at muxspace.com> wrote:
> Hi Jeff,
>
> This is what I am talking about:
>
> dummy.indicator <- function(x) cat("input class:",class(x),"\n")
> myIndicator <- newTA(dummy.indicator, on=-1, col='#3333333', border=NA)
>
>> chartSeries(QQQQ)
>> myIndicator()
> input class: matrix
>
> I wasn't expecting to see the input (extracted from the chob) as matrix
> (I thought it would be xts/zoo).
>
> Brian
>
>
> On Sat, 2008-12-06 at 11:34 -0600, Jeff Ryan wrote:
>> Hi Brian,
>>
>> There are quite a few operations that take place internal to the
>> chartSeries plotting process.
>>
>> If you mean that your function that is creating the data isn't
>> returning an xts object, I would say that you should do one of two
>> things:
>>
>> 1) write a wrapper that returns it as an xts object, either by
>> reconstructing the xts object from the data, or by trying the Reclass
>> function in xts.  Reclass is theory will do exactly what I think you
>> need, but it can't always guess correctly. Use THIS function as the
>> FUN argument to ?newTA.
>>
>> 2) using ?fix you can simply modify/fine-tune the function object you
>> get/have from newTA to modify the results.
>>
>> If you could send your code off-list (if need be) or on list, I can help more.
>>
>> Thanks,
>> Jeff
>>
>> On Sat, Dec 6, 2008 at 7:51 AM, Brian Lee Yung Rowe <brian at muxspace.com> wrote:
>> > Hi Brian,
>> >
>> > Are you referring to the addTA function that takes a boolean xts object?
>> > Yes, that works fine, but I want my own function that wraps up some of the
>> > details in drawing the shaded regions. Jeff and I spoke about using newTA to
>> > do this, and I'm trying to work through some of the specifics.
>> >
>> > FWIW I already have a working function based on newTA, but I have to pass in
>> > the original time series as an option because the series extracted from the
>> > chob does not preserve the date information. It's a minor inconvenience, and
>> > I wanted to know if there was a more elegant solution to the problem.
>> >
>> > Brian
>> >
>> >
>> > ----- Original message -----
>> > Sent: 2008/12/06 06:58:37
>> > Subject: Re:Re: [R-SIG-Finance] quantmod newTA passes a matrix?
>> >
>> > I'm not at a machine where I can easily look up the function, but quantmod
>> > already has a function for adding shaded sections to charts that takes a
>> > vector of date ranges as the argument. Check the chart documentation and
>> > Jeff's excellent examples on quantmod.com
>> >
>> > Regards,
>> >
>> > - Brian
>> >
>> > Brian Lee Yung Rowe wrote:
>> >
>> >>_______________________________________________
>> >>R-SIG-Finance at stat.math.ethz.ch mailing list
>> >>https://stat.ethz.ch/mailman/listinfo/r-sig-finance
>> >>-- Subscriber-posting only.
>> > _______________________________________________
>> > R-SIG-Finance at stat.math.ethz.ch mailing list
>> > https://stat.ethz.ch/mailman/listinfo/r-sig-finance
>> > -- Subscriber-posting only.
>> > -- If you want to post, subscribe first.
>> >
>>
>>
>>
>
>



-- 
Jeffrey Ryan
jeffrey.ryan at insightalgo.com

ia: insight algorithmics
www.insightalgo.com



More information about the R-SIG-Finance mailing list