Loading yahoo historical quotes into a larry

0 views
Skip to first unread message

Keith Goodman

unread,
Oct 11, 2010, 9:12:57 PM10/11/10
to pystat...@googlegroups.com, labele...@googlegroups.com
I added a function to the label array package, la, that loads yahoo
historical quotes into a larry. There's a demo at the end of the doc
string below. The code is brand new, so if anyone runs into any
problems, please let me know.

From http://github.com/kwgoodman/la/blob/master/la/data/yahoo.py:

def quotes(tickers, date1=None, date2=None, adjust=True, verbose=False):
"""
Given a ticker sequence, return historical Yahoo! quotes as a 3d larry.

Parameters
----------
tickers : sequence
A sequence (such as a list) of string tickers. For example:
['aapl', 'msft']
date1 : {datetime.date, tuple}, optional
The first date to grab historical quotes on. For example:
datetime.date(2010, 1, 1) or (2010, 1, 1). By default the first
date is (1900, 1, 1).
date2 : {datetime.date, tuple}, optional
The last date to grab historical quotes on. For example:
datetime.date(2010, 12, 31) or (2010, 12, 31). By default the last
date is 10 days beyond today's date.
adjust : bool, optional
Adjust (default) the open, close, high, and low prices and the volume.
The adjustment takes splits and dividends into account such that the
corresponding returns are correct. The adjustment is not correct for
volume, but at least price * volume remains unchanged after the
adjustment.
verbose : bool, optional
Print the ticker currently being loaded. By default the tickers are
not printed.

Returns
-------
lar : larry
A 3d larry is returned. In order, the three axes contain: tickers,
item, and dates. The elements along the item axis depend on the value
of `adjust`. When `adjust` is False, the items are

['open', 'close', 'high', 'low', 'volume', 'adjclose']

When adjust is true (default), the adjusted close ('adjclose') is
not included. The dates are datetime.date objects.

Examples
--------
>>> from la.data.yahoo import quotes
>>> lar = quotes(['aapl', 'msft'], (2010,10,1), (2010,10,5))
>>> lar
label_0
aapl
msft
label_1
open
close
high
low
volume
label_2
2010-10-01
2010-10-04
2010-10-05
x
array([[[ 2.86150000e+02, 2.81600000e+02, 2.82000000e+02],
[ 2.82520000e+02, 2.78640000e+02, 2.88940000e+02],
[ 2.86580000e+02, 2.82900000e+02, 2.89450000e+02],
[ 2.81350000e+02, 2.77770000e+02, 2.81820000e+02],
[ 1.60051000e+07, 1.55256000e+07, 1.78743000e+07]],
.
[[ 2.47700000e+01, 2.39600000e+01, 2.40600000e+01],
[ 2.43800000e+01, 2.39100000e+01, 2.43500000e+01],
[ 2.48200000e+01, 2.39900000e+01, 2.44500000e+01],
[ 2.43000000e+01, 2.37800000e+01, 2.39100000e+01],
[ 6.26236000e+07, 9.80868000e+07, 7.80329000e+07]]])

>>> close = lar.lix[:,['close']]
>>> close
label_0
aapl
msft
label_1
2010-10-01
2010-10-04
2010-10-05
x
array([[ 282.52, 278.64, 288.94],
[ 24.38, 23.91, 24.35]])

"""

Reply all
Reply to author
Forward
0 new messages