[R-SIG-Finance] does quantmod::adjustOHLC adust for dividends?

Vivek Rao vivekrao4 at yahoo.com
Fri Jun 2 17:29:02 CEST 2017


Thank you. I see that the IBM.Open, IBM.High, IBM.Low, and IBM.Close columnsare adjusted for dividends, and IBM.Adjusted column actually contains the raw close.This is fine as long the user knows this -- the naming of the columns could suggestthe reverse.
Before Yahoo changed its data format, when I used getYahooData from package TTR to get data, the fields returned wereOpen,High,Low,Close,Volume,Unadj.Close,Div,Split,Adj.Div . I think the label "Unadj.Close" for the raw close
is more descriptive.
Vivek Rao
      From: Joshua Ulrich <josh.m.ulrich at gmail.com>
 To: Ilya Kipnis <ilya.kipnis at gmail.com> 
Cc: Vivek Rao <vivekrao4 at yahoo.com>; "r-sig-finance at r-project.org" <r-sig-finance at r-project.org>
 Sent: Friday, June 2, 2017 10:51 AM
 Subject: Re: [R-SIG-Finance] does quantmod::adjustOHLC adust for dividends?
   
On Fri, Jun 2, 2017 at 9:47 AM, Ilya Kipnis <ilya.kipnis at gmail.com> wrote:
> That's a function of yahoo data no longer adjusting for dividends.
>
No, it isn't.

> On Fri, Jun 2, 2017 at 10:45 AM, Vivek Rao via R-SIG-Finance <
> r-sig-finance at r-project.org> wrote:
>
>> (I tried sending this message before joining the group, but it was held
>> for moderation.)
>>
>> It appears that the adjustOHLC function of the quantmod package does not
>> create an .Adjusted field
>> that reflects dividends.
>>
>> The code
>>
>> library("quantmod")
>> sym <- "IBM"
>> START.DATE = "2016-01-01"
>> div <- getDividends(sym,auto.assign=FALSE,from=START.DATE)
>> xx <- getSymbols(sym, from=START.DATE, src="yahoo", auto.assign=FALSE)
>> xx.a <- adjustOHLC(xx)
>> xx.uA <- adjustOHLC(xx, use.Adjusted=TRUE)

The issue is that you must set the symbol.name argument if the first
argument to adjustOHLC() is not named the same as the symbol being
adjusted.

This works:

xx.a2 <- adjustOHLC(xx, symbol.name = sym)
head(xx.a2)
          IBM.Open IBM.High  IBM.Low IBM.Close IBM.Volume IBM.Adjusted
2016-01-04 128.3440 128.6942 127.0568  128.6753    5229400      135.95
2016-01-05 129.4420 129.5650 127.6342  128.5807    3924800      135.85
2016-01-06 127.1893 128.3251 126.4700  127.9371    4310900      135.17
2016-01-07 126.5457 127.7951 125.3437  125.7507    7025800      132.86
2016-01-08 126.0535 126.6593 124.2931  124.5865    4762700      131.63
2016-01-11 124.7568 126.6593 124.7095  126.1009    4974400      133.23

>> cat("\ndiv\n")
>> print(head(div))
>> cat("\nxx\n")
>> print(head(xx))
>> cat("\nxx.a\n")
>> print(head(xx.a))
>> cat("\nxx.uA\n")
>> print(head(xx.uA))
>>
>> produces the output below. I'd expect that IBM.Adjusted field to have
>> different values
>> at the beginning of the period, depending on whether one adjusts for
>> dividends.
>>
>> div
>> IBM.div
>> 2016-02-08    1.3
>> 2016-05-06    1.4
>> 2016-08-08    1.4
>> 2016-11-08    1.4
>> 2017-02-08    1.4
>> 2017-05-08    1.5
>>
>> xx
>> IBM.Open IBM.High IBM.Low IBM.Close IBM.Volume IBM.Adjusted
>> 2016-01-04  135.60  135.97  134.24    135.95    5229400      135.95
>> 2016-01-05  136.76  136.89  134.85    135.85    3924800      135.85
>> 2016-01-06  134.38  135.58  133.62    135.17    4310900      135.17
>> 2016-01-07  133.70  135.02  132.43    132.86    7025800      132.86
>> 2016-01-08  133.18  133.82  131.32    131.63    4762700      131.63
>> 2016-01-11  131.81  133.82  131.76    133.23    4974400      133.23
>>
>> xx.a
>> IBM.Open IBM.High IBM.Low IBM.Close IBM.Volume IBM.Adjusted
>> 2016-01-04  135.60  135.97  134.24    135.95    5229400      135.95
>> 2016-01-05  136.76  136.89  134.85    135.85    3924800      135.85
>> 2016-01-06  134.38  135.58  133.62    135.17    4310900      135.17
>> 2016-01-07  133.70  135.02  132.43    132.86    7025800      132.86
>> 2016-01-08  133.18  133.82  131.32    131.63    4762700      131.63
>> 2016-01-11  131.81  133.82  131.76    133.23    4974400      133.23
>>
>> xx.uA
>> IBM.Open IBM.High IBM.Low IBM.Close IBM.Volume IBM.Adjusted
>> 2016-01-04  135.60  135.97  134.24    135.95    5229400      135.95
>> 2016-01-05  136.76  136.89  134.85    135.85    3924800      135.85
>> 2016-01-06  134.38  135.58  133.62    135.17    4310900      135.17
>> 2016-01-07  133.70  135.02  132.43    132.86    7025800      132.86
>> 2016-01-08  133.18  133.82  131.32    131.63    4762700      131.63
>> 2016-01-11  131.81  133.82  131.76    133.23    4974400      133.23
>>
>> Vivek Rao
>>
>> _______________________________________________
>> R-SIG-Finance at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
>> -- Subscriber-posting only. If you want to post, subscribe first.
>> -- Also note that this is not the r-help list where general R questions
>> should go.
>>
>
>        [[alternative HTML version deleted]]
>
> _______________________________________________
> R-SIG-Finance at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only. If you want to post, subscribe first.
> -- Also note that this is not the r-help list where general R questions should go.



-- 
Joshua Ulrich  |  about.me/joshuaulrich
FOSS Trading  |  www.fosstrading.com
R/Finance 2017 | www.rinfinance.com


   
	[[alternative HTML version deleted]]



More information about the R-SIG-Finance mailing list