Closed
Description
When the following is run
%matplotlib inline
import pyfolio as pf
import pandas as pd
import numpy as np
stock_rets = pf.utils.get_symbol_rets('AGG')
I get a RemoteDataError for the baked-in URL. Apparently Yahoo has made some recent changes to their API's
---------------------------------------------------------------------------
RemoteDataError Traceback (most recent call last)
<ipython-input-3-fd2a04977723> in <module>()
3 import pandas as pd
4 import numpy as np
----> 5 stock_rets = pf.utils.get_symbol_rets('AGG')
/home/ubuntu/anaconda3/envs/idpf/lib/python3.5/site-packages/pyfolio/utils.py in get_symbol_rets(symbol, start, end)
473 return SETTINGS['returns_func'](symbol,
474 start=start,
--> 475 end=end)
476
477
/home/ubuntu/anaconda3/envs/idpf/lib/python3.5/site-packages/pyfolio/utils.py in default_returns_func(symbol, start, end)
259 rets = rets[start:end]
260 else:
--> 261 rets = get_symbol_from_yahoo(symbol, start=start, end=end)
262
263 return rets[symbol]
/home/ubuntu/anaconda3/envs/idpf/lib/python3.5/site-packages/pyfolio/utils.py in get_symbol_from_yahoo(symbol, start, end)
212 Returns of symbol in requested period.
213 """
--> 214 px = web.get_data_yahoo(symbol, start=start, end=end)
215 rets = px[['Adj Close']].pct_change().dropna()
216 rets.index = rets.index.tz_localize("UTC")
/home/ubuntu/anaconda3/envs/idpf/lib/python3.5/site-packages/pandas_datareader/data.py in get_data_yahoo(*args, **kwargs)
31
32 def get_data_yahoo(*args, **kwargs):
---> 33 return YahooDailyReader(*args, **kwargs).read()
34
35 def get_data_yahoo_actions(*args, **kwargs):
/home/ubuntu/anaconda3/envs/idpf/lib/python3.5/site-packages/pandas_datareader/yahoo/daily.py in read(self)
75 def read(self):
76 """ read one data from specified URL """
---> 77 df = super(YahooDailyReader, self).read()
78 if self.ret_index:
79 df['Ret_Index'] = _calc_return_index(df['Adj Close'])
/home/ubuntu/anaconda3/envs/idpf/lib/python3.5/site-packages/pandas_datareader/base.py in read(self)
171 # If a single symbol, (e.g., 'GOOG')
172 if isinstance(self.symbols, (compat.string_types, int)):
--> 173 df = self._read_one_data(self.url, params=self._get_params(self.symbols))
174 # Or multiple symbols, (e.g., ['GOOG', 'AAPL', 'MSFT'])
175 elif isinstance(self.symbols, DataFrame):
/home/ubuntu/anaconda3/envs/idpf/lib/python3.5/site-packages/pandas_datareader/base.py in _read_one_data(self, url, params)
78 """ read one data from specified URL """
79 if self._format == 'string':
---> 80 out = self._read_url_as_StringIO(url, params=params)
81 elif self._format == 'json':
82 out = self._get_response(url, params=params).json()
/home/ubuntu/anaconda3/envs/idpf/lib/python3.5/site-packages/pandas_datareader/base.py in _read_url_as_StringIO(self, url, params)
89 Open url (and retry)
90 """
---> 91 response = self._get_response(url, params=params)
92 out = StringIO()
93 if isinstance(response.content, compat.binary_type):
/home/ubuntu/anaconda3/envs/idpf/lib/python3.5/site-packages/pandas_datareader/base.py in _get_response(self, url, params)
115 time.sleep(self.pause)
116
--> 117 raise RemoteDataError('Unable to read URL: {0}'.format(url))
118
119 def _read_lines(self, out):
RemoteDataError: Unable to read URL: http://ichart.finance.yahoo.com/table.csv
Metadata
Metadata
Assignees
Labels
No labels