def InvestingFund(_id): try: obj = json.loads(_id) except ValueError: return if hasattr(obj, 'items'): df = investpy.get_fund_recent_data(**obj) elif hasattr(obj, '__iter__'): df = investpy.get_fund_recent_data(*obj) return df.iloc[-1].Close
def test_fund_errors(): params = [ {'columns': None, 'as_json': 'error'}, {'columns': 0, 'as_json': True}, {'columns': ['error'], 'as_json': False}, ] for param in params: try: investpy.get_funds_dict(columns=param['columns'], as_json=param['as_json']) except: pass params = [ {'fund': 'quality inversion conservadora fi', 'as_json': 'error', 'order': 'ascending'}, {'fund': 'quality inversion conservadora fi', 'as_json': True, 'order': 'error'}, {'fund': 'error', 'as_json': True, 'order': 'ascending'}, ] for param in params: try: investpy.get_fund_recent_data(fund=param['fund'], as_json=param['as_json'], order=param['order']) except: pass params = [ {'fund': 'quality inversion conservadora fi', 'start': '01/01/2019', 'end': '01/01/2019', 'as_json': 'error', 'order': 'ascending'}, {'fund': 'quality inversion conservadora fi', 'start': '01/01/2019', 'end': '01/01/2019', 'as_json': False, 'order': 'error'}, {'fund': 'quality inversion conservadora fi', 'start': 'error', 'end': '01/01/2019', 'as_json': False, 'order': 'ascending'}, {'fund': 'quality inversion conservadora fi', 'start': '01/01/2019', 'end': 'error', 'as_json': False, 'order': 'ascending'}, {'fund': 'error', 'start': '01/01/2019', 'end': '01/01/2019', 'as_json': False, 'order': 'ascending'}, {'fund': 'quality inversion conservadora fi', 'start': '01/01/1998', 'end': '01/01/2019', 'as_json': False, 'order': 'ascending'}, ] for param in params: try: print(param) investpy.get_fund_historical_data(fund=param['fund'], start=param['start'], end=param['end'], as_json=param['as_json'], order=param['order']) except: pass params = [ {'fund': 'quality inversion conservadora fi', 'as_json': 'error'}, {'fund': 'error', 'as_json': True}, ] for param in params: try: print('hola') investpy.get_fund_information(fund=param['fund'], as_json=param['as_json']) except: pass
def get_price_investpy(sname, sticker, stype, scountry): if stype == "Stock": try: df = investpy.get_stock_recent_data(sname, scountry) except RuntimeError: try: df = investpy.get_stock_recent_data(sticker, scountry) except RuntimeError: raise MethodNotWorkingError elif stype == "Fund": try: df = investpy.get_fund_recent_data(sname, scountry) except RuntimeError: try: df = investpy.get_fund_recent_data(sticker, scountry) except RuntimeError: raise MethodNotWorkingError elif stype == "ETF": try: df = investpy.get_etf_recent_data(sname, scountry) except RuntimeError: try: df = investpy.get_etf_recent_data(sticker, scountry) except RuntimeError: raise MethodNotWorkingError elif stype == "Crypto": try: df = investpy.get_crypto_recent_data(sname) except RuntimeError: try: df = investpy.get_crypto_recent_data(sticker) except RuntimeError: raise MethodNotWorkingError else: raise MethodNotWorkingError return df.iloc[-1]['Close']
def test_funds_errors(): """ This function raises errors on fund retrieval functions """ try: retrieve_funds(test_mode=None) except: pass try: retrieve_fund_countries(test_mode=None) except: pass params = [ { 'country': ['error'], }, ] for param in params: try: investpy.get_funds(country=param['country']) except: pass try: investpy.get_funds_list(country=param['country']) except: pass params = [ { 'country': ['error'], 'columns': None, 'as_json': False }, { 'country': None, 'columns': None, 'as_json': 'error' }, { 'country': None, 'columns': 0, 'as_json': True }, { 'country': None, 'columns': ['error'], 'as_json': False }, ] for param in params: try: investpy.get_funds_dict(country=param['country'], columns=param['columns'], as_json=param['as_json']) except: pass params = [ { 'fund': None, 'country': 'spain', 'as_json': False, 'order': 'ascending', 'debug': True }, { 'fund': 'quality inversion conservadora fi', 'country': None, 'as_json': False, 'order': 'ascending', 'debug': False }, { 'fund': 'quality inversion conservadora fi', 'country': ['error'], 'as_json': False, 'order': 'ascending', 'debug': False }, { 'fund': 'quality inversion conservadora fi', 'country': 'error', 'as_json': False, 'order': 'ascending', 'debug': False }, { 'fund': 'quality inversion conservadora fi', 'country': 'germany', 'as_json': False, 'order': 'ascending', 'debug': False }, { 'fund': 'quality inversion conservadora fi', 'country': 'spain', 'as_json': 'error', 'order': 'ascending', 'debug': True }, { 'fund': 'quality inversion conservadora fi', 'country': 'spain', 'as_json': True, 'order': 'error', 'debug': True }, { 'fund': 'error', 'country': 'spain', 'as_json': True, 'order': 'ascending', 'debug': True }, { 'fund': ['error'], 'country': 'spain', 'as_json': True, 'order': 'ascending', 'debug': True }, { 'fund': 'quality inversion conservadora fi', 'country': 'spain', 'as_json': True, 'order': 'ascending', 'debug': 'error' }, ] for param in params: try: investpy.get_fund_recent_data(fund=param['fund'], country=param['country'], as_json=param['as_json'], order=param['order'], debug=param['debug']) except: pass params = [ { 'fund': None, 'country': 'spain', 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': False, 'order': 'ascending', 'debug': True }, { 'fund': 'quality inversion conservadora fi', 'country': None, 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': False, 'order': 'ascending', 'debug': False }, { 'fund': 'quality inversion conservadora fi', 'country': ['error'], 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': False, 'order': 'ascending', 'debug': False }, { 'fund': 'quality inversion conservadora fi', 'country': 'error', 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': False, 'order': 'ascending', 'debug': False }, { 'fund': 'quality inversion conservadora fi', 'country': 'germany', 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': False, 'order': 'ascending', 'debug': False }, { 'fund': 'quality inversion conservadora fi', 'country': 'spain', 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': 'error', 'order': 'ascending', 'debug': True }, { 'fund': 'quality inversion conservadora fi', 'country': 'spain', 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': 'error', 'order': 'ascending', 'debug': True }, { 'fund': 'quality inversion conservadora fi', 'country': 'spain', 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': False, 'order': 'error', 'debug': True }, { 'fund': 'quality inversion conservadora fi', 'country': 'spain', 'from_date': 'error', 'to_date': '01/01/2019', 'as_json': False, 'order': 'ascending', 'debug': True }, { 'fund': 'quality inversion conservadora fi', 'country': 'spain', 'from_date': '01/01/2019', 'to_date': 'error', 'as_json': False, 'order': 'ascending', 'debug': True }, { 'fund': 'error', 'country': 'spain', 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': False, 'order': 'ascending', 'debug': True }, { 'fund': ['error'], 'country': 'spain', 'from_date': '01/01/1998', 'to_date': '01/01/2019', 'as_json': False, 'order': 'ascending', 'debug': True }, { 'fund': 'quality inversion conservadora fi', 'country': 'spain', 'from_date': '01/01/1998', 'to_date': '01/01/2019', 'as_json': False, 'order': 'ascending', 'debug': True }, { 'fund': 'quality inversion conservadora fi', 'country': 'spain', 'from_date': '01/01/2019', 'to_date': '01/01/1998', 'as_json': False, 'order': 'ascending', 'debug': True }, { 'fund': 'quality inversion conservadora fi', 'country': 'spain', 'from_date': '01/01/1900', 'to_date': '01/01/1950', 'as_json': False, 'order': 'ascending', 'debug': True }, { 'fund': 'quality inversion conservadora fi', 'country': 'spain', 'from_date': '01/01/2019', 'to_date': '01/03/2019', 'as_json': False, 'order': 'ascending', 'debug': 'error' }, ] for param in params: try: investpy.get_fund_historical_data(fund=param['fund'], country=param['country'], from_date=param['from_date'], to_date=param['to_date'], as_json=param['as_json'], order=param['order'], debug=param['debug']) except: pass params = [ { 'fund': None, 'country': 'spain', 'as_json': False }, { 'fund': 'quality inversion conservadora fi', 'country': None, 'as_json': False }, { 'fund': 'quality inversion conservadora fi', 'country': ['error'], 'as_json': False }, { 'fund': 'quality inversion conservadora fi', 'country': 'error', 'as_json': False }, { 'fund': 'quality inversion conservadora fi', 'country': 'germany', 'as_json': False }, { 'fund': 'quality inversion conservadora fi', 'country': 'spain', 'as_json': 'error' }, { 'fund': 'error', 'country': 'spain', 'as_json': True }, { 'fund': ['error'], 'country': 'spain', 'as_json': True }, ] for param in params: try: investpy.get_fund_information(fund=param['fund'], country=param['country'], as_json=param['as_json']) except: pass params = [ { 'by': None, 'value': 'bbva', }, { 'by': ['error'], 'value': 'bbva', }, { 'by': 'error', 'value': 'bbva', }, { 'by': 'name', 'value': None, }, { 'by': 'name', 'value': ['error'], }, { 'by': 'isin', 'value': 'error', }, ] for param in params: try: investpy.search_funds(by=param['by'], value=param['value']) except: pass
def test_investpy_funds(): """ This function checks that fund data retrieval functions listed in investpy work properly. """ params = [ { 'country': 'spain', }, { 'country': None, }, ] for param in params: investpy.get_funds(country=param['country']) investpy.get_funds_list(country=param['country']) params = [ { 'country': None, 'columns': ['name'], 'as_json': True }, { 'country': None, 'columns': ['name'], 'as_json': False }, { 'country': 'spain', 'columns': ['name'], 'as_json': True }, { 'country': 'spain', 'columns': ['name'], 'as_json': False }, { 'country': 'spain', 'columns': None, 'as_json': False }, ] for param in params: investpy.get_funds_dict(country=param['country'], columns=param['columns'], as_json=param['as_json']) investpy.get_fund_countries() params = [ { 'as_json': True, 'order': 'ascending', }, { 'as_json': False, 'order': 'ascending', }, { 'as_json': True, 'order': 'descending', }, { 'as_json': False, 'order': 'descending', }, ] for param in params: investpy.get_fund_recent_data(fund='bbva multiactivo conservador pp', country='spain', as_json=param['as_json'], order=param['order'], interval='Daily') investpy.get_fund_historical_data(fund='bbva multiactivo conservador pp', country='spain', from_date='01/01/2010', to_date='01/01/2019', as_json=param['as_json'], order=param['order'], interval='Daily') params = [ { 'fund': 'bbva multiactivo conservador pp', 'country': 'spain', 'as_json': True, }, { 'fund': 'bbva multiactivo conservador pp', 'country': 'spain', 'as_json': False, }, ] for param in params: investpy.get_fund_information(fund=param['fund'], country=param['country'], as_json=param['as_json']) params = [ { 'country': 'andorra', 'as_json': True, 'n_results': 2 }, { 'country': 'andorra', 'as_json': False, 'n_results': 2 }, { 'country': 'united states', 'as_json': False, 'n_results': 2 }, { 'country': 'united kingdom', 'as_json': False, 'n_results': 2 } ] for param in params: investpy.get_funds_overview(country=param['country'], as_json=param['as_json'], n_results=param['n_results']) investpy.search_funds(by='name', value='bbva')
def test_investpy_funds(): """ This function checks that fund data retrieval functions listed in investpy work properly. """ params = [ { 'country': 'spain', }, { 'country': None, }, ] for param in params: investpy.get_funds(country=param['country']) investpy.get_funds_list(country=param['country']) params = [ { 'country': None, 'columns': ['id', 'name'], 'as_json': True }, { 'country': None, 'columns': ['id', 'name'], 'as_json': False }, { 'country': 'spain', 'columns': ['id', 'name'], 'as_json': True }, { 'country': 'spain', 'columns': ['id', 'name'], 'as_json': False }, { 'country': 'spain', 'columns': None, 'as_json': False }, ] for param in params: investpy.get_funds_dict(country=param['country'], columns=param['columns'], as_json=param['as_json']) investpy.get_fund_countries() params = [ { 'as_json': True, 'order': 'ascending', 'debug': False }, { 'as_json': False, 'order': 'ascending', 'debug': True }, { 'as_json': True, 'order': 'descending', 'debug': False }, { 'as_json': False, 'order': 'descending', 'debug': False }, ] for param in params: investpy.get_fund_recent_data(fund='bbva multiactivo conservador pp', country='spain', as_json=param['as_json'], order=param['order'], debug=param['debug']) investpy.get_fund_historical_data( fund='bbva multiactivo conservador pp', country='spain', from_date='01/01/2010', to_date='01/01/2019', as_json=param['as_json'], order=param['order'], debug=param['debug']) params = [ { 'fund': 'bbva multiactivo conservador pp', 'country': 'spain', 'as_json': True, }, { 'fund': 'bbva multiactivo conservador pp', 'country': 'spain', 'as_json': False, }, ] for param in params: investpy.get_fund_information(fund=param['fund'], country=param['country'], as_json=param['as_json']) investpy.search_funds(by='name', value='bbva') retrieve_funds(test_mode=True) retrieve_fund_countries(test_mode=True)
def test_investpy(): """ This function checks that main functions of investpy work properly. """ print(investpy.__author__, investpy.__version__) for value in ['spain', None]: investpy.get_equities(country=value) investpy.get_equities_list(country=value) params = [ { 'country': None, 'columns': ['id', 'name'], 'as_json': True }, { 'country': 'spain', 'columns': ['id', 'name'], 'as_json': True }, { 'country': None, 'columns': ['id', 'name'], 'as_json': False }, { 'country': 'spain', 'columns': None, 'as_json': False }, { 'country': 'spain', 'columns': ['id', 'name'], 'as_json': False }, ] for param in params: investpy.get_equities_dict(country=param['country'], columns=param['columns'], as_json=param['as_json']) investpy.get_equity_countries() params = [ { 'as_json': False, 'order': 'ascending', 'debug': True }, { 'as_json': True, 'order': 'descending', 'debug': False }, { 'as_json': True, 'order': 'ascending', 'debug': False }, { 'as_json': False, 'order': 'descending', 'debug': False }, ] for param in params: investpy.get_recent_data(equity='enagás', country='spain', as_json=param['as_json'], order=param['order'], debug=param['debug']) investpy.get_historical_data(equity='enagás', country='spain', from_date='01/01/1990', to_date='01/01/2019', as_json=param['as_json'], order=param['order'], debug=param['debug']) for value in ['spanish', 'english']: investpy.get_equity_company_profile(equity='enagás', country='spain', language=value) retrieve_equities(test_mode=True) retrieve_equity_countries(test_mode=True) params = [ { 'country': 'spain', }, { 'country': None, }, ] for param in params: investpy.get_funds(country=param['country']) investpy.get_funds_list(country=param['country']) params = [ { 'country': None, 'columns': ['id', 'name'], 'as_json': True }, { 'country': 'spain', 'columns': ['id', 'name'], 'as_json': True }, { 'country': None, 'columns': ['id', 'name'], 'as_json': False }, { 'country': 'spain', 'columns': None, 'as_json': False }, { 'country': 'spain', 'columns': ['id', 'name'], 'as_json': False }, ] for param in params: investpy.get_funds_dict(country=param['country'], columns=param['columns'], as_json=param['as_json']) params = [ { 'fund': 'bbva multiactivo conservador pp', 'country': 'spain', 'as_json': True, }, { 'fund': 'bbva multiactivo conservador pp', 'country': 'spain', 'as_json': False, }, ] for param in params: investpy.get_fund_information(fund=param['fund'], country=param['country'], as_json=param['as_json']) params = [ { 'as_json': False, 'order': 'ascending', 'debug': True }, { 'as_json': True, 'order': 'descending', 'debug': False }, { 'as_json': True, 'order': 'ascending', 'debug': False }, { 'as_json': False, 'order': 'descending', 'debug': False }, ] for param in params: investpy.get_fund_recent_data(fund='bbva multiactivo conservador pp', country='spain', as_json=param['as_json'], order=param['order'], debug=param['debug']) investpy.get_fund_historical_data( fund='bbva multiactivo conservador pp', country='spain', from_date='01/01/2010', to_date='01/01/2019', as_json=param['as_json'], order=param['order'], debug=param['debug']) investpy.get_fund_countries() investpy.get_funds() retrieve_funds(test_mode=True) retrieve_fund_countries(test_mode=True) investpy.get_etf_countries() for value in ['spain', None]: investpy.get_etfs(country=value) investpy.get_etfs_list(country=value) params = [ { 'country': None, 'columns': ['id', 'name'], 'as_json': True }, { 'country': 'spain', 'columns': ['id', 'name'], 'as_json': True }, { 'country': None, 'columns': ['id', 'name'], 'as_json': False }, { 'country': 'spain', 'columns': None, 'as_json': False }, { 'country': 'spain', 'columns': ['id', 'name'], 'as_json': False }, ] for param in params: investpy.get_etfs_dict(country=param['country'], columns=param['columns'], as_json=param['as_json']) params = [ { 'as_json': False, 'order': 'ascending', 'debug': True }, { 'as_json': True, 'order': 'descending', 'debug': False }, { 'as_json': True, 'order': 'ascending', 'debug': False }, { 'as_json': False, 'order': 'descending', 'debug': False }, ] for param in params: investpy.get_etf_recent_data(etf='bbva accion dj eurostoxx 50', country='spain', as_json=param['as_json'], order=param['order'], debug=param['debug']) investpy.get_etf_historical_data(etf='bbva accion dj eurostoxx 50', country='spain', from_date='01/01/2010', to_date='01/01/2019', as_json=param['as_json'], order=param['order'], debug=param['debug']) params = [ { 'country': 'france', 'as_json': True, }, { 'country': 'usa', 'as_json': False, }, ] for param in params: investpy.get_etfs_overview(country=param['country'], as_json=param['as_json']) retrieve_etfs(test_mode=True)
def get_fund_price(ticker): return investpy.get_fund_recent_data( fund=get_fund_from_ticker(ticker), country='united states')['Close'][-1] * get_currency_price('USD')
def test_investpy(): """ This function checks that main functions of investpy work properly. """ investpy.get_equities() investpy.get_equities_list() params = [ {'as_json': False, 'order': 'ascending'}, {'as_json': True, 'order': 'descending'}, {'as_json': True, 'order': 'ascending'}, {'as_json': False, 'order': 'descending'}, ] for param in params: investpy.get_recent_data(equity='enagás', as_json=param['as_json'], order=param['order']) investpy.get_historical_data(equity='enagás', start='01/01/1990', end='01/01/2019', as_json=param['as_json'], order=param['order']) for value in ['spanish', 'english']: investpy.get_equity_company_profile(equity='enagás', language=value) get_equity_names() investpy.get_funds() investpy.get_funds_list() for value in [True, False]: investpy.get_funds_dict(columns=['id', 'name'], as_json=value) investpy.get_fund_information(fund='bbva multiactivo conservador pp', as_json=value) params = [ {'as_json': False, 'order': 'ascending'}, {'as_json': True, 'order': 'descending'}, {'as_json': True, 'order': 'ascending'}, {'as_json': False, 'order': 'descending'}, ] for param in params: investpy.get_fund_recent_data(fund='bbva multiactivo conservador pp', as_json=param['as_json'], order=param['order']) investpy.get_fund_historical_data(fund='bbva multiactivo conservador pp', start='01/01/2010', end='01/01/2019', as_json=param['as_json'], order=param['order']) get_fund_names() # investpy.get_etfs() # # investpy.get_etfs_list() # # # # for value in [True, False]: # # investpy.get_etfs_dict(columns=['id', 'name'], as_json=value) params = [ {'as_json': False, 'order': 'ascending'}, {'as_json': True, 'order': 'descending'}, {'as_json': True, 'order': 'ascending'}, {'as_json': False, 'order': 'descending'}, ] for param in params: investpy.get_etf_recent_data(etf='bbva accion dj eurostoxx 50', as_json=param['as_json'], order=param['order']) investpy.get_etf_historical_data(etf='bbva accion dj eurostoxx 50', start='01/01/2010', end='01/01/2019', as_json=param['as_json'], order=param['order']) get_etfs()
# Retrieve a listing of all the available fund names funds_list = investpy.get_funds_list(country='brazil') funds_list for fundo in funds_list: if 'caixa' in fundo.lower(): print(fundo) # In[77]: # pega os dados recentes do fundo nome_fundo = 'Fundo De Investimento Caixa Master Personalizado 50 Renda Fixa Longo Prazo' investpy.get_fund_recent_data(fund=nome_fundo, country='brazil') # In[78]: # Retrieves historical data of 'Bankia Cauto Pp', which is a fund from 'Spain', on the specified date range as a pandas.DataFrame investpy.get_fund_historical_data(fund=nome_fundo, country='brazil', from_date='01/01/2018', to_date='25/09/2020') # In[91]: # LBMA - Quandl url = 'https://www.quandl.com/api/v3/datasets/LBMA/GOLD.json?api_key=x1dVtsgtRJvLJ1tyNh8S' df = pd.read_json(url)