Re: [R] quantmod's addTA plotting functions

From: Jeff Ryan <>
Date: Thu, 05 May 2011 11:55:02 -0500

There is a struggle in documentation that revolves around being too brief to be useful and too verbose which then is often ignored. In general, R "proper" is far less verbose than quantmod docs - so if you have trouble with quantmod...

from ?addTA


     ‘addTA’ will invisibly return an S4 object of class ‘chobTA’. If
     this function is called interactively, the ‘chobTA’ object will be
     evaluated and added to the current chart.

     ‘newTA’ will return a function object that can either be assigned
     or evaluated.  Evaluating this function will follow the logic of
     any standard addTA-style call, returning invisibly a ‘chobTA’
     object, or adding to the chart.

In addition there is a "see also" that references ?TA

One can also use the archives to see this "problem" discussed over and over.  It isn't for lack of documentation typically - it is for lack of looking.

That said, could the docs be more clear/verbose? Certainly. Does that take time? Certainly. Does answering the same question in a public forum take time? Certainly. What the latter does though is provide for an excellent reference for those who misunderstand or don't understand the 'Value' aspect of the docs (which here explains quite clearly that nothing is printed by the call itself).

A suitably phrased patch for the docs is one way to contribute in a productive manner - though it may not always be applied by those you submit it to (to me or any of the other 3000 package author/maintainers/etc).


On Thu, May 5, 2011 at 11:42 AM, Russ Abbott <> wrote:

> Thanks. You're right. I didn't see that. I read the ?addTA help page,
> which (annoyingly) didn't mention that feature, but I didn't read the ?TA
> page. (That page was mentioned as a see also, but not as a must see.)
> I don't know what it means to wrap these calls in a plot call. I tried to
> put the addTA calls into a function and call that function from the higher
> level function, but that didn't work either. Would you tell me what it means
> to wrap these calls in a plot call.
> Thanks
> *-- Russ *
> P.S. Pardon my irritation, but I continually find that many of the help
> files assume one already knows the information one is looking for. If you
> don't know it, the help files are not very helpful. This is a good example.
> In fact, it's two good examples. I didn't know that I had to look at
> another page, and I (still) don't know what it means to wrap plot calls in
> another plot call.
> On Thu, May 5, 2011 at 3:39 AM, P Ehlers <> wrote:
>> On 2011-05-05 0:47, Russ Abbott wrote:
>>> Hi,
>>> I'm having trouble with quantmod's addTA plotting functions. They seem
>>> to
>>> work fine when run from the command line. But when run inside a function,
>>> only the last one run is visible. Here's an example.
>>> test.addTA<- function(from = "2010-06-01") {
>>> getSymbols("^GSPC", from = from)
>>> GSPC.close<- GSPC[,"GSPC.Close"]
>>> GSPC.EMA.3<- EMA(GSPC.close, n=3, ratio=NULL)
>>> GSPC.EMA.10<- EMA(GSPC.close, n=10, ratio=NULL)
>>> chartSeries(GSPC.close, theme=chartTheme('white'), up.col="black",
>>> dn.col="black")
>>> addTA(GSPC.EMA.3, on = 1, col = "#0000ff")
>>> addTA(GSPC.EMA.10, on = 1, col = "#ff0000")
>>> # browser()
>>> }
>>> When I run this, GSPC.close always appears. But only GSPC.EMA10 appears
>>> on
>>> the plot along with it. If I switch the order of the addTA calls,
>>> only GSPC.EMA3 appears. If I uncomment the call to browser() neither
>>> appears
>>> when the browser() interrupt occurs. I can then draw both GSPC.EMA.3 and
>>> GSPC.EMA10 manually, and let the function terminate. All intended plots
>>> are
>>> visible after the function terminates. So it isn't as if one wipes out
>>> the
>>> other. This shows that it's possible to get all three lines on the plot,
>>> but
>>> I can't figure out how to do it without manual intervention. Any
>>> suggestions
>>> are appreciated.
>> Perhaps you didn't see this NOTE on the ?TA help page:
>> "Calling any of the above methods from within a function
>> or script will generally require them to be wrapped in a
>> plot call as they rely on the context of the call to
>> initiate the actual charting addition."
>> Peter Ehlers
>>> Thanks.
>>> *-- Russ *
>>> [[alternative HTML version deleted]]
>>> ______________________________________________
>>> mailing list
>>> PLEASE do read the posting guide
>>> and provide commented, minimal, self-contained, reproducible code.

Jeffrey Ryan

	[[alternative HTML version deleted]]

______________________________________________ mailing list PLEASE do read the posting guide and provide commented, minimal, self-contained, reproducible code.

Received on Thu 05 May 2011 - 16:57:20 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 05 May 2011 - 17:40:06 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive