|
From: <jd...@us...> - 2010-06-07 13:04:31
|
Revision: 8392
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8392&view=rev
Author: jdh2358
Date: 2010-06-07 13:04:24 +0000 (Mon, 07 Jun 2010)
Log Message:
-----------
fix adjusted prices so divs are included propely; closes sf 2949906
Modified Paths:
--------------
trunk/matplotlib/CHANGELOG
trunk/matplotlib/lib/matplotlib/finance.py
Modified: trunk/matplotlib/CHANGELOG
===================================================================
--- trunk/matplotlib/CHANGELOG 2010-06-07 01:03:54 UTC (rev 8391)
+++ trunk/matplotlib/CHANGELOG 2010-06-07 13:04:24 UTC (rev 8392)
@@ -1,3 +1,12 @@
+2010-06-06 Change the way we do split/dividend adjustments in
+ finance.py to handle dividends and fix the zero division bug reported
+ in sf bug 2949906. Note that volume is not adjusted
+ because the Yahoo CSV does not distinguish between share
+ split and dividend adjustments making it near impossible to
+ get volume adjustement right (unless we want to guess based
+ on the size of the adjustment or scrape the html tables,
+ which we don't) - JDH
+
2010-06-06 Updated dateutil to 1.5 and pytz to 2010h.
2010-06-02 Add error_kw kwarg to Axes.bar(). - EF
Modified: trunk/matplotlib/lib/matplotlib/finance.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/finance.py 2010-06-07 01:03:54 UTC (rev 8391)
+++ trunk/matplotlib/lib/matplotlib/finance.py 2010-06-07 13:04:24 UTC (rev 8392)
@@ -42,7 +42,10 @@
where d is a floating poing representation of date, as returned by date2num
- if adjusted=True, use adjusted prices
+ if adjusted=True, use adjusted prices. Note that volume is not
+ adjusted and we are not able to handle volume adjustments properly
+ because the Yahoo CSV does not distinguish between split and
+ dividend adjustments.
"""
results = []
@@ -68,10 +71,10 @@
volume = int(vals[5])
if adjusted:
aclose = float(vals[6])
- m = aclose/close
- open *= m
- high *= m
- low *= m
+ delta = aclose-close
+ open += delta
+ high += delta
+ low += delta
close = aclose
results.append((d, open, close, high, low, volume))
@@ -146,7 +149,10 @@
if asobject is True, the return val is an object with attrs date,
open, close, high, low, volume, which are equal length arrays
- if adjust=True, use adjusted prices
+ if adjusted=True, use adjusted prices. Note that volume is not
+ adjusted and we are not able to handle volume adjustments properly
+ because the Yahoo CSV does not distinguish between split and
+ dividend adjustments.
Ex:
sp = f.quotes_historical_yahoo('^GSPC', d1, d2, asobject=True, adjusted=True)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|