Sometimes it is more fun to play with real data than with random data (la.rand).
The la package provides a function to load open, close, high, low, volume, and adjclose from Yahoo! Finance.
Given a ticker sequence, return historical Yahoo! quotes as a 3d larry.
Parameters: | tickers : sequence
date1 : {datetime.date, tuple}, optional
date2 : {datetime.date, tuple}, optional
adjust : bool, optional
verbose : bool, optional
|
---|---|
Returns: | lar : larry
|
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]])
Calculate the log return from the close prices:
>>> ret = close / close.lag(1, axis=-1)
>>> ret = ret.log()
>>> ret
label_0
aapl
msft
label_1
2010-10-04
2010-10-05
x
array([[-0.01382872, 0.03629843],
[-0.01946634, 0.01823507]])