def test_investpy_currencies(): retrieve_currency_crosses() investpy.get_currency_crosses() investpy.get_currency_crosses_list() investpy.get_currency_crosses_dict() params = [{ 'currency_cross': 'EUR/USD', 'from_date': '08/07/2019', 'to_date': '08/08/2019', 'as_json': True, }, { 'currency_cross': 'EUR/USD', 'from_date': '08/07/2019', 'to_date': '08/08/2019', 'as_json': False, }] for param in params: investpy.get_currency_cross_recent_data( currency_cross=param['currency_cross'], as_json=param['as_json']) investpy.get_currency_cross_historical_data( currency_cross=param['currency_cross'], from_date=param['from_date'], to_date=param['to_date'], as_json=param['as_json'])
def test_currency_crosses_errors(): """ This function raises errors on currency cross retrieval functions """ try: retrieve_currency_crosses(test_mode=None) except: pass params = [{ 'base': ['error'], 'second': None }, { 'base': None, 'second': ['error'] }, { 'base': 'error', 'second': None }, { 'base': 'EUR', 'second': 'error' }, { 'base': None, 'second': 'error' }, { 'base': 'EUR', 'second': 'EUR', }] for param in params: try: investpy.get_currency_crosses(base=param['base'], second=param['second']) except: pass try: investpy.get_currency_crosses_list(base=param['base'], second=param['second']) except: pass params = [ { 'base': ['error'], 'second': None, 'columns': None, 'as_json': False }, { 'base': None, 'second': ['error'], 'columns': None, 'as_json': False }, { 'base': None, 'second': None, 'columns': None, 'as_json': 'error' }, { 'base': None, 'second': None, 'columns': 'error', 'as_json': False }, { 'base': None, 'second': None, 'columns': ['error'], 'as_json': False }, { 'base': 'error', 'second': None, 'columns': None, 'as_json': False }, { 'base': 'EUR', 'second': 'error', 'columns': None, 'as_json': False }, { 'base': None, 'second': 'error', 'columns': None, 'as_json': False }, { 'base': 'EUR', 'second': 'Eur', 'columns': None, 'as_json': False }, ] for param in params: try: investpy.get_currency_crosses_dict(base=param['base'], second=param['second'], columns=param['columns'], as_json=param['as_json']) except: pass params = [ { 'currency_cross': None, 'as_json': False, 'order': 'ascending', 'debug': False }, { 'currency_cross': ['error'], 'as_json': False, 'order': 'ascending', 'debug': False }, { 'currency_cross': 'EUR/USD', 'as_json': 'error', 'order': 'ascending', 'debug': False }, { 'currency_cross': 'EUR/USD', 'as_json': False, 'order': 'error', 'debug': False }, { 'currency_cross': 'EUR/USD', 'as_json': False, 'order': 'ascending', 'debug': 'error' }, { 'currency_cross': 'error/error', 'as_json': False, 'order': 'ascending', 'debug': False }, { 'currency_cross': 'EUR/USD', 'as_json': False, 'order': 'ascending', 'debug': False }, ] for param in params: try: investpy.get_currency_cross_recent_data( currency_cross=param['currency_cross'], as_json=param['as_json'], order=param['order'], debug=param['debug']) except: pass params = [ { 'currency_cross': None, 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': False, 'order': 'ascending', 'debug': False }, { 'currency_cross': ['error'], 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': False, 'order': 'ascending', 'debug': False }, { 'currency_cross': 'EUR/USD', 'from_date': 'error', 'to_date': '01/01/2019', 'as_json': False, 'order': 'ascending', 'debug': False }, { 'currency_cross': 'EUR/USD', 'from_date': '01/01/2018', 'to_date': 'error', 'as_json': False, 'order': 'ascending', 'debug': False }, { 'currency_cross': 'EUR/USD', 'from_date': '01/01/2018', 'to_date': '01/01/2017', 'as_json': False, 'order': 'ascending', 'debug': False }, { 'currency_cross': 'EUR/USD', 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': 'error', 'order': 'ascending', 'debug': False }, { 'currency_cross': 'EUR/USD', 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': False, 'order': 'error', 'debug': False }, { 'currency_cross': 'EUR/USD', 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': False, 'order': 'ascending', 'debug': 'error' }, { 'currency_cross': 'error/error', 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': False, 'order': 'ascending', 'debug': False }, { 'currency_cross': 'EUR/USD', 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': False, 'order': 'ascending', 'debug': False }, ] for param in params: try: investpy.get_currency_cross_historical_data( currency_cross=param['currency_cross'], from_date=param['from_date'], to_date=param['to_date'], as_json=param['as_json'], order=param['order'], debug=param['debug']) except: pass params = [ { 'by': None, 'value': 'EUR', }, { 'by': ['error'], 'value': 'EUR', }, { 'by': 'error', 'value': 'EUR', }, { 'by': 'base', 'value': None, }, { 'by': 'base', 'value': ['error'], }, { 'by': 'base', 'value': 'error', }, ] for param in params: try: investpy.search_currency_crosses(by=param['by'], value=param['value']) except: pass
def test_investpy_currency_crosses(): """ This function checks that currency cross data retrieval functions listed in investpy work properly. """ params = [ { 'base': None, 'second': None, }, { 'base': 'EUR', 'second': None, }, { 'base': None, 'second': 'EUR', }, { 'base': 'EUR', 'second': 'USD', }, ] for param in params: investpy.get_currency_crosses(base=param['base'], second=param['second']) investpy.get_currency_crosses_list(base=param['base'], second=param['second']) params = [ { 'base': None, 'second': None, 'columns': None, 'as_json': True }, { 'base': None, 'second': None, 'columns': None, 'as_json': False }, { 'base': 'EUR', 'second': None, 'columns': None, 'as_json': True }, { 'base': 'EUR', 'second': None, 'columns': None, 'as_json': False }, { 'base': None, 'second': 'USD', 'columns': None, 'as_json': True }, { 'base': None, 'second': 'USD', 'columns': None, 'as_json': False }, { 'base': 'EUR', 'second': 'USD', 'columns': None, 'as_json': True }, { 'base': 'EUR', 'second': 'USD', 'columns': None, 'as_json': False }, { 'base': 'EUR', 'second': 'USD', 'columns': ['name', 'full_name'], 'as_json': False }, ] for param in params: investpy.get_currency_crosses_dict(base=param['base'], second=param['second'], columns=param['columns'], as_json=param['as_json']) investpy.get_available_currencies() params = [ { 'currency_cross': 'EUR/USD', 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': True, 'order': 'ascending', }, { 'currency_cross': 'EUR/USD', 'from_date': '01/01/1990', 'to_date': '01/01/2019', 'as_json': False, 'order': 'descending', }, { 'currency_cross': 'XAG/USD', 'from_date': '01/01/2010', 'to_date': '01/01/2015', 'as_json': False, 'order': 'descending', }, { 'currency_cross': 'XAU/USD', 'from_date': '01/01/2010', 'to_date': '01/01/2015', 'as_json': False, 'order': 'descending', } ] for param in params: investpy.get_currency_cross_recent_data(currency_cross=param['currency_cross'], as_json=param['as_json'], order=param['order'], interval='Daily') investpy.get_currency_cross_historical_data(currency_cross=param['currency_cross'], from_date=param['from_date'], to_date=param['to_date'], as_json=param['as_json'], order=param['order'], interval='Daily') params = [ { 'currency_cross': 'EUR/USD', 'as_json': False }, { 'currency_cross': 'EUR/USD', 'as_json': True }, { 'currency_cross': 'XAU/USD', 'as_json': True }, { 'currency_cross': 'XAG/USD', 'as_json': True } ] for param in params: investpy.get_currency_cross_information(currency_cross=param['currency_cross'], as_json=param['as_json']) params = [ { 'currency': 'try', 'as_json': False, 'n_results': 100 }, { 'currency': 'amd', 'as_json': True, 'n_results': 100 } ] for param in params: investpy.get_currency_crosses_overview(currency=param['currency'], as_json=param['as_json'], n_results=param['n_results']) investpy.search_currency_crosses(by='base', value='EUR')
def test_investpy_currency_crosses(): """ This function checks that currency cross data retrieval functions listed in investpy work properly. """ params = [ { 'base': None, 'second': None, }, { 'base': 'EUR', 'second': None, }, { 'base': None, 'second': 'EUR', }, { 'base': 'EUR', 'second': 'USD', }, ] for param in params: investpy.get_currency_crosses(base=param['base'], second=param['second']) investpy.get_currency_crosses_list(base=param['base'], second=param['second']) params = [ { 'base': None, 'second': None, 'columns': None, 'as_json': True }, { 'base': None, 'second': None, 'columns': None, 'as_json': False }, { 'base': 'EUR', 'second': None, 'columns': None, 'as_json': True }, { 'base': 'EUR', 'second': None, 'columns': None, 'as_json': False }, { 'base': None, 'second': 'USD', 'columns': None, 'as_json': True }, { 'base': None, 'second': 'USD', 'columns': None, 'as_json': False }, { 'base': 'EUR', 'second': 'USD', 'columns': None, 'as_json': True }, { 'base': 'EUR', 'second': 'USD', 'columns': None, 'as_json': False }, { 'base': 'EUR', 'second': 'USD', 'columns': ['name', 'full_name'], 'as_json': False }, ] for param in params: investpy.get_currency_crosses_dict(base=param['base'], second=param['second'], columns=param['columns'], as_json=param['as_json']) investpy.get_available_currencies() params = [ { 'currency_cross': 'EUR/USD', 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': True, 'order': 'ascending', 'debug': True }, { 'currency_cross': 'EUR/USD', 'from_date': '01/01/2018', 'to_date': '01/01/2019', 'as_json': False, 'order': 'descending', 'debug': False }, ] for param in params: investpy.get_currency_cross_recent_data( currency_cross=param['currency_cross'], as_json=param['as_json'], order=param['order'], debug=param['debug']) investpy.get_currency_cross_historical_data( currency_cross=param['currency_cross'], from_date=param['from_date'], to_date=param['to_date'], as_json=param['as_json'], order=param['order'], debug=param['debug']) investpy.search_currency_crosses(by='base', value='EUR')
import investpy from datetime import datetime import pandas as pd import matplotlib.pyplot as plt # Definitions and initializations currency = [] save_path = '/home/ubuntu/Desktop/ALLPAIRS/' # Today's date today_date = datetime.today().strftime('%d/%m/%Y') # Get list of currencies and the ruble pairing ones currency_list = investpy.get_currency_crosses_list() [currency.append(x) for x in currency_list if '/BGN' in x] # Remove duplicate ones: currency_pairs = list(dict.fromkeys(currency)) # Loop through the cleaned pairs for currency_pair in currency_pairs: # call the API and get the information investing_api = investpy.get_currency_cross_historical_data(currency_cross=currency_pair, from_date='01/01/1900', to_date=today_date, order='ascending', interval='Daily') invest_plot = pd.DataFrame(investing_api) new = invest_plot.reset_index() new.plot(x ='Date', y='Close', kind = 'line') saveto = save_path + currency_pair.replace("/","") + '.png' plt.savefig(saveto) print(currency_pair + " Saved to " + saveto)